2021SC@SDUSC

PQ Crypto Catalog

https://github.com/kriskwiatkowski/pqc
提交给 NIST PQC 标准化流程的量子安全签名和 KEM 方案。

该项目目标是在 C 和 Rust 中提供易于使用的 API 以支持实验。 该代码源自提交给 NIST 后量子加密标准化的 PQClean 项目 。
用户不应期望此代码提供任何级别的安全性。 该库不打算用于实时生产系统。

支持

Name NIST Round x86 optimized
Kyber 3 x
NTRU 3 x
SABER 3 x
FrodoKEM 3
NTRU Prime 3 x
HQC-RMRS 3 x
Dilithium 3 x
Falcon 3
Rainbow 3
SPHINCS+ SHA256/SHAKE256 3 x
SIKE/p434 3 x

构建

CMake 用于构建库:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

构建输出两个库,一个静态 libpqc_s.a和动态 libpqc.so,可与项目链接。
API

库提供了简单的 API,包装了 PQClean。 例如,要使用 KEM,应按以下方式调用库:

#include <pqc/pqc.h>const params_t *p = pqc_kem_alg_by_id(KYBER512);
std::vector<uint8_t> ct(ciphertext_bsz(p));
std::vector<uint8_t> ss1(shared_secret_bsz(p));
std::vector<uint8_t> ss2(shared_secret_bsz(p));
std::vector<uint8_t> sk(private_key_bsz(p));
std::vector<uint8_t> pk(public_key_bsz(p));pqc_keygen(p, pk.data(), sk.data());
pqc_kem_encapsulate(p, ct.data(), ss1.data(), pk.data());
pqc_kem_decapsulate(p, ss2.data(), ct.data(), sk.data());p = pqc_sig_alg_by_id(DILITHIUM2);
size_t sigsz = sig.capacity();
pqc_keygen(p, pk.data(), sk.data());
pqc_sig_create(p, sig.data(), &sigsz, msg.data(), msg.size(), sk.data());
pqc_sig_verify(p, sig.data(), sig.size(), msg.data(), msg.size(), pk.data());

Rust 构建

cd test/katrunner
curl http://amongbytes.com/~flowher/permalinks/kat.zip --output kat.zip
unzip kat.zip
cargo run -- --katdir KAT

2021SC@SDUSC 后量子密码NTRU的参考实现相关推荐

  1. zbar下条形码和二维码的识别与解码Ⅲ|2021SC@SDUSC

    2021SC@SDUSC 4.对非标准的QR二维码图片,进行定位,然后用Zbar解码显示. 这里主要参考opencv二维码识别解码_nickchao的IT生涯-CSDN博客_opencv二维码识别的博 ...

  2. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(八)plots.py-1

    2021SC@SDUSC 前言 这篇分析plot.py文件,就如其名称一样,主要是一些用以展示的代码,也不是核心代码 外部库 from copy import copy from pathlib im ...

  3. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(三)

    2021SC@SDUSC 目录 一.概述 二.代码分析 1.Update() 2.Draw() 3.Layout() 一.概述 本文将介绍ebiten在RunGame函数中逐帧执行的Update()方 ...

  4. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(四)

    2021SC@SDUSC 目录 一.概述 二.代码分析 1.graphics.QuadVertices() 2.mipmap.Mipmap() 3.i.mipmap.DrawTriangles() 一 ...

  5. 2021SC@SDUSC HBase(十三)项目代码分析——WAL写入

    2021SC@SDUSC 目录 一.简述 二.机制 三.线程模型 四.具体实现 五.总结 一.简述 Hbase 的 WAL 机制是保证 hbase 使用 lsm 树存储模型把随机写转化成顺序写,并从内 ...

  6. Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接<2021SC@SDUSC>

    2021SC@SDUSC Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接 实例要求: Http 协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接. 要求 ...

  7. 2021SC@SDUSC基于人工智能的多肽药物分析问题(六)

    基于人工智能的多肽药物分析问题(六) 2021SC@SDUSC 1. 卷积神经网络 1.1 卷积神经网络优势 在学习卷积神经网络之前,使用的是全连接神经网络,但是: 如果用全连接神经网络处理大尺寸图像 ...

  8. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十三)metrics.py-1

    2021SC@SDUSC 前言 这篇分析metrics.py文件,这个文件是用来计算评估指标,包括mAP.混淆矩阵.IOU相关的函数. fitness函数 def fitness(x):# Model ...

  9. <2021SC@SDUSC>博客(5)山东大学软件工程应用与实践JPress代码分析(四)

    2021SC@SDUSC 前言 在前面三篇文章中,我对 JPress 项目的基础框架 JFinal 和 JBoot 在使用层面进行了拆解与分析.在接下来的文章中,我将在代码层面对 JPress 项目中 ...

最新文章

  1. UVA11309 Counting Chaos【Ad Hoc】
  2. C#读写者线程(用AutoResetEvent实现同步)(转载)
  3. QT学习之路七(qt的数据库操作)
  4. python就业班完整视频_('传智 Python基础班+就业班 最新完整视频教程',)
  5. 用python对《三国演义》的人物出场进行统计
  6. 项目组织与团队管理——社会惰化
  7. 安卓Android公交查询系统app资源分享
  8. 电阻色环转换为阻值对照表
  9. setenv设置环境变量_setenv命令教程在Linux中添加,删除和更改环境变量
  10. 【产品经理学习笔记】Part 13 产品运营案例分析
  11. 有史以来影响世界的颠覆性技术 | 未来的高附加值颠覆性技术产业
  12. Mybatis方法入参处理
  13. ol xyz 加载天地图_Openlayers3 加载百度地图,天地图
  14. 龙格现象 图像对比及Python代码实现
  15. operator*() 和 operator-()
  16. centos7搭建DNS服务器的详细过程总结
  17. Kafka性能测试工具
  18. EMV/PBOC之 9f5d和9f79的区别
  19. linux命令行git记住密码
  20. 宝可梦小游戏_Java_控制端——总结

热门文章

  1. 使用GemBox.Spreadsheet控件操作Excel文件
  2. 利用Power BI计算组,设计个性化数据标签
  3. stm32实现flash参数存储
  4. 你们用过KSC的沐浴露吗,感觉怎么样啊?
  5. 极简主义风格的响应式个人简历模版PSD+HTML打包下载
  6. php开发微信商户平台支付宝支付,不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  7. 多个自变量因变量中介变量做Amos
  8. 阿尔巴尼的计算机科学,纽约州立大学阿尔巴尼分校硕士申请
  9. 轻雨物联网科技 - 智能门禁系统
  10. Javs 反射 之 获取全部属性