CN100382485C - 设计最优加密函数的方法和优化的加密设备 - Google Patents
设计最优加密函数的方法和优化的加密设备 Download PDFInfo
- Publication number
- CN100382485C CN100382485C CNB2004100283308A CN200410028330A CN100382485C CN 100382485 C CN100382485 C CN 100382485C CN B2004100283308 A CNB2004100283308 A CN B2004100283308A CN 200410028330 A CN200410028330 A CN 200410028330A CN 100382485 C CN100382485 C CN 100382485C
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- length
- sub
- controller
- plaintext
- 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
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/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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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
- H04L2209/122—Hardware reduction or efficient architectures
-
- 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/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种设计最优加密算法和优化的加密设备。该加密设备中,在控制器的控制下,一个函数块通过用从一个密钥调度器产生的一个长度为4n的加密码加密长度为2n的第一明文,产生一个长度为2n的第一密文,并通过用一个长度为m的第二明文加密第一密文,产生一个长度为m的第二密文。一个存储器存储该第二密文。
Description
技术领域
本发明涉及移动通信系统,特别是涉及一种在移动通信系统中设计用于硬件实施的最优加密函数的方法以及优化的加密设备。
背景技术
随着第一模拟通信系统发展为随后的数字通信系统,移动用户期望稳定、高速的数据传输。因此,服务的提供者做出努力,通过提出更可靠、更先进的加密方法来满足使用者的需求。第三代通信系统,是一个为高度复杂的基于信息社会提供多媒体服务(包括声音和视频数据)的系统,它需要确保多媒体信号的机密,安全和可靠的加密算法的标准化。11个加密算法的使用,考虑了在通用移动通信系统(UMTS)中的实施f0到f10。UMTS是由第三代通信合作计划(3GPP)提出的基于全球移动通信系统(GSM)的核心网络的第三代系统。在这些密码算法中,3GPP机密性算法f8和3GPP完整性算法f9已经被标准化了。这两个算法基于KASUMI,即由日本三菱电子公司(Mitsubishi Electronic Corporation)开发的MISTY1密码算法的改进型。
KASUMI是一个Feistel区块密码(Feistel block cipher),它通过对输入的64-bit的明文进行8次操作,输出一个64-bit密文。明文是指未加密的明码电文消息,密文是指经过加密算法和密钥加密的确保机密性的报文。
图1是传统KASUMI硬件的方框图。参照图1,KASUMI加密块包括:多个多路复用器(MUX1、MUX2和MUX3)101、103及107;多路信号分离器(DEMUX)109;寄存器(寄存器A1和寄存器A2)102及104;多个函数块(FL1、FL2及FO)106、110和108;控制器100,用来控制KASUMI加密块的各个部件;以及提供密码密钥的密钥调度器105。
输入的一个64-bit的明文被分为两个32-bit的字符串L0和R0,它们被分别施加到多路复用器MUX1 101和MUX2 103的输入端。在控制器100的控制下,多路复用器MUX1 101输出32-bit的字符串L0给寄存器A1 102,多路复用器MUX2 103输出32-bit的字符串R0给寄存器A2 104。寄存器A1 102和寄存器A2 104临时地存储32-bit的字符串L0和R0,当接收到控制器100的控制信号时,就将它们输出。
KASUMI加密块根据它是奇数次还是偶数次操作来采用不同的加密通路。如果是奇数次,FL1块106用从密钥调度器105接收到的第一密钥KLi,1和KLi,2对从寄存器A1 102接收到的比特字符串L0进行加密,并向MUX3 107输出密文L01。根据来自控制器100的控制信号,MUX3 107将密文L01输出到FO块108。在控制器100的控制下,FO块108用从密钥调度器105接收的第二密钥KIi,j和第三密钥KOi,j对32-bit的字符串L01进行加密,并向DMUX109输出密文L02。在控制器100的控制下,DMUX 109输出32-bit的字符串L02。比特字符串L02与来自寄存器A2 104的比特字符串R0进行异或运算(exclusive-OR),得到密文R1。信号R1再反馈到MUX2 103。
如果是偶数次,在控制器100的控制下,MUX3 107将从寄存器A2 104接收的32-bit的字符串R0传输给FO块108。在控制器100的控制下,FO块108用从密钥调度器105接收到的第二和第三密钥KIi,j和KOi,j加密32-bit字符串R0,并向DEMUX 109输出密文R01。在控制器100的控制下,DMUX 109向FL2块110输出32-bit字符串R01。FL2块110用从密钥调度器105接收的第一密钥KLi,j对比特字符串R01进行加密,并输出密文R02。比特字符串R02与来自寄存器A1 102的比特字符串L0进行异或运算,得到密文L1。信号L1再反馈到MUX1 101。随着次数的增加,密钥KLi,j,KIi,j和KOi,j中的i和j也在增加。
在传统的KASUMI加密中,两个函数块FL 106和110执行相同的加密功能。函数块的过多的使用,降低了设备的用户效率,增加了功率的消耗。
图2描述了在传统的KASUMI计算中的3GPP加密函数f8。参照图2,加密函数f8在输入存储器270中存储一个待发送的明文。通过对明文重复进行KASUMI计算,就得到了密文,并将其存储到输出存储器280中。在控制器200的控制下,寄存器C 220临时地存储64-bit输入数据。BLKCNT表示块计数器,用于处理输入的64-bit数据,CK表示一个128-bit的密钥,KM表示密钥修改量,它是一个128-bit的常量。每个KASUMI可以加密最多5114比特,相当于80次。控制器200通过控制信号来控制输入和输出存储器260及280。控制器信号包括一个地址信号,用于给存储器260和280分配地址;一个使能/废能信号,用于使存储器处于使能/废能状态;一个读/写信号,用于读/写存储的数据或密文;以及一个数据信号用于在一个已分配的地址中存储一个数据单元。这样,存储器260和280就能在已分配的地址中存储或从已分配的地址输出数据单元。
KASUMI加密块230用128-bit CK和128-bit KM的异或(CK□KM)来加密输入的初始的64-bit字符串,并输出一个初始的密文K00。寄存器C 220临时地存储信号K00,并在加密块控制器(未示出)的控制下将其输出。信号K00与块计数值0(BLKCNT 0)进行异或运算,并将运算结果施加到KASUMI加密块230的输入端。KASUMI加密块230用CK加密接收到的信号,并输出一个密文K01。同时,控制器200从输入存储器270的第一地址中读取一个明文D1。信号K01和D1进行异或运算得到密文K1。在控制器200的控制下,输出存储器280在它的第一地址中存储最终的密文K1。函数f8根据明文的长度来重复该加密过程。
如上所述的f8函数,控制器200从输入存储器270的每个地址中读取一个明文,用KASUMI加密块的输出信号对读取的明文进行加密,并在输出存储器280中存储密文结果。输入、输出存储器的分开使用导致f8函数硬件实施效率低,增加了功率的消耗。
发明内容
因此,本发明的第一个目的是提供一种加密设备,用于把一个长度为2nbit的输入明文比特字符串分成长度为n的第一和第二子比特字符串,并在对它们进行加密后,输出一个长度为2n的密文比特字符串。
本发明的另一个目的是提供一种加密方法,用于把一个长度为2n bit的输入明文比特字符串分成长度为n的第一和第二子比特字符串,并在对它们进行加密后,输出一个长度为2n的密文比特字符串。
本发明的另一个目的是提供一种加密设备,用于在第一加密过程中对长度为2n的明文比特字符串进行加密,输出长度为n的第一密文比特字符串,并在第二加密过程中通过对长度为2m的第二明文比特字符串进行加密,输出一个长度为m的第二密文比特字符串。
本发明的另一个目的是提供一种加密设备,用于在第一加密过程中对长度为2n的明文比特字符串进行加密,输出长度为n的第一密文比特字符串,并在第二加密过程中通过对长度为2m的第二明文比特字符串进行加密,输出一个长度为m的第二密文比特字符串。
根据本发明的一个方面,一种加密设备,用于将一个长度为2n的明文分为长度为n的第一和第二子比特字符串,并且通过加密第一和第二子比特字符串,产生一个长度为2n的密文,第一函数块通过使用第一加密码KL1,1和KL1,2对第一子比特字符串进行加密产生一个长度为n的第一密文,或通过用第一加密码KL1,1和KL1,2对第二子比特字符串进行加密产生一个长度为n的第三密文。第二函数块通过用第二加密码KO1,1,KO1,2和KO1,3对第一密文进行加密产生一个长度为n的第四密文,或通过用第二加密码KO1,1,KO1,2和KO1,3以及第三加密码KI1,1,KI1,2和KI1,3对第一子比特字符串进行加密产生第二密文。一个密钥调度器为第一和第二函数块提供第一加密码KL1,1和KL1,2,第二加密码KO1,1,KO1,2和KO1,3,以及第三加密码KI1,1,KI1,2,KI1,3。这些加密码的长度均为n。一个控制器控制多个多路复用器,它们将第一子比特字符串输入到第一或第二函数块,并且控制第一和第二函数块用第一加密码KL1,1和KL1,2,第二加密码KO1,1,KO1,2和KO1,3以及第三加密码KI1,1,KI1,2,KI1,3加密所接收到的子比特字符串。
根据本发明的另一方面,一种加密方法,用于将一个长度为2n的明文分为长度为n的第一和第二子比特字符串,并通过加密第一和第二子比特字符串产生一个长度为2n的密文,通过用第一加密码KL1,1和KL1,2对第一子比特字符串进行加密产生长度为n的第一密文。通过用第二加密码KO1,1,KO1,2和KO1,3以及第三加密码KI1,1,KI1,2和KI1,3加密第一密文产生长度为n的第四密文。通过对第四密文与第二子比特字符串进行异或运算产生第五密文。通过用第二加密码KO1,1,KO1,2和KO1,3以及第三加密码KI1,1,KI1,2和KI1,3对第一子比特字符串进行加密产生长度为n的第二密文。通过用第一加密码KL1,1和KL1,2对第二密文进行加密产生长度为n的第三密文。通过对第三密文及第二子比特字符串进行异或运算产生第六密文。
根据本发明的另一方面,一种加密设备,函数块在控制器的控制下通过用一个从密钥调度器产生的长度为4n的加密码对长度为2n的第一明文进行加密产生一个长度为2n的第一密文,并通过用一个长度为m的第二明文对第一密文进行加密产生一个长度为m的第二密文。密钥调度器产生加密码。在控制器的控制下,存储器输出第二明文和存储第二密文。控制器从存储器中读取第二明文,并在存储器中存储第二密文。
根据本发明的另一方面,一种加密方法,通过用长度为4n的加密码对长度为2n的第一明文进行加密产生长度为2n的第一密文。然后通过用长度为m的第二明文对第一密文进行加密产生长度为m的第二密文,并且将其存储在存储器中。
附图说明
结合附图,从以下的详细描述中,本发明实施例的上述和其它目的、特征、优点将会变的更明显。
图1是一个传统的KASUMI硬件的方框图;
图2说明了一个使用传统的KASUMI操作的传统加密算法;
图3说明了一个应用了本发明的一个实施例的KASUMI加密算法;
图4说明了图3中所示FL函数块的细节结构;
图5说明了图3中所示FO函数块的细节结构;
图6说明了图5所示的FI子函数块的细节结构;
图7是根据本发明的一个实施例的KASUMI硬件方框图;
图8说明了根据本发明的一个实施例的应用KASUMI操作的一种传统加密算法。
具体实施方式
在这里,参照相关附图,本发明的各种实施例均将被详细描述。在下面的叙述中,为避免不必要的细节混淆本发明,对于一些公知的函数或结构不再做详细描述。
图3说明了一个应用了本发明的KASUMI加密算法。参照图3,KASUMI加密算法是一个通过8次操作从输入的64-bit明文输出一个64-bit密文的Feistel块密码。Feistel结构是指一个加密系统,它将输入的2n-bit的字符串分成2个n-bit的字符串L0和R0,并将它们在各自的函数块中进行m次加密/解密操作。因为在Feistel结构中,经过2次操作,即可获得全扩散,因此使快速加密成为可能。具体的讲,KASUMI加密块将输入的64-bit的明文分为2个32-bit的字符串L0和R0,并通过在FLi和FOi(1≤i≤8)函数块中用密钥调度器(未示出)产生的密钥KIi(1≤i≤8),KLi(1≤i≤8)和KOi(1≤i≤8)对它们进行加密,输出一个64-bit的密文。
对于奇数次操作,FL1函数块310用第一密钥KL1对32-bit字符串L0进行加密并输出密文L01。 FO1函数块410用第二密钥KO1和第三密钥KI1对比特字符串L01进行加密,然后输出一个32-bit字符串L02。信号L02与32-bit的字符串R0进行异或运算,产生一个密文R1。
对于偶数次操作(比如第2次操作),FO2函数块420用第二密钥KO2和第三密钥KI2加密32-bit字符串R1(=L1),并输出一个密文L11。FL2函数块320用第一密钥KL2加密比特字符串L11,并输出一个密文L12。信号L12与初始输入的字符串L0进行异或运算,得到密文R2。如图3所示,用同样的方式,使用适当的函数块及密钥,执行剩余次的操作。在这种方式下,在进行8次操作后,KASUMI从输入的64-bit明文产生一个64-bit密文。
图4说明了图3所示的FL函数块的细节结构。参照图4,以FL1函数块310为例。FL1函数块310包括多个与门301,移位寄存器302和304,和一个或门303。一个32-bit输入字符串被分为两个16-bit字符串L0和R0。与门301对16-bit字符串L0和一个16-bit子密钥KL1,1进行与运算,并输出一个16-bit字符串AL1。移位寄存器302将信号AL1向左移位一个bit,并输出一个字符串SAL1。16-bit字符串SAL1和R0进行异或运算,得到子密文R1。或门303对信号R1和子密钥KL1,2进行或操作,并输出一个16-bit字符串OR1。移位寄存器304将信号OR1向左移位一个bit,并输出信号SOR1。信号SOR1与L0进行异或运算,得到子密文L1。因此,FL1函数块310通过子密文R1和L1,就产生了一个32-bit密文L1//R1(=L01如图3中)。
图5说明了图3所示的FO函数块的细节结构。参照图5,以FO1函数块410为例,FO1函数块410包括多个FIi,j子函数块(1≤i≤3,1≤j≤3)。图3中的32-bit输入字符串L01被分为两个16-bit字符串L0和R0。对于第一次操作,通过对16-bit字符串L0和16-bit子密钥KO1,1进行异或运算,产生信号L1。FI1,1子函数块401用16-bit子密钥KI1,1加密信号L1并输出信号L1D。同时,为了与信号L1D的输出时间同步,延迟器(D1)411延迟信号R0(=R1),并输出延迟的信号R1D。
对于第二次操作,通过对16-bit字符串R1D和16-bit子密钥KO1,2进行异或运算,产生信号L2。FI1,2子函数块403用16-bit子密钥KI1,2加密信号L2并输出信号L2D。同时,通过对信号R1D与L1D进行异或运算,产生信号R2。为了与信号L2D的输出时间同步,延迟器(D2)412延迟信号R2,并输出延迟的信号R2D。
对于第三次操作,通过对16-bit字符串R2D和16-bit子密钥KO1,3进行异或运算,产生信号L3。FI1,3子函数块405用16-bit子密钥KI1,3加密信号L3并输出信号L3D。同时,对信号R2D与L2D进行异或运算,产生信号R3。为了与信号L3D的输出时间同步,延迟器(D3)413延迟信号R3,并输出延迟的信号R3D。将信号L3D与R3D进行异或运算,产生信号R4。从16-bit字符串R4和R3D(=L4)产生最终的32-bit密文L4//R4(=L02如图3中)。
图6说明了图5所示的FI子函数块的细节结构。以FI1,1子函数块为例做说明。
参照图6,一个16-bit输入信号(图5中所示的L1)被分为一个9-bit的字符串RL0和一个7-bit的字符串RR0。SBox91(S91)操作器610根据下列等式从输入信号RL0产生9-bit的字符串y0,y1,...,y8。
y0=x0x2x3x2x5x5x6x0x7x1x7x2x7x4x8x5x8x7x81
y1=x1x0x1x2x3x0x4x1x4x0x5x3x5x6x1x7x2x7x5x81
y2=x1x0x3x3x4x0x5x2x6x3x6x5x6x4x7x5x7x6x7x8x0x81
y3=x0x1x2x0x3x2x4x5x0x6x1x6x4x7x0x8x1x8x7x8
y4=x0x1x1x3x4x0x5x3x6x0x7x6x7x1x8x2x8x3x8
y5=x2x1x4x4x5x0x6x1x6x3x7x4x7x6x7x5x8x6x8x7x81
y6=x0x2x3x1x5x2x5x4x5x3x6x4x6x5x6x7x1x8x3x8x5x8x7x8
y7=x0x1x0x2x1x2x3x0x3x2x3x4x5x2x6x3x6x2x7x5x7x81
y8=x0x1x2x1x2x3x4x1x5x2x5x1x6x4x6x7x2x8x3x8
……(1)
ZE1单元620接收到信号RR0,在信号RR0的MSB(最高有效位)加两个零,并输出一个9-bit的字符串。将S91操作器610的输出与ZE1单元620的输出进行异或运算,得到一个9-bit的字符串RL1。将信号RL1与9-bit的子密钥KI1,1,2进行异或运算,得到一个9-bit的字符串RL2。
TR1单元630从9-bit字符串RL1的MSB除去两个零。SBox71(S71)操作器640根据下列等式从输入信号RR0(=RR1)产生7-bit的字符串y0,y1,...,y6。
y0=x1x3x4x0x1x4x5x2x5x3x4x5x6x0x6x1x6x3x6x2x4x6x1x5x6
x4x5x6
y1=x0x1x0x4x2x4x5x1x2x5x0x3x5x6x0x2x6x3x6x4x5x61
y2=x0x0x3x2x3x1x2x4x0x3x4x1x5x0x2x5x0x6x0x1x6x2x6x4x61
y3=x1x0x1x2x1x4x3x4x0x5x0x1x5x2x3x5x1x4x5x2x6x1x3x6
y4=x0x2x3x1x3x1x4x0x1x4x2x3x4x0x5x1x3x5x0x4x5x1x6x3x6
x0x3x6x5x61
y5=x2x0x2x0x3x1x2x3x0x2x4x0x5x2x5x4x5x1x6x1x2x6x0x3x6
x3x4x6x2x5x61
y6=x1x2x0x1x3x0x4x1x5x3x5x6x0x1x6x2x3x6x1x4x6x0x5x6
……(2)
TR1 630和S71操作器640的输出与子密钥KI1,1,1进行异或运算,得到一个7-bit的字符串RR2。
SBox92(S92)操作器650根据等式(1)从信号RL2产生9-bit的字符串y0,y1,...,y8。ZE2单元660接收到信号RR1,在信号RR1的MSB加两个零,然后输出一个9-bit的字符串。将S92操作器650的输出与ZE2单元660的输出进行异或运算,得到一个9-bit的字符串RL3。TR2单元670从9-bit的字符串RL3的MSB除去两个零。SBox72(S72)操作器680根据等式(2)从输入信号RR2(=RR3)产生7-bit的字符串y0,y1,...,y6。TR2 670的输出和S72操作器680的输出进行异或运算,得到一个7-bit的字符串RR4。
从9-bit字符串RL3(=RL4)和7-bit的字符串RR4产生最终的16-bit密文RL4//RR4。
附图7是根据本发明的KASUMI硬件方框图。参照图7,KASUMI加密块包括多个多路复用器(MUX1到MUX5)701、703、706、708和710,寄存器(寄存器B1和寄存器B2)702及704,多个函数块(FL及FO)707和709,用来控制KASUMI加密块的部件的控制器700,提供密钥的密钥调度器711。控制器700通过控制MUX 701,703,706,708和710为奇数次和偶数次操作采用不同的加密通路。
对于奇数次,一个64-bit的明文输入信号被分成两个32-bit的字符串L0和R0,它们被分别施加到MUX 1 701和MUX 2 703的输入端。在控制器700的控制下,MUX1 701输出32-bit的字符串L0给寄存器B1,MUX2 703输出32-bit的字符串R0给寄存器B2。寄存器B1 702和寄存器B2 704暂时存储32-bit的字符串L0和R0,当从控制器700接收到控制信号时,就将它们输出。控制器700控制MUX 706,708和710采用如实线所指示的“零路径”。MUX3706经由零路径向FL函数块707输出信号L0。FL函数块707用从密钥调度器711接收的第一奇数密钥KLi,j(0≤i≤8,0≤j≤2)对比特字符串L0进行加密,并向MUX4 708输出一个密文L01。MUX4 708经由零路径向FO函数块709输出信号L01。FO函数块709用从密钥调度器711接收的第二奇数密钥KLi,j和第三奇数密钥KOi,j(0≤i≤8,0≤j≤3)对字符串L01进行加密,并向MUX5 710输出一个密文L02。MUX5 710经由零路径输出信号L02。通过对信号L02与从寄存器B2 704接收的信号R0进行异或运算,产生密文R1(=L1),然后再反馈到MUX1 701。
对于偶数次,32-bit字符串R1和L0被分别加到MUX1 701和MUX2 703的输入端。在控制器700的控制下,MUX1 701输出32-bit的字符串R1给寄存器B1 702,MUX2 703输出32-bit的字符串L0给寄存器B2 704。寄存器B1 702和寄存器B2 704暂时存储32-bit的字符串R1和L0,当从控制器700接收到控制信号时,就将它们输出。控制器700控制MUX 706、708和710采用如虚线所指示的“一路径”。在控制器700的控制下,MUX4 708接收信号R1,然后经由该一路径向FO函数块708输出信号R1。FO函数块709用从密钥调度器711接收的第二偶数密钥KLi,j和第三偶数密钥KOi,j(0≤i≤8,0≤j≤3)对字符串R1进行加密,并向MUX3 706输出一个密文R11。MUX3706经由该一路径向FL函数块707输出信号R11。FL块707用从密钥调度器711接收到的第一奇数密钥KLi,j(0≤i≤8,0≤j≤2)对字符串R11进行加密,并向MUX5 710输出一个密文R12。MUX5 710经由该一路径输出信号R12。通过对信号R12与从寄存器B2 704接收的信号L0进行异或运算,产生密文R2(=L2),然后再反馈到MUX1 701。
正如上文描述的,对于奇数次操作,控制器700控制MUX 706、708和710采用“零路径”。这样,一个32-bit输入字符串先在FL函数块707中用第一奇数密钥KLi,j进行加密,接着再在FO函数块709中用第二奇数(off-numbered)密钥KLi,j及第三奇数(off-numbered)密钥KOi,j来加密。对于偶数次,控制器700控制MUX706、708和710采用“一路径”。这样,一个32-bit输入字符串先使用第二偶数(off-numbered)密钥KLi,j及第三偶数(off-numbered)KOi,j进行加密,再在FL函数块707中用第一奇数密钥KLi,j来加密。
在硬件中使用单个的FL函数块707和单个的FO函数块709的KASUMI实施与传统的KASUMI实施相比,可以得到相同的效果,但却减少了所用的部件数量和功率消耗。
图8描述了根据本发明的一个实施例的采用KASUMI算法的3GPP机密性函数f8。来自存储器870的一个明文,使用多个KASUMI加密块进行多次加密操作,并在相同的存储器870中存储最终的密文。
机密性f8算法是一种用于可加密5114比特的块密码,也就是说,进行80次KASUMI操作。KASUMI加密操作的次数根据明文的长度而变化,并且由块计算器(BLKCNT)计算。示出多个KASUMI加密块的目的是为了说明来自一个KASUMI加密块的密文的反馈以及将密文作为明文多次进行再加密。CK表示从一个密钥调度器(未示出)产生的一个128-bit密钥,KM表示一个密钥修改量,它是一个128-bit的常量。控制器800利用控制信号控制存储器870。控制信号包括:一个用于分配明文地址的地址信号;一个使能/废能信号,用于控制存储器870使其处于使能/废能状态;一个读/写信号,用于读/写存储的数据或在存储器870存入/读出的密文;一个数据信号,用于在存储器870的已分配的地址中存储一个数据单元。
KASUMI加密块810利用从密钥调度器接收的一个128-bit的CK与128-bit的KM相异或(CKKM)的结果来加密输入的初始64-bit字符串,并输出一个初始密文K00。寄存器D 820临时存储信号K00,并且在一个加密块控制器(未示出)的控制下,将其输出。这就是KASUMI加密的最初操作。
对于第一次KASUMI加密,信号K00与一个块计数值0(BLKCNT 0)进行异或运算,并将结果施加到KASUMI加密块830的输入端。KASUMI加密块830用CK加密接收到的信号并输出的范围从0bit到63bit的64-bit密文K01。控制器800从存储器870的第一地址中读取一个明文D1。信号K01与D1进行异或运算,得到密文K1。存储器870在控制器800的控制下在分配给明文D1的地址1,也就是说,在第一地址存储第一密文K。
对于第二次KASUMI加密,通过对信号K00与块计数值1(BLKCNT 1)进行异或运算,得到一个信号K10,然后与从KASUMI加密块830接收的信号K01进行异或运算,最后得到信号K11。KASUMI加密块840用CK加密信号K11并输出的范围从64bit到127bit的64-bit密文K02。控制器800从存储器870的第二地址中读取一个明文D2。信号K02和D2进行异或运算,得到密文K2。存储器870在控制器800的控制下在分配给明文D2的地址,也就是说,在第二地址存储第二密文K2。
函数f8中,块计数和KASUMI加密操作的次数是由明文的长度决定的。通过共享存储器870用于读取明文和存储密文,控制器800从存储器870的一个地址中读取明文,并且在存储器870的相同地址中存储一个密文。
根据本发明的某些实施例,在硬件上使用更少的设备及共享一个存储器来读取明文及存储密文,就可以实现加密算法。因此,加密设备的整个功率消耗就被降低了。
尽管本发明的多种实施例均被示出,并且还对前面某些实施例进行了详细的描述,但本领域的技术人员很容易理解,在不离开本发明的精神和范围的情况下,正如后面的权利要求叙述的那样,可以在本发明的形式和细节上做各种变化。
Claims (10)
1.一种加密设备,用于通过首先加密一个长度为2n的第一明文产生一个长度为2n的第一密文,并其次通过用长度为m的第二明文加密第一密文产生一个长度为m的第二密文,它包括:
函数块,用于通过使用从密钥调度器产生的长度为4n的加密码加密长度为2n的第一明文,产生长度为2n的第一密文;
主控制器,用于从存储器的一个地址中读取长度为m的第二明文,异或处理第二明文和第一密文以产生长度为m的第二密文,并将该第二密文存储在所述存储器的所述地址中,
其中所述函数块包括第一函数块,用于通过使用第一加密码KL1,1和KL1,2加密第一子比特字符串,产生一个长度为n的第一密文,或通过使用第一加密码KL1,1和KL1,2加密一个第二密文,产生一个长度为n的第三密文,
第二函数块,用于通过使用第二加密码KO1,1、KO1,2和KO1,3及第三加密码KI1,1、KI1,2和KI1,3来加密第一密文,产生一个长度为n的第四密文,或通过使用第二加密码KO1,1、KO1,2和KO1,3及第三加密码KI1,1、KI1,2和KI1,3来加密第一子比特字符串,产生第二密文,密钥调度器,用于为第一子比特字符串、第一密文以及第二密文提供第一加密码KL1,1和KL1,2、第二加密码KO1,1、KO1,2和KO1,3以及第三加密码KI1,1、KI1,2和KI1,3,这些加密码的长度为n,以及函数块控制器,用于控制多个多路复用器,将第一子比特字符串传送给第一或第二函数块,并控制第一和第二函数块使用第一加密码KL1,1和KL1,2、第二加密码KO1,1、KO1,2和KO1,3以及第三加密码KI1,1、KI1,2和KI1,3加密接收到的子比特字符串。
2.权利要求1所述的加密设备,其中所述控制器通过给存储器施加控制信号来控制存储器从预定的地址输出长度为m的第二明文中的一个预定长度的第一子比特字符串,控制所述的函数块通过使用第一密文加密第一子比特字符串产生一个预定长度的第二子密文,并且控制存储器在预先地址存储第二子密文。
3.权利要求1所述的加密设备,其中所述的函数块根据存储于存储器中的第二明文的长度,重复长度为2n的第一密文的第一加密操作。
4.权利要求2所述的加密设备,其中所述控制器将一个读取信号施加到存储器,使存储器输出第一子比特字符串,控制所述的函数块通过使用第一密文加密第一子比特字符串产生第二子密文,并将一个写信号施加到存储器使其存储第二子密文。
5.权利要求4所述的加密设备,其中所述的存储器在控制器的控制下是一个用于读取和写入的缓冲器。
6.一种加密方法,用于首先通过加密长度为2n的第一明文产生一个长度为2n的第一密文,并且其次通过用长度为m的第二明文加密第一密文产生一个长度为m的第二密文,包括下列步骤:
由函数块通过使用从密钥调度器接收的长度为4n的一个加密码加密长度为2n的第一明文,产生长度为2n的第一密文;
由控制器从存储器的一个地址中读取长度为m的第二明文,通过异或处理第二明文和第一密文产生一个长度为m的第二密文,并将该第二密文存储在所述存储器的所述地址中,
其中所述产生第一密文的步骤为,相应于从控制器接收的控制信号,接收长度为n的第一子比特字符串,并在第一函数块中通过使用从密钥调度器接收的第一加密码KL1,1和KL1,2加密第一子比特字符串,产生一个长度为n的第一密文,或通过使用第一加密码KL1,1和KL1,2加密从第二函数块接收的第二密文,产生长度为n的第三密文,
其中所述产生第二密文的步骤为,相应于从控制器接收的控制信号,接收长度为n的第一密文,并通过使用从密钥调度器接收的第二加密码KO1,1、KO1,2和KO1,3以及第三加密码KI1,1、KI1,2和KI1,3加密第一密文,产生长度为n的第四密文,或通过使用第二加密码KO1,1、KO1,2和KO1,3以及第三加密码KI1,1、KI1,2和KI1,3加密第一子比特字符串产生长度为n的第二密文。
7.权利要求6所述的加密方法,其中所述的读取第二明文,产生第二密文,存储第二密文的步骤还包括下列步骤:
由控制器从存储器的预定的地址中,读取在长度为m的第二明文里的一个预定长度的第一子比特字符串;
由控制器通过其次使用第一密文加密第一子比特字符串,控制产生一个预定长度的第二子密文;
由控制器在预定的地址中存储第二子密文。
8.权利要求6所述的加密方法,其中所述产生第一密文的步骤中,函数块根据存储在存储器中的第二明文的长度,通过重复第一加密操作,产生第一密文。
9.权利要求7所述的加密方法,其中所述的读取第二明文,产生第二密文,并存储第二密文的步骤还包括下列步骤:
由控制器从存储器的预定地址读取在长度为m的第二明文里的一个预定长度的第一子比特字符串;
由控制器通过其次使用第一密文加密第一子比特字符串,产生一个预定长度的第二子密文;以及
由控制器通过给存储器施加一个写信号,在其预定地址中存储第二子密文。
10.权利要求9所述的加密方法,其中所述的存储器在控制器的控制下是一个用于读取和写入的缓冲器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR7202/03 | 2003-02-05 | ||
KR7202/2003 | 2003-02-05 | ||
KR10-2003-0007202A KR100516548B1 (ko) | 2003-02-05 | 2003-02-05 | 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1523810A CN1523810A (zh) | 2004-08-25 |
CN100382485C true CN100382485C (zh) | 2008-04-16 |
Family
ID=31987550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100283308A Expired - Fee Related CN100382485C (zh) | 2003-02-05 | 2004-02-05 | 设计最优加密函数的方法和优化的加密设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7447311B2 (zh) |
JP (1) | JP2004240427A (zh) |
KR (1) | KR100516548B1 (zh) |
CN (1) | CN100382485C (zh) |
GB (1) | GB2398213B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100423811B1 (ko) * | 2001-12-12 | 2004-03-22 | 한국전자통신연구원 | 카스미 암호화 알고리즘을 응용한 암호화 장치 |
US7636857B2 (en) * | 2004-05-24 | 2009-12-22 | Interdigital Technology Corporation | Data-mover controller with plural registers for supporting ciphering operations |
US7760874B2 (en) | 2004-07-14 | 2010-07-20 | Broadcom Corporation | Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets |
US7623658B2 (en) * | 2004-08-23 | 2009-11-24 | Broadcom Corporation | Method and system for implementing the A5/3 encryption algorithm for GSM and EDGE compliant handsets |
US7627115B2 (en) * | 2004-08-23 | 2009-12-01 | Broadcom Corporation | Method and system for implementing the GEA3 encryption algorithm for GPRS compliant handsets |
US7627113B2 (en) * | 2005-02-08 | 2009-12-01 | Broadcom Corporation | Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets |
US7869590B2 (en) * | 2005-04-12 | 2011-01-11 | Broadcom Corporation | Method and system for hardware accelerator for implementing f9 integrity algorithm in WCDMA compliant handsets |
US20100081484A1 (en) * | 2006-10-12 | 2010-04-01 | Hisateru Kobatake | Communication apparatus, semiconductor integrated circuit, and electronic device |
US8553876B1 (en) * | 2007-10-23 | 2013-10-08 | Oracle America, Inc. | High performance cryptography on chip multithreading processors |
EP2237246B1 (en) | 2008-01-18 | 2018-02-28 | Fujitsu Limited | Encrypting device, encrypting method and program |
EP2237245B1 (en) * | 2008-01-18 | 2017-07-19 | Fujitsu Limited | Processor of data conversion function |
JP5363573B2 (ja) * | 2008-08-15 | 2013-12-11 | エルエスアイ コーポレーション | ニア・コードワードのramリスト復号 |
JP5338327B2 (ja) * | 2009-01-16 | 2013-11-13 | 富士通株式会社 | 暗号処理装置 |
JP5387295B2 (ja) * | 2009-09-29 | 2014-01-15 | 富士通株式会社 | 暗号装置及び方法 |
US20110091035A1 (en) * | 2009-10-20 | 2011-04-21 | Sun Microsystems, Inc. | Hardware kasumi cypher with hybrid software interface |
US20170126399A1 (en) * | 2014-05-14 | 2017-05-04 | Mitsubishi Electric Corporation | Encryption apparatus, storage system, decryption apparatus, encryption method, decryption method, and computer readable medium |
CN105281915B (zh) * | 2015-11-04 | 2018-11-20 | 博宏信息技术有限公司 | 一种密码键盘生成密文的方法 |
CN108390875B (zh) * | 2018-02-13 | 2020-08-07 | 沈阳航空航天大学 | 一种减少传输能耗的信息加密优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246768B1 (en) * | 1998-05-06 | 2001-06-12 | Penta Security Systems, Inc. | Data encryption system for encrypting plaintext data |
WO2002098052A2 (en) * | 2001-05-31 | 2002-12-05 | Qualcomm Incorporated | Apparatus and method for performing kasumi ciphering |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3798359A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Block cipher cryptographic system |
US4195196A (en) * | 1973-10-15 | 1980-03-25 | International Business Machines Corporation | Variant key matrix cipher system |
US6189095B1 (en) * | 1998-06-05 | 2001-02-13 | International Business Machines Corporation | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks |
CN100431292C (zh) * | 2001-04-03 | 2008-11-05 | 三菱电机株式会社 | 加密、解码及无线通信装置 |
KR100423811B1 (ko) * | 2001-12-12 | 2004-03-22 | 한국전자통신연구원 | 카스미 암호화 알고리즘을 응용한 암호화 장치 |
US7796752B2 (en) * | 2002-11-04 | 2010-09-14 | Marvell International Ltd. | Cipher implementation |
-
2003
- 2003-02-05 KR KR10-2003-0007202A patent/KR100516548B1/ko not_active IP Right Cessation
-
2004
- 2004-02-03 GB GB0402313A patent/GB2398213B/en not_active Expired - Fee Related
- 2004-02-04 JP JP2004028523A patent/JP2004240427A/ja active Pending
- 2004-02-04 US US10/770,486 patent/US7447311B2/en active Active
- 2004-02-05 CN CNB2004100283308A patent/CN100382485C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246768B1 (en) * | 1998-05-06 | 2001-06-12 | Penta Security Systems, Inc. | Data encryption system for encrypting plaintext data |
WO2002098052A2 (en) * | 2001-05-31 | 2002-12-05 | Qualcomm Incorporated | Apparatus and method for performing kasumi ciphering |
Also Published As
Publication number | Publication date |
---|---|
KR20040070956A (ko) | 2004-08-11 |
GB2398213A (en) | 2004-08-11 |
GB2398213B (en) | 2005-12-14 |
KR100516548B1 (ko) | 2005-09-22 |
GB0402313D0 (en) | 2004-03-10 |
CN1523810A (zh) | 2004-08-25 |
JP2004240427A (ja) | 2004-08-26 |
US7447311B2 (en) | 2008-11-04 |
US20040156499A1 (en) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100382485C (zh) | 设计最优加密函数的方法和优化的加密设备 | |
AU2003213317B2 (en) | Block cipher apparatus using auxiliary transformation | |
EP0802653B1 (en) | Multi-cycle non-parallel data encryption engine | |
Karthigaikumar et al. | Simulation of image encryption using AES algorithm | |
KR20020016620A (ko) | 정보 암호화 방법 및 이 방법을 실현하는 장치 | |
JPH11509940A (ja) | データブロックおよび鍵を非線形的に結合する暗号方法および装置 | |
EP0802652A2 (en) | Data encryptor having a scalable clock | |
Joshy et al. | Text to image encryption technique using RGB substitution and AES | |
Vinotha et al. | VLSI implementation of image encryption using DNA cryptography | |
Kuang et al. | Quantum encryption and decryption in IBMQ systems using quantum permutation pad | |
US6301361B1 (en) | Encoding and decoding information using randomization with an alphabet of high dimensionality | |
CN107896149A (zh) | 基于三个群运算的128位对称加密方法 | |
JP2000209195A (ja) | 暗号通信システム | |
KR100456599B1 (ko) | 병렬 디이에스 구조를 갖는 암호 장치 | |
CN100393026C (zh) | 二进制数据块加密变换方法 | |
KR100362170B1 (ko) | 라운드 키 생성 및 암호처리용 암호화장치 | |
KR20160099864A (ko) | 블록암호 lea 의 암호화/복호화 장치 | |
KR100667189B1 (ko) | 휴대 기기를 위한 aes 암호화 장치 및 방법 | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design | |
KR100494560B1 (ko) | Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법 | |
JP3202544B2 (ja) | 暗号通信装置及び暗号化装置 | |
EP1629626A1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
Chakole et al. | Design of advanced encryption standard algorithm | |
KR100835718B1 (ko) | Aes에서의 암호화 장치 및 그 방법 | |
Subbarao et al. | Implementation of AES-256 encryption algorithm on FPGA |
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: 20080416 Termination date: 20190205 |
|
CF01 | Termination of patent right due to non-payment of annual fee |