CN103780381A - 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 - Google Patents
基于高基脉动阵列的蒙哥马利算法的实现装置及方法 Download PDFInfo
- Publication number
- CN103780381A CN103780381A CN201210547295.5A CN201210547295A CN103780381A CN 103780381 A CN103780381 A CN 103780381A CN 201210547295 A CN201210547295 A CN 201210547295A CN 103780381 A CN103780381 A CN 103780381A
- Authority
- CN
- China
- Prior art keywords
- montgomery
- algorithm
- systolic arrays
- controller
- high base
- 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
Images
Abstract
一种基于高基脉动阵列的蒙哥马利算法的实现装置及方法,以2k为基实现Montgomery算法,并将此算法在以2k为基的脉动阵列上实现,通过设置:一控制器,根据当前状态产生Montgomery算法实现需要的各种控制信号;一移位寄存器,由控制器产生的控制信号决定移位寄存器进行装载、移位或清零操作;和一高基脉动阵列,采用流水线的方法将长整数的加法运算分割成短整数的加法并将其中一个乘数一个比特一个比特从流水线一端放入脉动阵列中,并进行脉动传播。本发明能够以较快速度并以较低功耗完成模乘操作。
Description
技术领域
本发明涉及非对称加密技术,特别是涉及Montgomery(蒙哥马利)算法的实现装置及方法。
背景技术
随着信息技术的发展,无论是机构还是个人,将越来越多的事情交给计算机处理,一些机密和敏感信息也经过脆弱的网络在计算机系统之间传输。信息在存储、处理和交换过程中,都存在泄密或被截获、窃听、篡改和伪造的可能性。这就需要通过多种措施保证信息的安全,也提出了许多信息安全的新课题,比如信息加密、数字签名和身份认证等,其中,信息加密技术是最基本的安全技术。加密技术,按照密码使用方法不同,可以分为对称密钥算法和非对称密钥算法。在对称密钥算法中,加密、解密都使用相同的密钥。非对称密钥算法又称公钥密码算法,即加密、解密使用两个不同的密钥,通信双方无需事先交换密钥就可进行保密通信。
在众多的公钥密码体制中,1978 年由Rivest, Shamir 和Adleman在美国MIT 提出的RSA 算法被公认为是目前理论和实际应用中最为成熟和完善的一种公钥密码体制,可以用来进行数字签名和身份验证。
该算法的安全性依赖于大整数的素数因子分解的困难性,所以,RSA需采用足够大的整数。因子分解越困难,密码就越难以破译,加密强度就越高。该算法最基本最核心的算术操作是模乘运算,再由一系列的模乘来完成模幂运算。为了满足对密码强度的需求,模幂运算的操作数的位数需要2048位,所以运算量极大,很难获得很高的数据吞吐率,成为提高系统加解密运算速度的瓶颈。
采用Montgomery 模乘算法可以较好地提高RSA运算速度。它是一种快速模乘运算方法,采用了模加右移的方法来避免通常的求模运算中存在的费时的除法步骤。但是Montgomery算法中存在长进位链问题,如2048位RSA运算,就需要在Montgomery算法中实现2048位加法。2048位进位时间过长,不能满足芯片的时间约束。脉动阵列以流水线的方式将长整数加法运算分割成短整数加法运算,可以每个时钟周期内完成一个短整数加法。实践发现,虽然脉动阵列有效解决了Montgomery算法的长进位链问题,但是脉动阵列中大量处理器同时工作会导致它的功耗不能满足现代芯片低功耗要求。
可见,实有必要对现有技术进行改进,以较好地均衡速度与成本功耗。
发明内容
本发明要解决的技术问题在于克服上述现有技术的不足,而提出一种基于高基脉动阵列的Montgomery算法的实现,能够以较快的速度和较小的面积实现Montgomery算法。
本发明解决上述技术问题采用的技术方案包括,提出一种基于高基脉动阵列的蒙哥马利算法的实现装置,包括:
一控制器,用以根据模密计算的执行状态产生蒙哥马利模乘的控制信号;
一移位寄存器,用以根据该控制器给出的控制信号进行相应的操作;及
—高基脉动阵列,用以根据该控制器单元的控制信号并与该移位寄存器配合来实现高基蒙哥马利算法的计算;
与现有技术相比,本发明的基于高基脉动阵列的蒙哥马利算法的实现装置及方法,能够以较快的速度和较小的面积实现Montgomery算法。
附图说明
图1为本发明的基于高基脉动阵列的蒙哥马利算法的实现装置实施例的结构示意图。
图2为本发明实施例中高基脉动阵列的工作示意图。
图3为本发明实施例中高基脉动阵列的结构示意图。
图4为本发明实施例的高基脉动阵列中位于流水线入端的处理器的结构示意图。
图5为本发明实施例的高基脉动阵列中位于流水线邻近入端位置的处理器的结构示意图。
图6为本发明实施例的高基脉动阵列中位于流水线次邻近末端位置的处理器的结构示意图。
图7为本发明实施例的高基脉动阵列中位于流水线末端的处理器的结构示意图。
具体实施方式
以下结合附图所示之最佳实施例作进一步详述。
本发明提出一种基于高基脉动阵列的蒙哥马利算法的实现方法,包括:
设置一控制器,用以根据模密计算的执行状态产生蒙哥马利模乘的控制信号;
设置一移位寄存器,用以根据该控制器给出的控制信号进行相应的操作;
设置—高基脉动阵列,用以根据该控制器单元的控制信号并与该移位寄存器配合来实现高基蒙哥马利算法的计算;
该高基脉动阵列还输入预计算的M= -N-1 mod 2k参与后续的高基蒙哥马利算法的计算,其中,N和2k满足gcd(N,2k)= 1。
该高基脉动阵列采用流水线的方法将m位长整数的加法运算分割成u位短整数的加法,将该移位寄存器中的乘数按位从流水线的入端装载到流水线中,并进行脉动传播。
该高基脉动阵列包含m/u+1个处理单元。
该高基脉动阵列将该控制器产生的控制信号在各个处理单元间进行脉动传播,从而控制所有处理单元。
该高基脉动阵列中位于流水线的入端的处理单元包括一个k位乘法模块,以产生蒙哥马利算法中需要的Q i 数据,其他处理单元只需使用此数据并进行脉动传播。
该移位寄存器为m位,存放两个乘数中的一个,并由该控制器产生的控制信号决定该移位寄存器进行装载、移位或清零操作。
该控制器根据当前状态产生蒙哥马利算法实现需要的各种控制信号。
参见图1,本发明的基于高基脉动阵列的蒙哥马利算法的实现装置实施例大致包括:控制器1,移位寄存器2和高基脉动阵列3。控制器1与移位寄存器2及高基脉动阵列3都相连,移位寄存器2还与高基脉动阵列3相连。其中,控制器1可根据模密计算的执行状态产生Montgomery模乘的控制信号以控制移位寄存器2和高基脉动阵列3。移位寄存器2可根据控制器1发送的移位(A_shift)、装载(A_load)和置位(A_set)信号进行相应的操作。高基脉动阵列3可根据控制器1的控制信号进行重置(Reset),选择数据输入A (Insel=1)或数据输入B(Insel=0)进入后续计算,将计算结果输入B寄存器(Mul_mod=1且Pow_mod=0)或A寄存器(Mul_mod=0且Pow_mod=1)。
参见图2,本发明的高基脉动阵列3的工作流程大致是:输入数据以流水线的方式在高基脉动阵列3中进行计算。图中每一横排代表Montgomery模乘算法的一次迭代,即乘数的其中1位乘以被乘数得到的结果。计算的进位向左传递给下一个处理器。计算的结果向下传递,作为Montgomery算法下一次迭代的数据输入。上一次迭代结果的低k位传递到下一次迭代的右边处理器。进行m-1次迭代后将最后结果输出到寄存器中。寄存器中数据进行连接就得到两个乘数进行Montgomery模乘的最终结果。
参见图3,本发明的高基脉动阵列3的结构大致包括:最右边(也就是流水线入端)的脉动阵列(Systolic Array)单元SA0,也就是处理器4、中间(邻近入端)的脉动阵列单元SA1,也就是处理器5、次左位置(邻近末端)的脉动阵列单元Sat-1,也就是处理器6和最左边(也就是流水线末端)的脉动阵列单元Sat,也就是处理器7。图中省略了m/u-3个处理器,这些处理器的结构与处理器5相同。本发明的高基脉动阵列3的这些处理器依次将输入的控制信号和数据Ai向左传递。其中,最右边处理器4产生中间变量Qi并向左传播,其他处理器使用Qi并不改变其值地向左传播。
除最左边处理器7之外的每个处理器在计算过程中产生进位C,并将进位C向左传给下一个处理器。同时除最右边处理器4之外每个处理器将计算结果的最低k位(Ruj[k-1,0])向右传给邻近的处理器。
参见图4,本发明的高基脉动阵列3的最右边处理器4的结构大致包括:MUX(多路选择单元)8,k bits与u*k bits相乘的乘法器9、10,Qi数据生成器11,(u+1)*k bits加法器12,结果的高(u-1)*k bits的寄存器13、Insel控制信号寄存器14,Ai寄存器15,Qi寄存器16,进位寄存器17,重置寄存器18,Pow_mod寄存器19,Mul_mod寄存器20,LINK(连接)21、A寄存器22和B寄存器23。
其中,多路选择单元8根据输入的控制信号Insel选择输入数据A或数据B。
输入的控制信号Insel保持原值存入到Insel寄存器14中。
输入的数据Ai保持原值存入到Ai寄存器15中。
乘法器9计算Qi与预计算数据M相乘的结果。
乘法器10计算输入数据Ai和多路选择单元8输出相乘的结果。
Qi生成器11包括k bits乘法器和k bits加法器:首先将R′u0与乘法器10的低k bits数相加,再将和的低k bits与预计算的M= -N-1 mod 2k的低k bits相乘,最后将积的低k bits输出给Qi寄存器16和乘法器9。
(u+1)*k bits加法器12接收上一次迭代结果以及乘法器9和乘法器10的结果做加法。加法器12的输出数据低k bits舍弃,高(u-1)*k bits根据输入的控制信号Pow_mod和Mul_mod存入A寄存器22或B寄存器23中,加法器12产生的2k bits进位存入进位寄存器17中。
控制信号Reset、Pow_mod和Mul_mod分别保持原值存入到重置寄存器18、Pow_mod寄存器19和Mul_mod寄存器20中。
连接21将上一次次迭代的左边处理器计算的低k bits结果与本次迭代计算的高(u-1)*k bits相连输出到加法器12中。
参见图5,本发明的高基脉动阵列3的中间处理器5的结构与最右边处理器4结构类似,只是少了Qi生成器11,其他相似之处不再赘述。
参见图6,本文的高基脉动阵列3的次左位置处理器6的结构与中间处理器5结构类似。只是少了Qi寄存器31,因为最左边处理7不需要Qi的值。其他相似之处不再赘述。
参见图7,本文的高基脉动阵列3的最左边处理7的结构大致包括:多路选择单元52、k bits乘法器53、2k bits加法器54、2k bits寄存器55、A寄存器56和B寄存器57。
其中,多路选择单元52根据控制信号Insel选择数据A或数据B输入。k bits乘法器53将Ai与多路选择的结果相乘,积输出到2k bits加法器单元54中。2k bits加法器54将上次迭代的2k bits结果与乘法器53的输出进行相加。加法器54计算结果的低k bits输出到次左处理器6中。另外计算结果也根据输入的控制信号Pow_mod和Mul_mod存入A寄存器56或B寄存器57中。
与现有技术相比,本发明的基于高基脉动阵列的蒙哥马利算法的实现装置及方法,以2k为基实现Montgomery算法,并将此算法在以2k为基的脉动阵列上实现,通过设置:一控制器1,根据当前状态产生Montgomery算法实现需要的各种控制信号;一移位寄存器2,由控制器产生的控制信号决定移位寄存器进行装载、移位或清零操作;和一高基脉动阵列3,采用流水线的方法将长整数的加法运算分割成短整数的加法并将其中一个乘数一个比特一个比特从流水线一端放入脉动阵列中,并进行脉动传播,能够以较快速度并以较低功耗完成模乘操作。
以上,仅为本发明之较佳实施例,意在进一步说明本发明,而非对其进行限定。凡根据上述之文字和附图所公开的内容进行的简单的替换,都在本专利的权利保护范围之列。
Claims (10)
2.如权利要求1所述的蒙哥马利算法的实现装置,其特征在于,该高基脉动阵列还输入预计算的M= -N-1 mod 2k参与后续的高基蒙哥马利算法的计算,其中,N和2k满足gcd(N,2k)= 1。
3.如权利要求1所述的蒙哥马利算法的实现装置,其特征在于,该高基脉动阵列采用流水线的方法将m位长整数的加法运算分割成u位短整数的加法,将该移位寄存器中的乘数按位从流水线的入端装载到流水线中,并进行脉动传播。
4.如权利要求3所述的蒙哥马利算法的实现装置,其特征在于,该高基脉动阵列包含m/u+1个处理器。
5.如权利要求4所述的蒙哥马利算法的实现装置,其特征在于,该高基脉动阵列将该控制器产生的控制信号在各个处理器间进行脉动传播,从而控制所有处理器。
6. 如权利要求4所述的蒙哥马利算法的实现装置,其特征在于, 该高基脉动阵列中位于流水线的入端的处理器包括一个k位乘法模块,以产生蒙哥马利算法中需要的Q i 数据,其他处理器只需使用此数据并进行脉动传播。
7.如权利要求1所述的蒙哥马利算法的实现装置,其特征在于,该移位寄存器为m位,存放两个乘数中的一个,并由该控制器产生的控制信号决定该移位寄存器进行装载、移位或清零操作。
8.如权利要求1所述的蒙哥马利算法的实现装置,其特征在于,该控制器根据当前状态产生蒙哥马利算法实现需要的各种控制信号。
10.如权利要求9所述的蒙哥马利算法的实现方法,其特征在于,使该高基脉动阵列还输入预计算的M= -N-1 mod 2k参与后续的高基蒙哥马利算法的计算,其中,N和2k满足gcd(N,2k)= 1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210547295.5A CN103780381B (zh) | 2012-12-17 | 2012-12-17 | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210547295.5A CN103780381B (zh) | 2012-12-17 | 2012-12-17 | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780381A true CN103780381A (zh) | 2014-05-07 |
CN103780381B CN103780381B (zh) | 2017-06-27 |
Family
ID=50572256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210547295.5A Active CN103780381B (zh) | 2012-12-17 | 2012-12-17 | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780381B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765586A (zh) * | 2015-04-15 | 2015-07-08 | 深圳国微技术有限公司 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
WO2016165211A1 (zh) * | 2015-04-15 | 2016-10-20 | 深圳国微技术有限公司 | 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片 |
CN109284085A (zh) * | 2018-09-25 | 2019-01-29 | 国网湖南省电力有限公司 | 一种基于fpga的高速模乘和模幂运算方法及模型 |
CN111427537A (zh) * | 2020-03-17 | 2020-07-17 | 云南大学 | 一种基于fpga的脉动阵列并行排序方法及装置 |
CN113761822A (zh) * | 2020-06-04 | 2021-12-07 | 熵码科技股份有限公司 | 采用迭代计算的模数运算电路 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2507064Y (zh) * | 2001-10-18 | 2002-08-21 | 深圳市中兴集成电路设计有限责任公司 | 一种蒙哥马利模乘器 |
EP1239365A2 (en) * | 2001-03-06 | 2002-09-11 | Hitachi, Ltd. | Tamper-resistant processing method |
CN1525307A (zh) * | 2003-02-26 | 2004-09-01 | 上海华园微电子技术有限公司 | 一种模乘运算电路和一种运用该模乘运算电路的加密方法 |
CN101216754A (zh) * | 2007-12-27 | 2008-07-09 | 广州杰赛科技股份有限公司 | 模乘运算的处理方法、数据加解密处理的方法、装置 |
US7451326B2 (en) * | 2002-08-26 | 2008-11-11 | Mosaid Technologies, Inc. | Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies |
CN101599828A (zh) * | 2009-06-17 | 2009-12-09 | 刘霁中 | 一种高效的rsa加解密方法及其协处理器 |
-
2012
- 2012-12-17 CN CN201210547295.5A patent/CN103780381B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1239365A2 (en) * | 2001-03-06 | 2002-09-11 | Hitachi, Ltd. | Tamper-resistant processing method |
CN2507064Y (zh) * | 2001-10-18 | 2002-08-21 | 深圳市中兴集成电路设计有限责任公司 | 一种蒙哥马利模乘器 |
US7451326B2 (en) * | 2002-08-26 | 2008-11-11 | Mosaid Technologies, Inc. | Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies |
CN1525307A (zh) * | 2003-02-26 | 2004-09-01 | 上海华园微电子技术有限公司 | 一种模乘运算电路和一种运用该模乘运算电路的加密方法 |
CN101216754A (zh) * | 2007-12-27 | 2008-07-09 | 广州杰赛科技股份有限公司 | 模乘运算的处理方法、数据加解密处理的方法、装置 |
CN101599828A (zh) * | 2009-06-17 | 2009-12-09 | 刘霁中 | 一种高效的rsa加解密方法及其协处理器 |
Non-Patent Citations (1)
Title |
---|
温暖: "基于心动阵列结构的RSA公钥密码协处理器的设计与实现", 《中国优秀博硕士学位论文全文数据库》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765586A (zh) * | 2015-04-15 | 2015-07-08 | 深圳国微技术有限公司 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
WO2016165211A1 (zh) * | 2015-04-15 | 2016-10-20 | 深圳国微技术有限公司 | 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片 |
CN104765586B (zh) * | 2015-04-15 | 2018-09-28 | 深圳国微技术有限公司 | 一种嵌入式安全芯片及其的蒙哥马利模乘运算方法 |
US10175950B2 (en) | 2015-04-15 | 2019-01-08 | Shenzhen State Micro Technology Co., Ltd. | Montgomery modular multiplication device and embedded security chip with same |
CN109284085A (zh) * | 2018-09-25 | 2019-01-29 | 国网湖南省电力有限公司 | 一种基于fpga的高速模乘和模幂运算方法及模型 |
CN109284085B (zh) * | 2018-09-25 | 2023-03-31 | 国网湖南省电力有限公司 | 一种基于fpga的高速模乘和模幂运算方法及装置 |
CN111427537A (zh) * | 2020-03-17 | 2020-07-17 | 云南大学 | 一种基于fpga的脉动阵列并行排序方法及装置 |
CN111427537B (zh) * | 2020-03-17 | 2023-06-30 | 云南大学 | 一种基于fpga的脉动阵列并行排序方法及装置 |
CN113761822A (zh) * | 2020-06-04 | 2021-12-07 | 熵码科技股份有限公司 | 采用迭代计算的模数运算电路 |
Also Published As
Publication number | Publication date |
---|---|
CN103780381B (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351087B (zh) | 流水线型的蒙哥马利模乘运算方法 | |
Afreen et al. | A review on elliptic curve cryptography for embedded systems | |
CN101149675A (zh) | 乘法器 | |
CN103780381A (zh) | 基于高基脉动阵列的蒙哥马利算法的实现装置及方法 | |
Kocabaş et al. | Implementation of binary Edwards curves for very-constrained devices | |
CN100583769C (zh) | 椭圆曲线密码系统的倍点系统 | |
CN101599828A (zh) | 一种高效的rsa加解密方法及其协处理器 | |
Borges et al. | Parallel algorithms for modular multi-exponentiation | |
CN103793199A (zh) | 一种支持双域的快速rsa密码协处理器 | |
Saxena et al. | State of the art parallel approaches for RSA public key based cryptosystem | |
Banerjee | Reversible cryptographic hardware with optimized quantum cost and delay | |
Morales-Sandoval et al. | A compact fpga-based accelerator for curve-based cryptography in wireless sensor networks | |
Hossain et al. | FPGA-based efficient modular multiplication for Elliptic Curve Cryptography | |
CN101630244A (zh) | 一种流水线型椭圆曲线双标量乘法系统及方法 | |
Li et al. | Research in fast modular exponentiation algorithm based on FPGA | |
CN100435091C (zh) | 大数模幂系统的硬件高基实现方法 | |
Nedjah et al. | High-performance SoC-based implementation of modular exponentiation using evolutionary addition chains for efficient cryptography | |
CN109284085A (zh) | 一种基于fpga的高速模乘和模幂运算方法及模型 | |
Al-Khaleel et al. | An elliptic curve cryptosystem design based on FPGA pipeline folding | |
Li et al. | Parallel algorithms for cryptosystem on conic curves over finite field Fp | |
Li et al. | FPGA implementations of elliptic curve cryptography and Tate pairing over a binary field | |
WO2017037729A1 (en) | Concurrent architecture of vedic multiplier-an accelerator scheme for high speed computing | |
Judge et al. | A hardware-accelerated ECDLP with high-performance modular multiplication | |
CN203119915U (zh) | 一种基于硬件加密数据的装置 | |
Smyth et al. | An adaptable and scalable asymmetric cryptographic processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |