CN100353702C - 可重构密码协处理器的可重构置换模块 - Google Patents
可重构密码协处理器的可重构置换模块 Download PDFInfo
- Publication number
- CN100353702C CN100353702C CNB2004100235431A CN200410023543A CN100353702C CN 100353702 C CN100353702 C CN 100353702C CN B2004100235431 A CNB2004100235431 A CN B2004100235431A CN 200410023543 A CN200410023543 A CN 200410023543A CN 100353702 C CN100353702 C CN 100353702C
- Authority
- CN
- China
- Prior art keywords
- input
- output
- restructural
- data
- configuration file
- 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.)
- Expired - Fee Related
Links
Images
Abstract
一种可重构密码协处理器的可重构置换模块的设计方法,属于大规模集成电路技术。以n位输入、m位输出。包括:①设计配置文件寄存器,以CONT、CLK、RST、E0、E1…为输入端,以CR[m[log2n]-1:0]为输出端,用于保存置换单元中的可控节点的控制编码,可由指令改写;②设计n×m置换单元,以CR[m[log2n]-1:0]、D[(n-1):0]为输入端,以Q[(m-1):0]为输出端,可实现输入数据到输出数据的选择变换。置换单元包括m个n位的多路选通器和m位锁存器。控制多路选通器的控制信号可实现任意的位置变换。置换模块能根据不同密码算法的需求,灵活改变逻辑结构和功能,实现不同的选择变换。可广泛应用于信息加密领域的可重构密码协处理器中。
Description
技术领域
本发明属于用于信息安全领域的可重构密码协处理器芯片的设计技术,更明确地说涉及可重构密码协处理器的可重构置换模块的设计方法的改进。
背景技术
保证信息安全的一个最基本也是最有效的措施是对信息进行密码变换。密码芯片是构成密码系统的最核心的基本部件。对于某种专用加密芯片,由于硬件电路结构是针对某种特定的加密/解密算法设计的,因此算法和硬件电路结构能够匹配得很好,从而使专用密码芯片的加/解密速度很快,但是,针对特定算法的专用密码芯片的灵活性极差,只能适应一种算法,这极大地限制了它的应用范围。
基于可重构密码逻辑的可重构密码芯片为数据加密提供了一条新的途径。其内部电路结构可重构的特性使其体系结构具有了一定程度的柔性,较好地解决了传统的刚性体系结构所带来的体系结构与不同应用需求不匹配的问题。同专用密码芯片相比,可重构密码协处理器具有如下优点:(1)可重构密码协处理器为密码设备的使用者提供了极大的灵活性,用户可以根据自己的需求,通过编程在可重构密码协处理器上实现各种不同的密码算法。一旦密码算法需要升级换代,不必更换密码芯片,只需修改相应的编程软件即可,非常方便。因此能够延长密码系统的使用寿命,保护用户的投资利益。(2)可重构密码协处理器不是针对某一特定密码算法设计的,而是为大量的具有一定共性的密码算法(主要是对称密钥体制算法)提供的一个通用的硬件实现平台。可重构密码协处理器在投入使用之前并不含有特定的密码算法信息,所实现的密码算法是由用户在使用之前通过编程确定的,因此,在芯片的设计和生产阶段不会泄露密码算法的信息,从而提高了密码系统的安全系数。(3)基于可重构密码协处理器的密码系统的开发周期比专用密码芯片的开发周期短。(4)用户可以很方便地随时更换所使用的密码算法,缩短同一密码算法的使用周期,从而大大增加了密码分析(攻击)的难度,从另一个方面提高了密码系统的安全性。
密码算法具有一个显著的特征:很多不同的密码算法具有相同或相似的基本操作成分,或者说同一基本操作成分在不同算法中出现的频度很高。对DES、IDEA、AES候选算法等34种典型的分组密码算法和13种典型的序列密码算法的基本操作成分及其使用频度的统计,发现置换操作的使用频度达到30%,因此置换模块是可重构密码协处理器的不可缺少的重要组成部分之一。
目前,专用密码芯片上的置换模块都是采用逻辑硬布线的方式实现的,这样的置换模块所实现的选择变换是唯一的、不可改变的。因此,只能适应特定密码算法的需求,没有灵活性和适应性。
发明内容
本发明的目的,是设计一种灵活性大、适应性强的置换模块。该置换模块应能够根据不同密码算法的需求,灵活改变自身电路的逻辑结构和功能,从而实现不同密码算法所需的选择变换。这种置换模块即为可重构置换模块。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种可重构密码协处理器的可重构置换模块,包括配置文件寄存器和置换单元,所述配置文件寄存器保存可控节点的控制编码,生成控制信号输出到所述置换单元的控制端;在所述置换单元中包括多路选通器,其输入端接收输入数据,选通控制端接收所述配置文件寄存器输出的控制信号,并根据所述控制信号选通其相应的输入端,通过其输出端输出置换后的数据。
所述置换单元包括m个n位多路选通器,其中,m等于置换后要求输出的数据位数,n等于输入数据的位数,每一个多路选通器的n位输入端分别与输入数据的相应位对应连接;所述配置文件寄存器输出的控制信号包括m个,每个控制信号包括log2n位编码数据,m个控制信号与所述的m个多路选通器的选通控制端一一对应连接,所述多路选通器根据其选通控制端接收到的编码数据选择其相应输入端的数据输出。
所述多路选通器的输出端连接一m位锁存器的输入端,所述锁存器的时钟端接收时钟控制信号,其输出端即为所述可重构置换模块的数据输出端。所述m和n均为自然数。
所述配置文件寄存器的输入端接收外部配置数据,并根据输入的配置数据改写其内部控制编码,进而改变所述置换单元所实现的选择变换。
可重构置换模块的电路设计的总体思路是:在电路中设置一些指令界面可见、可控的节点(称为可控节点),将这些可控节点的控制编码(称为可控编码)保存在配置文件寄存器(或称为标识寄存器)中,通过指令改写配置寄存器的值,就可以灵活地改变自身电路的逻辑结构和功能,从而实现不同密码算法所需的选择变换。
步骤②的置换单元包括m个n位的多路选通器和与每个多路选通器的输出端连接的m位锁存器,其每位输出来自于一个多路选通器,每个多路选通器可以选择任何一个输入作为输出,而且每个多路选通器的控制信号是相互独立的,因此通过控制每个多路选通器的控制信号可以实现任意的位置变换关系。
置换模块是分组密码算法中经常使用的一个密码组件,其功能是从输入变量中选择某些位输出,即输出变量的任何一位都是从输入变量的所有位中选择出来的某一位。显然,置换单元实现了从输入变量到输出变量的一个变换,我们称这种变换为选择变换。按照重构模块的最大适应性设计原则,一个n输入、m输出的置换单元(以下简称为n×m置换单元)应该实现n输入、m输出的所有的选择变换,即n×m置换单元的任何一个输出能够选择n个输入中的任何一个。按照该原则设计的置换单元所需要的可控编码的宽度和它所能实现的选择变换的个数可由下述定理描述。
[定理]设一个n×m置换模块能够实现其输入变量到输出变量的所有的选择变换,则该置换模块需要m[log2n]位控制编码,能够实现nm个不同的选择变换。
例如:一个64×64的置换模块需要384位控制编码,能够实现6464≈3.94×10115个不同的选择变换。显然,循环移位变换是一种特殊的选择变换,因此,一个n×n置换模块能够实现字长小于或等于n的任意的循环移位变换。另外,置换模块还可以实现算术移位运算。
置换模块的基本设计方法是:每位输出来自于一个多路选通器,每个多路选通器可以选择任何一个输入作为输出,而且每个多路选通器的控制信号是相互独立的,因此通过控制每个多路选通器的控制信号可以实现任意的位置变换关系。多路选通器的控制信号保存在一个配置寄存器中,该配置寄存器的值可由指令改写,从而就可以改变置换单元所实现的选择变换。
步骤②的置换单元可以是8×8、16×16、32×32、64×64、128×128类型中之一种。
亦即可重构密码逻辑电路中的置换单元可以有8×8、16×16、32×32、64×64、128×128等多种类型。它们能够实现输入变量到输出变量的任意置换关系,包括一对一置换、扩展置换、收缩置换、循环左移、循环右移等。
32×32置换模块能够实现输入数≤16、输出数≤16的任意的置换,包括一一对应置换、扩展置换、压缩置换、字长≤32的循环移位、算术移位。
64×64置换模块能够实现输入数≤64、输出数≤64的任意的置换,包括一一对应置换、扩展置换、压缩置换、字长≤64的循环移位、算术移位。
128×128置换模块能够实现输入数≤128、输出数≤128的任意的置换,包括一一对应置换、扩展置换、压缩置换、字长≤128的循环移位、算术移位。
本发明的任务就是这样完成的。
本发明是可重构密码协处理器中的一个核心功能模块,由于它能够灵活地实现输入变量到输出变量的所有的选择变换,因此对可重构密码协处理器实现不同的密码算法提供了强有力的支持。它能根据不同密码算法的需求,灵活改变逻辑结构和功能,实现不同的选择变换。可广泛应用于信息加密领域的可重构密码协处理器中。
附图说明
图1为可重构密码协处理器的方框图。
图2为实施例1的128×128置换单元的电路图。
图3为实施例2的32×32可重构置换模块的方框图。
图4为实施例3的64×64可重构置换模块的方框图。
图5为32×32可重构置换模块的信号定义。
图6为64×64可重构置换模块的信号定义。
具体实施方式
实施例1。一种可重构密码协处理器的可重构置换模块的设计方法,如图2所示。它能够实现n位输入、m位输出的所有的选择变换,n、m均为自然数。它包括以下步骤:
①设计配置文件寄存器,它以CONT、CLK、RST、E0、E1...为输入端,以CR[m[log2n]-1:0]为输出端,用于保存置换单元中的可控节点的控制编码,该配置文件寄存器可由指令改写;
②设计n×m置换单元,它以CR[m[log2n]-1:0]、D[(n-1):0]为输入端,以Q[(m-1):0]为输出端,用于实现输入数据到输出数据的选择变换。
步骤②的置换单元包括m个n位的多路选通器和与每个多路选通器的输出端连接的m位锁存器,其每位输出来自于一个多路选通器,每个多路选通器可以选择任何一个输入作为输出,而且每个多路选通器的控制信号是相互独立的,因此通过控制每个多路选通器的控制信号可以实现任意的位置变换关系。
实施例2。一种可重构密码协处理器的可重构置换模块的设计方法,如图3所示。这是一种32×32可重构置换模块,其信号定义见图5。
32×32置换模块用于实现32位输入到32位输出之间的任意的置换关系,即32位输出数据的任何一位可以选择32位输入数据中的任何一位。具体说,32×32置换模块能够实现3种操作:配置文件寄存器复位操作、写配置文件寄存器操作、置换操作,分别描述如下:
(1)配置文件寄存器复位操作:
在时钟上升沿到达时若RST=1,则将配置文件寄存器CONTREG的值CR[159:0]全部置为0,即配置文件寄存器复位操作与时钟CLK同步。
(2)写配置文件寄存器操作:
在时钟上升沿到达时若E0=1,将配置数据CONT[79:0]写到配置文件寄存器CONTREG的第79至0位(即CR[79:0])中去;在时钟上升沿到达时若E1=1,将配置数据CONT[79:0]写到配置文件寄存器CONTREG的第159至80位(即CR[159:80])中去。即写配置文件寄存器操作与时钟CLK信号同步。
(3)置换操作:
在配置文件寄存器CONTREG的输出CR[159:0]的控制下,将32位的输入D[31:0]置换为32位的输出Q[31:0],详细的控制关系如下:
CR[5I+4:5I](0≤I≤31)控制Q[I](0≤I≤31)的选择,当CR[5I+4:5I]=J(0≤J≤31)时,Q[I]=D[J]。
实施例3。一种可重构密码协处理器的可重构置换模块的设计方法,如图2所示。这是一种64×64可重构置换模块,其信号定义见图6。
64×64置换模块用于实现64位输入到64位输出之间的任意的置换关系,即64位输出数据的任何一位可以选择64位输入数据中的任何一位。具体说,64×64置换模块能够实现3种操作:配置文件寄存器复位操作、写配置文件寄存器操作、置换操作,分别描述如下:
(1)配置文件寄存器复位操作:
在时钟上升沿到达时若RST=1,则将配置文件寄存器CONTREG的值CR[383:0]全部置为0,即配置文件寄存器复位操作与时钟CLK同步。
(2)写配置文件寄存器操作:
在时钟上升沿到达时若E0=1,将配置数据CONT[95:0]写到配置文件寄存器CONTREG的第95至0位(即CR[95:0])中去;在时钟上升沿到达时若E1=1,将配置数据CONT[95:0]写到配置文件寄存器CONTREG的第191至96位(即CR[191:96])中去;在时钟上升沿到达时若E2=1,将配置数据CONT[95:0]写到配置文件寄存器CONTREG的第287至192位(即CR[287:192])中去,在时钟上升沿到达时若E3=1,将配置数据CONT[95:0]写到配置文件寄存器CONTREG的第383至288位(即CR[383:288])中去。写配置文件寄存器操作与时钟CLK信号同步。
(3)置换操作:
在配置文件寄存器CONTREG的输出CR[383:0]的控制下,将64位的输入D[63:0]置换为64位的输出Q[63:0],详细的控制关系如下:
CR[6I+5:6I](0≤I≤63)控制Q[I](0≤I≤63)的选择,当CR[6I+5:6I]=J(0≤J≤63)时,Q[I]=D[J]。
实施例1~实施例3能根据不同密码算法的需求,灵活改变逻辑结构和功能,实现不同的选择变换。它可广泛应用于信息加密领域的可重构密码协处理器中。
Claims (3)
1.一种可重构密码协处理器的可重构置换模块,其特征在于:包括配置文件寄存器和置换单元,所述配置文件寄存器保存可控节点的控制编码,生成控制信号输出给所述的置换单元;在所述置换单元中包括m个n位多路选通器,其中,m等于置换后要求输出的数据位数,n等于输入数据的位数,每一个多路选通器的n位输入端分别与输入数据的相应位对应连接;所述配置文件寄存器输出的控制信号包括m个,每个控制信号包括log2n位编码数据,m个控制信号与所述的m个多路选通器的选通控制端一一对应连接,所述多路选通器根据其选通控制端接收到的编码数据选择其相应输入端的数据输出;所述多路选通器的输出端连接一m位锁存器的输入端,所述锁存器的时钟端接收时钟控制信号,其输出端即为所述可重构置换模块的数据输出端。
2.根据权利要求1所述的可重构密码协处理器的可重构置换模块,其特征在于:所述配置文件寄存器的输入端接收外部配置数据,并根据输入的配置数据改写其内部控制编码。
3.根据权利要求1所述的可重构密码协处理器的可重构置换模块,其特征在于:所述m和n均为自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100235431A CN100353702C (zh) | 2004-01-20 | 2004-01-20 | 可重构密码协处理器的可重构置换模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100235431A CN100353702C (zh) | 2004-01-20 | 2004-01-20 | 可重构密码协处理器的可重构置换模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1558588A CN1558588A (zh) | 2004-12-29 |
CN100353702C true CN100353702C (zh) | 2007-12-05 |
Family
ID=34352174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100235431A Expired - Fee Related CN100353702C (zh) | 2004-01-20 | 2004-01-20 | 可重构密码协处理器的可重构置换模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100353702C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169866B (zh) * | 2006-10-26 | 2010-09-01 | 朱明程 | 自重构片上多媒体处理系统及其自重构实现方法 |
CN102737007B (zh) * | 2011-04-07 | 2015-01-28 | 中兴通讯股份有限公司 | 一种支持多个数据单元任意置换的方法和装置 |
CN103297223B (zh) * | 2013-05-07 | 2017-06-06 | 北京航空航天大学 | 基于动态可重构的自恢复容错aes装置及其加密方法 |
CN109857368B (zh) * | 2018-12-20 | 2022-07-26 | 上海大学 | 一种位数众多、可分组、可重构的多值电子运算器及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002069135A1 (en) * | 2001-02-21 | 2002-09-06 | Mips Technologies, Inc. | Partial bitwise permutations |
US6557096B1 (en) * | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
-
2004
- 2004-01-20 CN CNB2004100235431A patent/CN100353702C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6557096B1 (en) * | 1999-10-25 | 2003-04-29 | Intel Corporation | Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types |
WO2002069135A1 (en) * | 2001-02-21 | 2002-09-06 | Mips Technologies, Inc. | Partial bitwise permutations |
Non-Patent Citations (1)
Title |
---|
可重构密协处理器的组成与结构 曲英杰.计算机工程与应用,第23期 2003 * |
Also Published As
Publication number | Publication date |
---|---|
CN1558588A (zh) | 2004-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7221763B2 (en) | High throughput AES architecture | |
US9418246B2 (en) | Decryption systems and related methods for on-the-fly decryption within integrated circuits | |
CN106487497B (zh) | 对rijndael算法的dpa保护 | |
CN101149709A (zh) | 存储卡的加密处理器和使用其进行数据读写的方法 | |
CN103299576A (zh) | 比特生成装置以及比特生成方法 | |
SE1350203A1 (sv) | Anordning och förfarande för blockkrypteringsprocess för osäkra miljöer | |
WO2007060587A1 (en) | Mutli-lane high-speed encryption and decryption | |
US10536264B2 (en) | Efficient cryptographically secure control flow integrity protection | |
CN109379180B (zh) | Aes算法实现方法、装置及固态硬盘 | |
CN101431405A (zh) | Des加密电路和方法及其硬件电路实现方法 | |
CN100353702C (zh) | 可重构密码协处理器的可重构置换模块 | |
Plos et al. | Compact hardware implementations of the block ciphers mCrypton, NOEKEON, and SEA | |
CN105354008A (zh) | 一种随机数生成器的输出电路及输出方法 | |
JP4589327B2 (ja) | 電子素子及びデータ処理方法 | |
KR20040038777A (ko) | 데이터 암호화 방법 | |
CN100353703C (zh) | 可重构线性反馈移位寄存器 | |
CN101562521B (zh) | 一种密钥更新方法 | |
WO2009034393A1 (en) | Aes-encryption apparatus and method | |
Sreekanth et al. | Implementation of area-efficient AES using FPGA for IOT applications | |
CN108763982A (zh) | 一种适用于rfid阅读器的des加密解密装置 | |
RU82890U1 (ru) | Устройство криптографической защиты информации | |
CN1558587A (zh) | 可重构密码协处理器的可重构s盒模块的设计方法 | |
CN100405758C (zh) | 可重构密码协处理器的移位模块 | |
KR20060014420A (ko) | 암호화/암호 해독용 장치, 메모리 요구량 감소 방법 및컴퓨터 프로그램 제품 | |
RU2736704C1 (ru) | Счетчик групповой структуры с сохранением количества единиц в группах |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071205 Termination date: 20130120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |