CN114640454A - 一种后量子密码Crystals Kyber协议的密码系统 - Google Patents
一种后量子密码Crystals Kyber协议的密码系统 Download PDFInfo
- Publication number
- CN114640454A CN114640454A CN202210346751.3A CN202210346751A CN114640454A CN 114640454 A CN114640454 A CN 114640454A CN 202210346751 A CN202210346751 A CN 202210346751A CN 114640454 A CN114640454 A CN 114640454A
- Authority
- CN
- China
- Prior art keywords
- unit
- output end
- module
- input
- kyber
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 claims description 26
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 claims description 15
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 claims description 15
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 claims description 15
- 101150046378 RAM1 gene Proteins 0.000 claims description 15
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 claims description 15
- 239000013078 crystal Substances 0.000 claims description 12
- 238000009795 derivation Methods 0.000 claims description 9
- 239000003638 chemical reducing agent Substances 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 abstract description 45
- 238000000034 method Methods 0.000 abstract description 15
- 238000013461 design Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Error Detection And Correction (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种后量子密码Crystals Kyber协议的密码系统;针对CrystalsKyber协议设计了一个消耗资源较少的硬件电路结构;根据CrystalsKyber中使用HASH函数的方式,针对性的设计了统一的HASH模块,其中所有的函数都共用一个优化过的硬件核心,有效地减少了资源的使用;包括两个并列的蝴蝶单元的NTT模块使得NTT操作与INTT操作能够共用一份电路,进一步减少了资源的使用;与传统方法相比,本发明能减少控制逻辑的复杂度,节约部分计算资源;本发明模块复用率较高,资源消耗较少,可以有效的部署在很多资源受限的场合。
Description
技术领域
本发明涉及计算机信息技术领域,具体来说涉及高校教育场景下计算机信息技术的应用,更具体地,涉及一种后量子密码Crystals Kyber协议的密码系统。
背景技术
在如今的信息化时代里,诸多的敏感信息通过计算机网络来进行交换,保障信息传输的安全性和真实性一直是密码学研究的主要任务。随着科学技术的不断进步,量子计算技术也在不断发展,这使得传统的公钥密码体制受到严重的挑战。用于对抗量子计算机攻击的算法,即后量子密码算法,也受到了研究人员的关注。 Kyber是2017年Bos等人提出的一种基于格的密钥交换算法,是目前最新的基于格的加密算法之一。因为Kyber算法主要基于模容错学习(MLWE)问题,所以加密效率远高于容错学习(LWE)和环上容错学习RLWE问题构建出来的算法。
但是,现有的后量子加密算法绝大部分都包含有大量复杂的运算和许多重复的数学运算,但在纯软件实现并不能进行有效的并行计算,所以在CPU上进行加密或解密会需要大量的时钟周期。
对此,如公开号为KR20210130196A,公开时间为2021.10.29的韩国专利申请:用于量子安全物联网的可配置格子密码处理器和相关技术所示,可以设计相应的硬件来对后量子密码进行加速,但芯片设计需要大量的时间和设计来确定速度、面积、能耗方面的效应,因此仍有一定的局限性。
发明内容
针对的现有技术的局限,本发明提出一种后量子密码Crystals Kyber协议的密码系统,本发明采用的技术方案是:
一种后量子密码Crystals Kyber协议的密码系统,其采用Hash模块实现Crystals Kyber协议中使用的伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF、哈希函数H以及哈希函数G;采用包括两个并列的蝴蝶单元的NTT 模块实现Crystals Kyber协议中的NTT与INTT操作;
所述Hash模块包括控制逻辑核心、Keccak计算单元、截断单元、MUX11、 MUX12、MUX13、移位寄存器组、计数器、异或单元以及由分别对应一种填充方式的五个填充模块组成的填充模组;
其中:所述控制逻辑核心的输出端分别连接所述填充模组、MUX11、MUX12 以及截断单元的输入端;
所述MUX11的输出端连接所述移位寄存器组的输入端;所述移位寄存器组的输出端连接所述异或单元的输入端;所述计数器的输出端分别连接所述控制逻辑核心以及异或单元的输入端;所述MUX12的输出端连接所述异或单元的输入端;
所述异或单元的输出端连接所述MUX13的输入端;所述填充模组的输出端连接所述MUX13的输入端;所述MUX13的输出端连接所述Keccak计算单元的输入端;所述Keccak计算单元的输出端分别连接所述MUX12、MUX13以及截断单元的输入端。
相较于现有技术,本发明针对CrystalsKyber协议设计了一个消耗资源较少的硬件电路结构;根据CrystalsKyber中使用HASH函数的方式,针对性的设计了统一的HASH模块,其中所有的函数都共用一个优化过的硬件核心,有效地减少了资源的使用;包括两个并列的蝴蝶单元的NTT模块使得NTT操作与INTT 操作能够共用一份电路,进一步减少了资源的使用;与传统方法相比,本发明能减少控制逻辑的复杂度,节约部分计算资源;本发明模块复用率较高,资源消耗较少,可以有效的部署在很多资源受限的场合。
作为一种优选方案,所述Hash模块的工作模式包括用于处理定长数据,实现伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF以及哈希函数G 的HASH_FIX模式。
进一步的,所述Hash模块在HASH_FIX模式下,通过所述控制逻辑核心模式选择所述填充模组中相应的填充模块的值,数据通过所述MUX13进入到所述 Keccak计算单元中进行计算,所述Keccak计算单元首轮的输入值为填充后的数据,其余轮次的输入值为当前状态值;完成计算后,发送结果到所述截断单元进行截断后输出。
作为一种优选方案,所述Hash模块的工作模式包括用于处理不定长数据,实现哈希函数H的HASH_H模式。
进一步的,所述移位寄存器组的规格为34*32;所述Hash模块在HASH_H 模式下,对于位宽为32bits的输入数据流,所述移位寄存器组每个周期接受32bits 的数据;每34个周期,所述移位寄存器组接收1088个bit的数据;当输入数据流的长度不为1088bit的整数倍时,移位寄存器接收来自所述控制逻辑核心的填充数据进行填充;当计数器到达34时,所述移位寄存器组的数据进入所述异或单元进行异或操作,随后通过所述MUX13进入到所述Keccak计算单元进行迭代运算;当所述Keccak计算单元进行迭代运算的次数达到相应次数时,发送迭代结果到所述截断单元截断成32*8的数据输出。
作为一种优选方案,所述蝴蝶单元为可配置的流水蝴蝶硬件单元。
作为一种优选方案,所述蝴蝶单元包括第一模加器、第一模减器、MUX21、 MUX22、延迟器、模乘器、第二模加器、第二模减器、MUX23、MUX24;
所述第一模加器的输出端连接所述MUX21的输入端;所述第一模减器的输出端连接所述MUX22的输入端;所述MUX21的输出端连接所述延迟器的输入端;所述延迟器的输出端分别连接所述第二模加器、第二模减器以及MUX23的输入端;所述第二模加器的输出端连接所述MUX23的输入端;所述MUX22的输出端连接所述模乘器的输入端;所述模乘器的输出端分别连接所述第二模加器、第二模减器以及MUX24的输入端;所述第二模减器的输出端连接所述 MUX24的输入端。
作为一种优选方案,所述NTT模块包括NTT控制单元、RAM1、第一蝴蝶单元、ROM、RAM2以及第二蝴蝶单元;
其中:所述NTT控制单元的输出端分别连接所述RAM1、第一蝴蝶单元、 ROM、RAM2以及第二蝴蝶单元的输入端;
所述RAM1的输出端连接所述第一蝴蝶单元的输入端;所述第一蝴蝶单元的输出端连接所述RAM1的输入端;
所述ROM的输出端分别连接所述第一蝴蝶单元以及第二蝴蝶单元的输入端;
所述RAM2的输出端连接所述第二蝴蝶单元的输入端;所述第二蝴蝶单元的输出端连接所述RAM2的输入端。
进一步的,对于从所述ROM中读取到的地址信号ω,从所述RAM1读取到的输入数据a1、b1,从所述RAM2读取到的输入数据a2、b2,当所述NTT模块执行NTT操作时将计算得到(a1+ω*b1)、(a1-ω*b1)、(a2+ω*b2)以及(a2-ω*b2)。
进一步的,对于从所述ROM中读取到的地址信号ω,从所述RAM1读取到的输入数据a1、b1,从所述RAM2读取到的输入数据a2、b2,当所述NTT模块执行INTT操作时将计算得到((a1+b1)*ω)、((a1-b1)*ω)、((a2+b2)*ω)以及 ((a2-b2)*ω)。
附图说明
图1为本发明实施例1提供的后量子密码Crystals Kyber协议的密码系统中 Hash模块的结构示意图;
图2为本发明实施例1提供的后量子密码Crystals Kyber协议的密码系统加密过程示意图;
图3为本发明实施例1提供的后量子密码Crystals Kyber协议的密码系统解密过程示意图;
图4为本发明实施例1提供的后量子密码Crystals Kyber协议的密码系统加密步骤示意图;
图5为本发明实施例1提供的后量子密码Crystals Kyber协议的密码系统解密步骤示意图;
图6为本发明实施例3提供的后量子密码Crystals Kyber协议的密码系统中蝴蝶单元的结构示意图;
图7为本发明实施例3提供的后量子密码Crystals Kyber协议的密码系统中 NTT模块的结构示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和 /或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。以下结合附图和实施例对本发明做进一步的阐述。
为了解决现有技术的局限性,本实施例提供了一种技术方案,下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
一种后量子密码Crystals Kyber协议的密码系统,其采用Hash模块实现Crystals Kyber协议中使用的伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF、哈希函数H以及哈希函数G;采用包括两个并列的蝴蝶单元的NTT 模块实现Crystals Kyber协议中的NTT与INTT操作;
请参考图1,所述Hash模块包括控制逻辑核心、Keccak计算单元、截断单元、MUX11、MUX12、MUX13、移位寄存器组、计数器、异或单元以及由分别对应一种填充方式的五个填充模块组成的填充模组;
其中:所述控制逻辑核心的输出端分别连接所述填充模组、MUX11、MUX12 以及截断单元的输入端;
所述MUX11的输出端连接所述移位寄存器组的输入端;所述移位寄存器组的输出端连接所述异或单元的输入端;所述计数器的输出端分别连接所述控制逻辑核心以及异或单元的输入端;所述MUX12的输出端连接所述异或单元的输入端;
所述异或单元的输出端连接所述MUX13的输入端;所述填充模组的输出端连接所述MUX13的输入端;所述MUX13的输出端连接所述Keccak计算单元的输入端;所述Keccak计算单元的输出端分别连接所述MUX12、MUX13以及截断单元的输入端。
相较于现有技术,本发明针对CrystalsKyber协议设计了一个消耗资源较少的硬件电路结构;根据CrystalsKyber中使用HASH函数的方式,针对性的设计了统一的HASH模块,其中所有的函数都共用一个优化过的硬件核心,有效地减少了资源的使用;包括两个并列的蝴蝶单元的NTT模块使得NTT操作与INTT 操作能够共用一份电路,进一步减少了资源的使用;与传统方法相比,本发明能减少控制逻辑的复杂度,节约部分计算资源;本发明模块复用率较高,资源消耗较少,可以有效的部署在很多资源受限的场合。
具体的,本实施例提供的后量子密码Crystals Kyber协议的密码系统由FPGA 实现。FPGA即现场可编程门电路,这是一种半定制电路,由逻辑单元、存储单元、专用乘法器等大量的硬件资源组成,具有可重复编程、开发周期短、集成度高等优点,在数字电路硬件设计中有广泛的用途。与ASIC相比,FPGA可以结合设计需求灵活的改变硬件结构,在协议和标准不成熟的情况下迅速的实现设计,完成相应需求。本实施例通过FPGA实现的后量子密码Crystals Kyber协议的密码系统,能够有效节约硬件资源的使用。
请参阅图2以及图3,作为一种可选实施例,本实施例提供的后量子密码 CrystalsKyber协议的密码系统在完成Crystals Kyber中其他内容、对数据进行存储、运用控制逻辑实现密钥的封装和解密的模块或器件,还包括控制模块、密文解压缩解码模块、模减模块、m压缩编码模块、CBD采样模块、Parse采样模块、点乘模块、模加模块、压缩编码模块、m解码解压缩模块、pk解码模块、比较器、寄存器h、寄存器z、寄存器k、CFIFO缓冲单元、C_FIFO缓冲单元;在模块中设有存储单元,控制模块与其它各模块相连,采用状态机设计,实现每个模块间的调用和数据连接。
图1至3中,因附图篇幅所限,部分模块或元器件的名称只保留其具体操作,省略了名称中的“模块”、“移位”等字段,不影响其与文字描述之间的对应关系;另外,所述填充模组以“填充0”、“填充1”......“填充4”的方式呈现,特此说明。
具体的,请参阅图4,在加密过程中,输入公钥pk和随机数r,经过加密后输出密文c和共享密钥k;请参阅图5,在解密过程中,输入私钥sk与密文c进行解密,计算中产生密文c’,若c’与c相等,则表示解密成功,输出共享密钥,反之则失败。
所述HASH模块,支持Kyber中的SHAKE168、SHKAE256、SHA_256、 SHA3_512四种不同的函数计算任务,提高资源利用率。Kyber的设计中利用了大量SHA3中的hash随机函数产生随机数,包括有伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF和两个哈希函数H和G。Kyber中采用SHA3 来实例化这些函数,对应如下表:
函数名 | 对应的哈希函数 |
XOF | SHAKE-128 |
H | SHA3-256 |
G | SHA3-512 |
PRF(s,b) | SHAKE-256(s||b) |
实施例2
实施例2可以视为在实施例1基础上进一步改进、细化或补充的方案,具体为:一种后量子密码Crystals Kyber协议的密码系统,其采用Hash模块实现 Crystals Kyber协议中使用的伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF、哈希函数H以及哈希函数G;采用包括两个并列的蝴蝶单元的NTT 模块实现Crystals Kyber协议中的NTT与INTT操作;
请参考图1,所述Hash模块包括控制逻辑核心、Keccak计算单元、截断单元、MUX11、MUX12、MUX13、移位寄存器组、计数器、异或单元以及由分别对应一种填充方式的五个填充模块组成的填充模组;
其中:所述控制逻辑核心的输出端分别连接所述填充模组、MUX11、MUX12 以及截断单元的输入端;
所述MUX11的输出端连接所述移位寄存器组的输入端;所述移位寄存器组的输出端连接所述异或单元的输入端;所述计数器的输出端分别连接所述控制逻辑核心以及异或单元的输入端;所述MUX12的输出端连接所述异或单元的输入端;
所述异或单元的输出端连接所述MUX13的输入端;所述填充模组的输出端连接所述MUX13的输入端;所述MUX13的输出端连接所述Keccak计算单元的输入端;所述Keccak计算单元的输出端分别连接所述MUX12、MUX13以及截断单元的输入端;
具体的,所述Keccak计算单元一共需要进行24轮计算,其中每一轮对应五个不同的计算步骤,分别为θ、ρ、π、χ、ι。这五个运算步骤均是在5x5x64 的三维矩阵上进行运算的。其中θ分成三个步骤,均是对矩阵中两列中的元素进行异或操作;ρ是将矩阵沿着z轴进行循环移位,对于固定的坐标(x,y)均对应了一个固定的循环移位量;π操作主要是对数据沿y轴方向重排;χ是唯一一个非线性运算,对数据进行异或和与运算;ι在最后与轮常数进行异或,破坏原有的对称性,对应不同计算轮将与不同的轮常数进行异或。对于ι这一操作,对循环轮常数进行压缩,将轮常数从64bits压缩到7bits,同时iota中的异或门的个数从64个减少至7个,存储也减少到24*7bits。
所述Hash模块的工作模式包括用于处理定长数据,实现伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF以及哈希函数G的HASH_FIX模式;
进一步的,所述Hash模块在HASH_FIX模式下,通过所述控制逻辑核心模式选择所述填充模组中相应的填充模块的值,数据通过所述MUX13进入到所述 Keccak计算单元中进行计算,所述Keccak计算单元首轮的输入值为填充后的数据,其余轮次的输入值为当前状态值;完成计算后,发送结果到所述截断单元进行截断后输出。
所述Hash模块的工作模式还包括用于处理不定长数据,实现哈希函数H的 HASH_H模式。
进一步的,所述移位寄存器组的规格为34*32;所述Hash模块在HASH_H 模式下,对于位宽为32bits的输入数据流,所述移位寄存器组每个周期接受32bits 的数据;每34个周期,所述移位寄存器组接收1088个bit的数据;当输入数据流的长度不为1088bit的整数倍时,移位寄存器接收来自所述控制逻辑核心的填充数据进行填充;当计数器到达34时,所述移位寄存器组的数据进入所述异或单元进行异或操作,随后通过所述MUX13进入到所述Keccak计算单元进行迭代运算;当所述Keccak计算单元进行迭代运算的次数达到相应次数时,发送迭代结果到所述截断单元截断成32*8的数据输出。
实施例3
实施例2可以视为在实施例1或2基础上进一步改进、细化或补充的方案,具体为:一种后量子密码Crystals Kyber协议的密码系统,其采用Hash模块实现 Crystals Kyber协议中使用的伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF、哈希函数H以及哈希函数G;采用包括两个并列的蝴蝶单元的NTT 模块实现Crystals Kyber协议中的NTT与INTT操作;
请参考图1,所述Hash模块包括控制逻辑核心、Keccak计算单元、截断单元、MUX11、MUX12、MUX13、移位寄存器组、计数器、异或单元以及由分别对应一种填充方式的五个填充模块组成的填充模组;
其中:所述控制逻辑核心的输出端分别连接所述填充模组、MUX11、MUX12 以及截断单元的输入端;
所述MUX11的输出端连接所述移位寄存器组的输入端;所述移位寄存器组的输出端连接所述异或单元的输入端;所述计数器的输出端分别连接所述控制逻辑核心以及异或单元的输入端;所述MUX12的输出端连接所述异或单元的输入端;
所述异或单元的输出端连接所述MUX13的输入端;所述填充模组的输出端连接所述MUX13的输入端;所述MUX13的输出端连接所述Keccak计算单元的输入端;所述Keccak计算单元的输出端分别连接所述MUX12、MUX13以及截断单元的输入端;
所述蝴蝶单元为可配置的流水蝴蝶硬件单元。
作为一种优选实施例,请参阅图6,所述蝴蝶单元包括第一模加器、第一模减器、MUX21、MUX22、延迟器、模乘器、第二模加器、第二模减器、MUX23、 MUX24;
所述第一模加器的输出端连接所述MUX21的输入端;所述第一模减器的输出端连接所述MUX22的输入端;所述MUX21的输出端连接所述延迟器的输入端;所述延迟器的输出端分别连接所述第二模加器、第二模减器以及MUX23的输入端;所述第二模加器的输出端连接所述MUX23的输入端;所述MUX22的输出端连接所述模乘器的输入端;所述模乘器的输出端分别连接所述第二模加器、第二模减器以及MUX24的输入端;所述第二模减器的输出端连接所述 MUX24的输入端。
其中,上述模加器和模减器的延时为一周期,模乘器的延迟为4个周期。蝴蝶操作采用流水线设计,总延迟为5个周期。Kyber中256次的多项式乘法,被拆分成两个128次的多项式乘法,且旋转因子相同,所以数据按奇偶下标存在两个不同的RAM里,两个蝴蝶单元同时进行计算。计算过程中通过控制单元生成对应的索引下标,往蝴蝶模块中输送数据,最后完成整个256次多项式乘法的计算。
作为一种优选实施例,请参阅图7,所述NTT模块包括NTT控制单元、 RAM1、第一蝴蝶单元、ROM、RAM2以及第二蝴蝶单元;
其中:所述NTT控制单元的输出端分别连接所述RAM1、第一蝴蝶单元、 ROM、RAM2以及第二蝴蝶单元的输入端;
所述RAM1的输出端连接所述第一蝴蝶单元的输入端;所述第一蝴蝶单元的输出端连接所述RAM1的输入端;
所述ROM的输出端分别连接所述第一蝴蝶单元以及第二蝴蝶单元的输入端;
所述RAM2的输出端连接所述第二蝴蝶单元的输入端;所述第二蝴蝶单元的输出端连接所述RAM2的输入端。
进一步的,对于从所述ROM中读取到的地址信号ω,从所述RAM1读取到的输入数据a1、b1,从所述RAM2读取到的输入数据a2、b2,当所述NTT模块执行NTT操作时将计算得到(a1+ω*b1)、(a1-ω*b1)、(a2+ω*b2)以及(a2-ω*b2)。
进一步的,对于从所述ROM中读取到的地址信号ω,从所述RAM1读取到的输入数据a1、b1,从所述RAM2读取到的输入数据a2、b2,当所述NTT模块执行INTT操作时将计算得到((a1+b1)*ω)、((a1-b1)*ω)、((a2+b2)*ω)以及 ((a2-b2)*ω)。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种后量子密码Crystals Kyber协议的密码系统,其特征在于,其采用Hash模块实现Crystals Kyber协议中使用的伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF、哈希函数H以及哈希函数G;采用包括两个并列的蝴蝶单元的NTT模块实现Crystals Kyber协议中的NTT与INTT操作;
所述Hash模块包括控制逻辑核心、Keccak计算单元、截断单元、MUX11、MUX12、MUX13、移位寄存器组、计数器、异或单元以及由分别对应一种填充方式的五个填充模块组成的填充模组;
其中:所述控制逻辑核心的输出端分别连接所述填充模组、MUX11、MUX12以及截断单元的输入端;
所述MUX11的输出端连接所述移位寄存器组的输入端;所述移位寄存器组的输出端连接所述异或单元的输入端;所述计数器的输出端分别连接所述控制逻辑核心以及异或单元的输入端;所述MUX12的输出端连接所述异或单元的输入端;
所述异或单元的输出端连接所述MUX13的输入端;所述填充模组的输出端连接所述MUX13的输入端;所述MUX13的输出端连接所述Keccak计算单元的输入端;所述Keccak计算单元的输出端分别连接所述MUX12、MUX13以及截断单元的输入端。
2.根据权利要求1所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述Hash模块的工作模式包括用于处理定长数据,实现伪随机函数PRF、可扩展输出函数XOF、密钥派生函数KDF以及哈希函数G的HASH_FIX模式。
3.根据权利要求2所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述Hash模块在HASH_FIX模式下,通过所述控制逻辑核心模式选择所述填充模组中相应的填充模块的值,数据通过所述MUX13进入到所述Keccak计算单元中进行计算,所述Keccak计算单元首轮的输入值为填充后的数据,其余轮次的输入值为当前状态值;完成计算后,发送结果到所述截断单元进行截断后输出。
4.根据权利要求1所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述Hash模块的工作模式包括用于处理不定长数据,实现哈希函数H的HASH_H模式。
5.根据权利要求4所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述移位寄存器组的规格为34*32;所述Hash模块在HASH_H模式下,对于位宽为32bits的输入数据流,所述移位寄存器组每个周期接受32bits的数据;每34个周期,所述移位寄存器组接收1088个bit的数据;当输入数据流的长度不为1088bit的整数倍时,移位寄存器接收来自所述控制逻辑核心的填充数据进行填充;当计数器到达34时,所述移位寄存器组的数据进入所述异或单元进行异或操作,随后通过所述MUX13进入到所述Keccak计算单元进行迭代运算;当所述Keccak计算单元进行迭代运算的次数达到相应次数时,发送迭代结果到所述截断单元截断成32*8的数据输出。
6.根据权利要求1所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述蝴蝶单元为可配置的流水蝴蝶硬件单元。
7.根据权利要求1所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述蝴蝶单元包括第一模加器、第一模减器、MUX21、MUX22、延迟器、模乘器、第二模加器、第二模减器、MUX23、MUX24;
所述第一模加器的输出端连接所述MUX21的输入端;所述第一模减器的输出端连接所述MUX22的输入端;所述MUX21的输出端连接所述延迟器的输入端;所述延迟器的输出端分别连接所述第二模加器、第二模减器以及MUX23的输入端;所述第二模加器的输出端连接所述MUX23的输入端;所述MUX22的输出端连接所述模乘器的输入端;所述模乘器的输出端分别连接所述第二模加器、第二模减器以及MUX24的输入端;所述第二模减器的输出端连接所述MUX24的输入端。
8.根据权利要求1所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,所述NTT模块包括NTT控制单元、RAM1、第一蝴蝶单元、ROM、RAM2以及第二蝴蝶单元;
其中:所述NTT控制单元的输出端分别连接所述RAM1、第一蝴蝶单元、ROM、RAM2以及第二蝴蝶单元的输入端;
所述RAM1的输出端连接所述第一蝴蝶单元的输入端;所述第一蝴蝶单元的输出端连接所述RAM1的输入端;
所述ROM的输出端分别连接所述第一蝴蝶单元以及第二蝴蝶单元的输入端;
所述RAM2的输出端连接所述第二蝴蝶单元的输入端;所述第二蝴蝶单元的输出端连接所述RAM2的输入端。
9.根据权利要求8所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,对于从所述ROM中读取到的地址信号ω,从所述RAM1读取到的输入数据a1、b1,从所述RAM2读取到的输入数据a2、b2,当所述NTT模块执行NTT操作时将计算得到(a1+ω*b1)、(a1-ω*b1)、(a2+ω*b2)以及(a2-ω*b2)。
10.根据权利要求8所述的后量子密码Crystals Kyber协议的密码系统,其特征在于,对于从所述ROM中读取到的地址信号ω,从所述RAM1读取到的输入数据a1、b1,从所述RAM2读取到的输入数据a2、b2,当所述NTT模块执行INTT操作时将计算得到((a1+b1)*ω)、((a1-b1)*ω)、((a2+b2)*ω)以及((a2-b2)*ω)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346751.3A CN114640454B (zh) | 2022-04-02 | 2022-04-02 | 一种后量子密码Crystals Kyber协议的密码系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210346751.3A CN114640454B (zh) | 2022-04-02 | 2022-04-02 | 一种后量子密码Crystals Kyber协议的密码系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114640454A true CN114640454A (zh) | 2022-06-17 |
CN114640454B CN114640454B (zh) | 2023-05-23 |
Family
ID=81951088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210346751.3A Active CN114640454B (zh) | 2022-04-02 | 2022-04-02 | 一种后量子密码Crystals Kyber协议的密码系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114640454B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412241A (zh) * | 2022-07-25 | 2022-11-29 | 华中科技大学 | 实现后量子密码算法Kyber和Saber的融合密码安全处理器 |
CN115801226A (zh) * | 2022-11-02 | 2023-03-14 | 武汉亦芯微电子有限公司 | 后量子密码算法crystals-kyber安全处理器 |
CN116094711A (zh) * | 2023-02-07 | 2023-05-09 | 郑州大学 | 一种基于指令集的后量子格密码硬件优化结构 |
CN116886274A (zh) * | 2023-09-05 | 2023-10-13 | 南京航空航天大学 | 应用于CRYSTALS-Kyber的高效应用型多项式运算电路 |
CN117353926A (zh) * | 2023-12-01 | 2024-01-05 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9698986B1 (en) * | 2016-09-23 | 2017-07-04 | ISARA Corporation | Generating shared secrets for lattice-based cryptographic protocols |
US20200265167A1 (en) * | 2019-02-19 | 2020-08-20 | Massachusetts Institute Of Technology | Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques |
-
2022
- 2022-04-02 CN CN202210346751.3A patent/CN114640454B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9698986B1 (en) * | 2016-09-23 | 2017-07-04 | ISARA Corporation | Generating shared secrets for lattice-based cryptographic protocols |
US20200265167A1 (en) * | 2019-02-19 | 2020-08-20 | Massachusetts Institute Of Technology | Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412241A (zh) * | 2022-07-25 | 2022-11-29 | 华中科技大学 | 实现后量子密码算法Kyber和Saber的融合密码安全处理器 |
CN115412241B (zh) * | 2022-07-25 | 2024-02-06 | 华中科技大学 | 实现后量子密码算法Kyber和Saber的融合密码安全处理器 |
CN115801226A (zh) * | 2022-11-02 | 2023-03-14 | 武汉亦芯微电子有限公司 | 后量子密码算法crystals-kyber安全处理器 |
CN115801226B (zh) * | 2022-11-02 | 2024-04-09 | 武汉亦芯微电子有限公司 | 一种后量子密码算法crystals-kyber安全处理器 |
CN116094711A (zh) * | 2023-02-07 | 2023-05-09 | 郑州大学 | 一种基于指令集的后量子格密码硬件优化结构 |
CN116094711B (zh) * | 2023-02-07 | 2023-09-12 | 郑州大学 | 一种基于指令集的后量子格密码硬件优化结构 |
CN116886274A (zh) * | 2023-09-05 | 2023-10-13 | 南京航空航天大学 | 应用于CRYSTALS-Kyber的高效应用型多项式运算电路 |
CN116886274B (zh) * | 2023-09-05 | 2023-12-01 | 南京航空航天大学 | 应用于CRYSTALS-Kyber的高效应用型多项式运算电路 |
CN117353926A (zh) * | 2023-12-01 | 2024-01-05 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
CN117353926B (zh) * | 2023-12-01 | 2024-02-27 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114640454B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114640454A (zh) | 一种后量子密码Crystals Kyber协议的密码系统 | |
CN104270247B (zh) | 适用于量子密码系统的高效泛Hash函数认证方法 | |
CN113343305B (zh) | 隐私数据的交集计算方法、装置、设备及存储介质 | |
CN113628094B (zh) | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN113078996B (zh) | Sm4密码算法的fpga优化实现方法、系统及应用 | |
CN102523365A (zh) | 一种基于元胞自动机的图像加密和解密方法 | |
CN114895870B (zh) | 基于fpga实现的高效可重构sm2点乘方法及系统 | |
Pirzada et al. | Implementation of CMAC Authentication Algorithm on FPGA for Satellite Communication | |
CN114679252A (zh) | 一种MACsec AES算法资源共享方法 | |
CN103400072A (zh) | 哈希值密码的恢复方法和装置 | |
CN107483182A (zh) | 一种基于乱序执行的面向aes算法的抗功耗攻击方法 | |
CN1881874A (zh) | 基于神经网络混沌吸引子的公钥密码加密和解密方法 | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
Xu et al. | Ring-ExpLWE: A high-performance and lightweight post-quantum encryption scheme for resource-constrained IoT devices | |
CN116094711B (zh) | 一种基于指令集的后量子格密码硬件优化结构 | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
Wang et al. | High-speed architectures for GHASH based on efficient bit-parallel multipliers | |
Peng et al. | FPGA implementation of AES encryption optimization algorithm | |
Nabil et al. | Design and implementation of pipelined aes encryption system using FPGA | |
CN114911455A (zh) | 基于fpga的高速伪随机数生成方法及高速伪随机数生成器 | |
Kanda et al. | Vedic Multiplier-based International Data Encryption Algorithm Crypto-Core for Efficient Hardware Multiphase Encryption Design | |
Lv et al. | High-performance optimization of SM4-GCM based on FPGA | |
Polani et al. | Low power and area efficient AES implementation using ROM based key expansion and rotational shift | |
Lakshmi et al. | Design and implementation of FPGA based dual key encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |