CN1321506C - 进行kasumi计算的装置和方法 - Google Patents

进行kasumi计算的装置和方法 Download PDF

Info

Publication number
CN1321506C
CN1321506C CNB028140354A CN02814035A CN1321506C CN 1321506 C CN1321506 C CN 1321506C CN B028140354 A CNB028140354 A CN B028140354A CN 02814035 A CN02814035 A CN 02814035A CN 1321506 C CN1321506 C CN 1321506C
Authority
CN
China
Prior art keywords
output
xor
input
kasumi
register
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 - Lifetime
Application number
CNB028140354A
Other languages
English (en)
Other versions
CN1528066A (zh
Inventor
R·F·埃弗尔布吉
P·K·米施拉
R·R·达瓦恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN1528066A publication Critical patent/CN1528066A/zh
Application granted granted Critical
Publication of CN1321506C publication Critical patent/CN1321506C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key 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)
  • Mobile Radio Communication Systems (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Complex Calculations (AREA)

Abstract

披露了适用于高效KASUMI加密的技术。一方面,一个KASUMI循环器采用适当的反馈来产生KASUMI密码的小数部分,使得八个后续的循环能产生KASUMI输出。另一方面,采用适当的反馈来使用FO功能的三分之一,使得三个后续的周期产生FO输出。另外一个方面,采用适当的反馈来使用FI功能,使得两个后续周期产生FI输出。另外一个方面,子密钥发生器包括两个移位寄存器,以有效的方式来产生各个循环和其各子级的子密钥。这些方面都有利于具有一个简单用户接口的KASUMI的小面积和低成本的实现。也提出了本发明的各个其它方面。

Description

进行KASUMI计算的装置和方法
背景
技术领域
本发明主要涉及通信,更具体的说,涉及适用于进行KASUMI计算的新颖和改进的方法和装置。
背景技术
无线通信系统正在广泛地用于提供各种类型的通信,例如,语音、数据和其他等等。这些系统可以基于码分多址(CDMA)、时分多址(TDMA),或一些其他类型的系统。CDMA系统具有一些超越其它类型系统的优点,包括增加了系统的容量。
CDMA系统可以设计成支持一个或多个CDMA标准,例如,(1)“适用于双模式的宽带扩频蜂窝系统的TIA/EIA-95-B移动站-基站兼容性标准(IS-95标准),(2)“适用于双模式宽带扩频蜂窝移动站的TIA/EIA-98-C推荐最小化标准”(IS-98标准),(3)由联盟所推荐称之为“第三代合作项目”(3GPP)并在文件号Nos.3G TS 25.211,3G TS 25.212,3G TS 25.213和3G TS 25.214等一系列文件中所包含的标准(W-CDMA标准),(4)由联盟所推荐称之为“第三代合作项目2”(3GPP2)并在包括“适用于cdma2000扩频系统的TR-45.5物理层标准”,“适用于cdma2000扩频系统的C.S0005-A上层(层3)信令标准”,以及“C.S0024cdma2000高速率分组数据的空中接口规范”(cdma2000标准)所包括的标准,以及(5)其它一些标准。本文将能实施cdma2000标准的高速率分组数据规范的系统称之为高速率(HDR)系统。高HDR系统可以在TIA/EIA-IS-856,“CDMA2000高速率分组数据空中接口规范”所证明。所提出的无线系统也提供一个使用单个空中接口实现HDR和低数据速率服务(例如,语音和传真服务)的组合。
加密技术通常都用于对所传输的数据提供安全,以及对试图接入数据的用户进行确认。加密技术可以应用于各个领域,特别适用于数字无线通信系统。
一种加密算法,特别适用于在W-CDMA标准中使用的算法,是KASUMI。在ETSI/SAGE规范“3GPP的机密性和完整性算法的规范”,1999年12月23日提交的第1.0版的“文件2:KASUMI规范”中详细讨论了KASUMI(下文中将称之为KASUMI规范)。在相同的ETSI/SAGE规范,在“文件1:f8和f9规范”中详细讨论了KASUMI的各种使用。KASUMI分组密码,它可以采用128位密钥从64位输入中产生64位的输出。KASUMI的输出可以作为一个密钥码流来加密数据,通常是采用密钥码流的位与要加密数据的位异或(XOR)的方式。
一般来说,在通信领域中,是采用ASIC或其它硬件的解决方案,来实现上述所讨论的各种子功能的。在ASIC的设计中,所使用的面积越小,则所消耗的成本越低,成品率越高,并且通常是较低功率的。低成本和低功率有利于固定和移动的应用,并且在使用电池的移动设备中低功率就特别重要。同时,作为W-CDMA系统来说,也需要将KASUMI实施方法与他们的用户和基站相结合,并且设计者还需要在包括上述所讨论的这些各种限制条件下工作。因此,在技术上就需要适用于以有效的方式来进行KASUMI计算的装置和方法。
发明内容
本文所披露的实施例是针对适用于有效的KASUMI加密的有效装置和方法的需要。在一个方面,一个KASUNI循环是采用适当的反馈来产生KASUMI密码的小数部分,使得随后的八次循环可产生KASUMI输出。在另一方面,采用适当的反馈来产生FO功能的三分之一,使得随后的三次周期可产生FO输出。在还有另一方面,将适当的反馈用于FI功能,使得在随后的两个周期可产生FI输出。在还有另一方面,子密钥的发生器包括两个移位寄存器,它可以有效的方式来产生各个循环的子密钥以及其子阶段。这些方面,共同地产生了具有简单用户接口的KASUMI的小面积和低成本的先进优点。还提出了本发明的各个其它方面。
本发明提供了实现本发明的各方面、实施例和性能的方法和系统元件,正如下文中所详细讨论的。
附图的简要说明
本发明的性能、特性和优点将从以下结合附图所详细阐述中变得更加清晰,在附图中,类似的参考字符在全文中表示对应的相同项,其中:
图1是能够支持多个用户的无线通信系统的基本框图;
图2A-2D表示了执行KASUMI所需的计算;
图3是一例适用于执行KASUMI实施例的基本框图;
图4是一例KASUMI循环实施例的框图;
图5是一例FL功能实施例的框图;
图6是一例FO功能实施例的框图;
图7是一例FI功能实施例的框图;
图8是一个子密钥发生器的框图;
图9是一例KASUMI实施例的流程图;
图10是一例功能FO实施例的流程图;
图11是一例功能FI实施例的流程图;
图12是一例子密钥发生器的流程图;以及,
图13是另一例KASUMI实施例的控制流程图。
具体实施讨论
图1是一无线通信系统100的框图,该系统可支持多用户,并且它可以实现本发明的各个方面。系统100可以设计成支持一个或多个CDMA标准和/或设计(即,IS-95标准,cdma2000标准,HDR规范,W-CDMA标准)。为了简化,所显示的系统100可包括三个接入点104(该接入点也可称之为基站),这些接入点与两个接入终端106(该终端也可称之为远程终端或移动站)。该接入点和它所能覆盖的区域一起共同称之为“小区”。KASUMI算法可以在任意一个或多个接入点、一个或多个接入终端、或者两者中使用。
根据所实现的CDMA系统,各个接入终端106可以在任何给定的时间段通过前向链路与一个(或者可能是多个)接入点104进行通信,并且根据接入终端是否处于软切换通过反向链路与一个或多个接入点进行通信。前向链路(即,下行链路)是指从接入点到接入终端的传输,而反向链路(即,上行链路)则是指从接入终端到接入点的传输。
图2A-2D描述了KASUMI算法,正如在KASUMI规范中所定义的。图2A显示了KASUMI 200的上层框图。图2B显示了FO功能。图2C显示了FI功能。图2D显示了FL功能。
正如图2A所示,KASUMI包含了八个循环。各个循环是由一个FL功能,一个FO功能,以及一个32位XOR功能所组成。FL功能采用FLi来表示,其中,i是指所表示的是哪一个循环并且其范围从1至8。相类似,FO功能采用FOi来表示。各个循环使用各种子密钥,分别表示为KLi,KOi和KIi。其中,KLi是32位子密钥,它可包含两个以KLi,1和KLi,2表示的16位子密钥。KOi和KIj是48位子密钥,各自都分别包括以三个KOi,1、KOi,2以及KOi,3、KIi,1和KIi,2和KIi,3的16位子密钥。下文将参考图2B-2D进一步详细地讨论16位子密钥的使用。
循环1包括FL1 202、FO1 204和32位的按位XOR 206。64位的输入可以分成位两个32位段,这可以作为一个左段和一个右段来讨论。右段是以XOR 206与FO1 204的输出XOR来产生一个循环1的右输出。各个循环的右输出作为随后循环的左输入。于是,循环1右输出将作为循环2的左输入。左输入段传输到FL1 202,其中,它采用子密钥KL1根据FL功能进行处理,正如以下所讨论的。FL1 202的输出被传输到FO1 204,与KO1和KI1一起根据FO功能进行处理,也正如以下所讨论的。正如刚才所提及的,FO1 204的输出传输到XOR 206,与输入的右段一起进行按位的XOR运算。左输入段也将作为右输入传输到循环2。一般来说,各个循环的左输入将用于该循环的各种处理,并且将作为随后循环的右输入使用。
循环2包括FL2 208、FO2 210和XOR 212。循环2类似于循环1,除了功能FO和FL的次序相反。一般来说,奇数循环具有馈入FO功能的FL功能,而偶数循环具有馈入FL功能的FO功能。到循环2的右输入在XOR 212中与FL2 210的输出XOR,以产生循环2的右输出。正如以上所述,循环2的右输出将传输作为循环3的左输入。左输入段传输至FO2 208,与KO2和KI2一起根据FO功能进行处理。FO2 208的输出传输至FL2 210,与KL2一起根据FL功能进行处理。左输入段也将作为右输入传输至循环3。
循环3、5和7的结构类似于循环1,当然,除了各个循环的输入来自于前一循环的输出,而不是KASUMI输入。循环4、6和8的结构类似于循环2。
在循环3中,XOR 212的输出传输至FL3 214,与KL3一起根据FL功能进行处理。FL3 214的输出传输至FO3 216,与KO3和KI3一起根据FO功能进行处理。FO3 216的输出传输至XOR 218,与XOR 206的输出一起进行按位的XOR操作。
在循环4中,XOR 218的输出传输至FO4 220,与KO4和KI4一起根据FO功能进行处理。FO4 220的传输至FL4 222,与KL4一起根据FL功能进行处理。FL4 222的输出传输至XOR 224,与XOR 212的输出一起进行按位XOR操作。
在循环5中,XOR 224的输出传输至FL5 226,与KL5一起根据FL功能进行处理。FL5 226的输出传输至FO5 228,与KO5和KI5一起根据FO功能进行处理。FO5 228的输出传输至XOR230,与XOR 218的输出一起进行按位XOR操作。
在循环6中,XOR 230的输出传输至FO6 232,与KO6和KI6一起根据FO功能进行处理。FO6 232的输出传输至FL6 234,与KL6一起根据FL功能进行处理。FL6 234的输出传输至XOR 236,与XOR 224的输出一起进行按位XOR操作。
在循环7中,XOR 236的输出传输至FL7 238,与KL7一起根据FL功能进行处理。FL7 238的输出传输至FO7 240,与KO7和KI7一起根据FL功能进行处理。FO7 240的输出传输至XOR 242,与XOR 230一起进行按位XOR操作。
在循环8中,XOR 242的输出传输至FO8 244,与KO8和KI8一起进行根据FO功能进行处理。FO8 244的输出传输至FL8 246,与KL8一起根据FL功能进行处理。FL8 246的输出传输至XOR 248,与XOR 236的输出一起进行按位XOR操作。
XOR 248的输出和XOR 242的输出串接起来,就产生了64位的KASUMI输出,在图2A中标为C。
图2B描述了执行上述所讨论的FO功能的步骤。FO功能取32位输入,并分成为两个16位段,分别为左输入和右输入。值得注意的是,FO功能包含着三个级,每级包含着两个16位按位XOR和一功能FIi的实例,分别表示为FIi1,Fii2和FIi3,以下将详细讨论的。在该讨论中,I对应于循环数目,因为在以上结合图2A所讨论的各个循环中都存在着一个FO功能。
在功能FO的第一级中,左16位输入是在XOR 250中与16位子密钥KOi,1的按位XOR值。正如以上所讨论的,KOi,1是48位子密钥KOi中的一个16位子密钥。KOi,2和KOi,3也都是KOi中的16位子密钥。XOR 250的输出传输到FIi1 252,与KIi,1一起根据以下将讨论的FI功能进行处理。正如以下将讨论的,KIi,1是48位子密钥KIi中的一个16位子密钥。KIi,2和KIi,3也都是KIi中的16位子密钥。FIi1 252的输出传输至XOR 254,与右输入一起进行16位按位XOR操作。
在功能FO的第二级,右输入传输值XOR 256,与子密钥KOi,2一起进行16位按位XOR操作。其结果传输至FIi2 258,与KIi,2一起根据FI功能进行处理。FIi2 258的输出传输至XOR 260,与XOR 254的输出一起进行16位按位XOR操作。
在功能FO的第三级,XOR 254的输出传输至XOR 262,与子密钥KOi,3一起进行16位按位XOR操作。其结果传输至FIi3 264,与KIi,3一起根据FI功能进行处理。FIi3 264 XOR 266 XOR 260输出一起进行16位按位XOR操作。XOR 260的输出与XOR 266的输出相串接,以产生该功能的输出,在图2B中标为FO。
图2C描述了进行以上所讨论的FI功能的计算步骤。FI功能取16位输入,并分成一个9位段和一个7位段。FI功能包含两个进行相同处理的级,在两个级之间有一个XOR步骤,可表示为XOR 276和286。值得注意的是,在图2C中较深色的线表示9位的路径,而较浅色的线则表示7位的路径。
在第一级中,9位的输入段传输至功能S9 268,以进行以下将详细讨论的处理。7位的输入段被加零延伸并且在XOR 270中与S9 268的输出进行XOR操作。7位输入段也传输至功能S7 272,以进行以下将详细讨论的处理。XOR 270的9位输出截断成7位并且在XOR 274中与S7 272的输出进行XOR操作。
在XOR 276中,XOR 274的输出与子密钥KIi, j,1进行按位XOR操作。KIi,j,1是KIi,j的一个7位子密钥,其中,i表示循环的次数,j表示调用FI功能的FO级的次数,并且1表示KIi,j的第一个子密钥。在XOR 286中,XOR 270的输出与9位的子密钥KIi,j,2进行按位XOR操作。KIi,j,2是KIi,j的第二个子密钥。
XOR 276和286的输出作为功能F1第二级的输入。XOR 286的9位输出传输至功能S9 278,以进行处理。XOR 276的7位输出被加零延伸并且在XOR 280中与S9 278的输出进行XOR操作。XOR 276的输出也传输至功能S7 282。XOR280的9位输出截断成7位,并且在XOR 284中与S7 282的输出进行XOR操作。XOR 284的7位输出与XOR 280的9位输出相串接,以形成16位输出,标为FI。
在KASUMI规范中定义了功能S7。它取7位输入并返回7位输出。以下公式1-7定义了各个输出位,y0至y6,作为7位输入位,x0至x6的函数。两个操作数的串接,例如,x1x3,则表示操作数的逻辑与(即,x1 AND x3)。符号表示异或功能。
y0=x1x3x4x0x1x4x5x2x5x3x4x5x6x0x6x1x6
x3x6x2x4x6x1x5x6x4x5x6                                  (1)
y1=x0x1x0x4x2x4x5x1x2x5x0x3x5x6x0x2x6x3x6
x4x5x61                                                     (2)
y2=x0x0x3x2x3x1x2x4x0x3x4x1x5x0x2x5x0x6
x0x1x6x2x6x4x61                                         (3)
y3=x1x0x1x2x1x4x3x4x0x5x0x1x5x2x3x5x1x4x5
x2x6x1x3x6                                                  (4)
y4=x0x2x3x1x3x1x4x0x1x4x2x3x4x0x5x1x3x5
x0x4x5x1x6x3x6x0x3x6x5x61                           (5)
y5=x2x0x2x0x3x1x2x3x0x2x4x0x5x2x5x4x5
x1x6x1x2x6x0x3x6x3x4x6x2x5x61                       (6)
y6=x1x2x0x1x3x0x4x1x5x3x5x6x0x1x6x2x3x6
x1x4x6x0x5x6                                              (7)
在KASUMI规范中定义了功能S9。它取9位输入并且返回9位输出。以下公式8-16定义了各个输出,y0至y8,作为9位输入位,x0至x8的函数。两个操作数串接,例如,x0x2,表示操作数的逻辑与(即,x0 AND x2)。符号表示异或功能。
y0=x0x2x3x2x5x5x6x0x7x1x7x2x7x4x8x5x8
x7x81                                               (8)
y1=x1x0x1x2x3x0x4x1x4x0x5x3x5x6x1x7
x2x7x5x81                                         (9)
y2=x1x0x3x3x4x0x5x2x6x3x6x5x6x4x7x5x7
x6x7x8x0x81                                     (10)
y3=x0x1x2x0x3x2x4x5x0x6x1x6x4x7x0x8
x1x8x7x8                                            (11)
y4=x0x1x1x3x4vx0x5x3x6x0x7x6x7x1x8x2x8
x3x8                                                  (12)
y5=x2x1x4x4x5x0x6x1x6x3x7x4x7x6x7x5x8
x6x8x7x81                                         (13)
y6=x0x2x3x1x5x2x5x4x5x3x6x4x6x5x6x7
x1x8x3x8x5x8x7x8                                (14)
y7=x0x1x0x2x1x2x3x0x3x2x3x4x5x2x6x3x6
x2x7x5x7x81                                     (15)
y8=x0x1x2x1x2x3x4x1x5x2x5x1x6x4x6x7
x2x8x3x8                                            (16)
图2D描述与图2A有关的以上所讨论的FL功能。32位的输入分成为两个16位段,左段和右段。左输入段在AND门288与KLi,1进行按位AND操作,并采用∩符号来标示。AND门288的输出在旋转器290中向左旋转一位,并采用<<<符号来标示。旋转器290的输出在XOR 292中与右输入段进行按位XOR操作。XOR 292的输出在OR门298中进行按位OR操作,并采用∪符号来标示。OR门298的输出在旋转器296中向左旋转一位。旋转器296的输出在XOR 924中与左输入段进行按位XOR操作。通过XOR 294的输出与XOR 292的输出的连接形成32位输出,标示为FL。
KASUMI算法需要8个计算的循环,来产生所需要的结果,正如以上所讨论的。在一个实施例中,单个循环的硬件可构成并以适当的反馈再次用于产生8循环的KASUMI输出。图3描述了这类示例性实施例。本文所专门使用的术语“示例性”是指“用于作为一个实例、事例,或图示说明”。本文以示例性所讨论的任一实施例并不一定解释成优于或胜于其它实施例。
图3描述了KASUMI 300,它包括子密钥发生器310,KASUMI循环器330,以及KASUMI计算控制器320。KASUMI循环器330接受来自子密钥发生器310的子密钥。KLi,1和KLi,2直接连接,并且分别通过多路复用器340和350来传输KOi,j和KIi,j。MUX 340接受来自子密钥310的KO i,1’KOi,2和KOi,3。MUX 350接受来自子密钥310的KIi,1,KIi,2和KIi,3。该组子密钥,KOi,j和KIi,j将分别从多路复用器340和350传输至KASUMI循环器330,并通过来自KASUMI计算控制器320的控制信号,sub_select得到确认。在子密钥发生器310中所产生的所有子密钥都来自一个密钥的输入,标示为K,它具有128位长度。子密钥发生器310也接受来自KASUMI计算控制器320的负载信号和旋转信号。子密钥发生在下文中将作更加详细的讨论。
KASUMI计算控制器320接受复位信号和启动信号作为输入信号。它产生一个完成信号,以表示已经产生了KASUMI输出。这类表示完成的信号是可任选的。另一个实施例可以排除这类信号,只要根据系统的特性可以已知完成的时间。在示例性实施例中的启动信号是同步的,使得当检测到启动信号时,密钥,K,和64位输入都是有效的。图3显示了各种适用于控制KASUMI循环器330操作的各种信号。Kasumi_data_flow,Kasumi_input_select,和Kasumi_output_reg_en都用于控制在KASUMI循环器330中循环等级的功能。Fo_input_select和Fo_output_reg_en用于控制在KASUMI循环器330中的FO功能。Fi_input_select和Fi_output_reg_en用于控制在KASUMI循环器330中的FI功能。在一个示例性实施例中,这最后两个信号是相同的,但只需要一个单个的控制信号来控制FI功能。并可以根据如何使用各种实施例而需要这些信号的子集。用于控制存储器和反馈电路的各个信号方案在本领域中都是已知,且都在本发明的范围内。以下将提供所需控制的详细讨论。
除了刚才提及的控制信号和子密钥之外,KASUMI ROUND 330还接受一个64位的输入,并根据该输入来产生64位输出(其计算可参考图2A-2D的详细讨论)。
图4描述了KASUMI循环器400,这是刚才所讨论的KASUMI循环器330的一个示例性实施例。在KASUMI循环器400中,将64位输入,in,分成位两个32位段,上半部分(63∶32)和下半部分(31∶0)。上半部分可以与多路复用器405的一个输入相连接。下半部分可以与多路复用器410的一个输入相连接。当插入了Kasumi_output_reg_en信号时,两个寄存器445和450锁存着在KASUMI循环器400中计算的结果,并且将寄存器445环绕450的输出连接起来,以产生63位的输出,out。除此之外,寄存器445的输出可作为多路复用器410的一个输入反馈,以及寄存器450的输出可作为多路复用器405的一个反馈。多路复用器405和410可由kasumi_input_select来控制,该信号在没有发出时产生选择in以及在发出时选择反馈的结果。多路复用器405和410可一起作为选择器来工作,用于在由寄存器445和450所形成存储器的输入和内容之间选择。采用这种方式,当处于被选择时,KASUMI循环器400可以用于执行KASUMI的第一循环,并且当反馈了上一循环的结果时,可继续执行KASUMI的随后循环。
正如以上与图2A-2D有关的讨论那样,KASUMI循环处理的核心,是在FL功能425,FO功能430和XOR 440中进行的。然而,正如以上所讨论的,在功能各自用于每一个循环中的同时,处理次序是一个循环不同于另一个循环。三个多路复用器415,420和435提供了重新使用在KASUMI的各个随后循环中的分量所需的切换。FL功能425,FO功能430,XOR 440和多路复用器415,420和435一起构成了局部循环计算器的一个实施例。该局部循环计算器输出,它包括从多路复用器405输出传输到多路复用器415的输入,并与XOR 440的输出相串接,存储于由寄存器445和450所构成的存储器中。由多路复用器405和410所构成的选择器的输出输入至局部循环计算器。对业内的熟练技术人士来说,正如刚才所讨论的,选择器、局部循环器和存储器的数字电路的实施都是非常清楚的。每一个这样的实施例都是在本发明的范围内。
三个多路复用器,415,420和435构成了数据流选择器,用于构成偶数和奇数循环计算的KASUMI循环。它们都是由选择器信号kasumi_data_f1ow来控制的。复用器415在发出kasumi_data_flow时选择多路复用器405的输出,而当没有发出kasumi_data_flow时就选择功能功能FO 430的反馈输出。多路复用器420在没有发出kasumi_data_flow时就选择寄存器445的输出,而当发出了kasumi_data_flow时就选择功能FL 425的反馈输出。多路复用器415的输出传输到功能FO 430,它的输出又传输至多路复用器435。多路复用器435在没有发出kasumi_data_flow时就选择功能FL 425的输出,而当发出了kasumi_data_flow时就选择功能FO 430的输出。多路复用器435的输出作为输入传输至weiluuojiXOR 440。按位XOR 440的另一输入是多路复用器410的输出。正如以上所讨论的,寄存器445的输入是多路复用器405的输出。在业内的熟练技术人士都能意识到:如图4所描述的结构,与控制信号kasumi_input_select、kasumi_data_flow以及kasumi_output_reg_en的适当处理相结合,就能够用于实现与以上图2A讨论有关的所需KASUMI计算。适用于本实施例的控制信号将在下文中作进一步的讨论。
图5描述了一例FL功能500的实施例,适用于作为以上图4所讨论的功能FL 425使用。FL功能500接受32位的输入,in,并且产生32位的输出,out。输入的上半部分(位31至16)在AND门电路510中与子密钥KLi,1进行按位AND操作。AND门510的输出在旋转器520中向左旋转一位。旋转器520的输出与在XOR 530的下半部分(位15至0)进行按位XOR操作。XOR 530的结果是在OR门540中与子密钥KLi,2进行按位OR操作。OR门540的输出在旋转器550中向左旋转一位。旋转器550的输出是在XOR560中与输入的上半部分进行按位XOR的操作。XOR 560的输出与XOR 530的输出相串接,以产生32位的输出。
图6描述了一例FO功能600的实施例,适用于作为以上图4所讨论的功能FO 430使用。FO功能600接受32位的输入,in,并产生32位的输出,out。在该实施例中,正如以上所讨论的那样,可以采用了三个FO级之一的各分量。寄存器和适当的反馈可允许连续三次使用单个级来产生FO输出。
当发出fo_output_reg_en信号时,两个寄存器660和670都可以用于存储中间计算。寄存器660的输出作为一个输入传输至多路复用器620。寄存器670的输出作为一个输入传输至多路复用器610。输入,in,的上半部分可作为另一输入传输至多路复用器610。输入,in,的下半部分可作为至多路复用器620的另一输入。信号fo_input_select直接输入至多路复用器610和620,使之在来自寄存器660和670的输入,in,和反馈数值之间进行选择。多路复用器610的输出在XOR 630中与子密钥KOi,j进行按位XOR的操作。XOR630的输出传输至功能FI 640,与子密钥KIi,j一起进行处理,正如在下文中将要进一步讨论的那样。功能FI 640的输出在XOR 650中与多路复用器620的输出进行按位XOR的操作。正如以上所讨论的,多路复用器650的输出作为输入传输至寄存器660。正如以上所讨论的,多路复用器620的输出作为输入传输至寄存器670。多路复用器620的输出与XOR 650的输出相串接,形成了32位输出,out。
寄存器660和670形成存储器。多路复用器610和620形成选择器。XOR 630,FI功能640和XOR 650一起形成一个局部FO计算器。选择器在输入和存储器结果之间选择,用于将输入传输至局部FO计算器。局部FO计算器的输出存储在存储器中。正如刚才所讨论的,对业内的熟练技术人士来说,选择器、局部FO计算器和存储器的数字电路的实施都是非常清楚的。每一个这样的实施例都是在本发明的范围内。
图7描述了一例FI功能700的实施例,它适用于作为以上图6所讨论的功能FI 640所使用。FI功能700接受16位输入,in,并且产生16位的输出,out。在该实施例中,采用了以上所讨论的两个FI级之一的各分量。寄存器和适当的反馈允许单个级可以连续两次使用以产生FI输出。
当插入了fi_output_reg_en时,两个寄存器745和750都可以用于存储中间计算结果。9位寄存器745的输出作为一个输入传输至多路复用器750。7位寄存器750的输出作为一个输入传输至多路复用器710。输入,in,的高9位作为多路复用器705的另一输入。输入,in,的低7位作为多路复用器710的另一输入。信号fi_input_select直接输入多路复用器705和710,以在输入,in,和分别来自寄存器745和750的反馈数值之间进行选择。传输多路复用器705的输出,使之在功能S9 715中进行处理,正如以上所讨论的。功能S9 715的输出在XOR 720中与多路复用器710的加零延伸的输出进行按位XOR的操作。也传输多路复用器710的输出,使之在功能S7 725中进行处理。功能S7 725的输出在XOR 730中与XOR 720的截断的输出进行按位XOR操作。XOR720的输出在XOR 735中与子密钥KIi,j2进行按位XOR操作。XOR 730的输出作为输入传输至寄存器745,正如以上所讨论的。XOR 740的输出作为输入传输到寄存器750,如上所述。XOR 730的输出与XOR 720的输出相串接,以产生16位的输出,out。
值得注意的是,在该实施例中,信号fi_input_select和fi_output_reg_en是相同的,所以可作为一个共同信号在多路复用器705,多路复用器710,寄存器745和寄存器750之间共享。在另一实施例中,当各个FI处理周期与其中控制寄存器745和750的一个周期相对应时,则对这些寄存器就不再需要使能信号。寄存器可以简单地将XOR 735和750的结果延迟一个周期,在该周期中,这些结果可以用于计算FI的第二个一半。可以使用与此相类似的各种技术,并且这些在业内也是众所周知的。
寄存器745和750构成了存储器。多路复用器705和710构成了选择器。功能S9 715、XOR 720、功能S7 725以及XOR 730、735和740一起构成了局部FI计算器。选择器在输入和存储器结果之间选择,用于将输入传输至局部FI计算器。局部FI计算器的一个输出,即,一个中间数值存储于存储器。除此之外,XOR 720和730的输出也作为FI输出。对业内熟练的技术人士来说,选择器、局部FI计算器和存储器的数字电路实施方式是显而易见的,正如刚才所讨论的那样。各种这类实施例都在本发明的范围之内。
图8描述了子密钥发生器800。子密钥发生器800接受128位密钥,K,并且结合加载和旋转信号产生以上所讨论的各种子密钥。子密钥发生器800包含两个128位的移位寄存器810和820。当发出加载信号时,这两个寄存器可并联加载的,以及当发出旋转信号时,各个寄存器可以进行8位左旋转。一旦KASUMI计算开始,就发出加载信号。在完成各次循环之后,就可使能旋转信号,从而产生下一次循环的新的子密钥。以下将提供对这些与其它控制信号有关的控制信号的更详细讨论。
值得注意的是,对业内熟练的技术人士来说,各种实现这些可旋转移位寄存器的方法都是显而易见。例如,一种移位寄存器可以采用将其一位移位后的输出位作为输入反馈至第一级的方法来构成旋转移位寄存器。这类旋转移位寄存器可以移位8次来产生8位左旋转。另外,移位寄存器可以用线连接起来,使得每一次移位可以将每一位旋转8个位置。(或字节方式左旋转)。这种替换方式等效实现了8个隔交织16位的移位寄存器,这是通过将它们的输出反馈到它们各自的输入所构成的。
移位寄存器820包括8个16位部分,标示为K1至K8。K(127∶112)作为用于K1的加载输入。K(111∶96)作为用于K2的加载输入。K(95∶80)作为用于K3的加载输入。K(79∶64)作为用于K4的加载输入。K(63∶48)作为用于K5的加载输入。K(47∶32)作为用于K6的加载输入。K(32∶16)作为用于K7的加载输入。K(15∶0)作为用于K8的加载输入。
移位寄存器810包括8个16位部分,标示为K1’至K8’。通过K的各个段与常数C1至C8的按位XOR操作来形成移位寄存器810的加载输入,常数是在KASUMI规范中所定义的。表1提供了这些常数的数值。
表  1
    C1     0x0123
    C2     0x4567
    C3     0x89AB
    C4     0xCDEF
    C5     0xFEDC
    C6     0xBA98
    C7     0x7654
    C8     0x3210
通过在XOR 801中与C1进行K(127∶112)的按位XOR操作来产生输入至K1’的加载。通过在XOR 802中与C2进行K(111∶96)的按位XOR操作来产生输入至K2’的加载。通过在XOR 803中与C3进行K(95∶80)的按位XOR操作来产生输入至K3’的加载。通过在XOR 804中与C4进行K(79∶64)的按位XOR操作来产生输入至K4’的加载。通过在XOR 805中与C5进行K(63∶48)的按位XOR操作来产生输入至K5’的加载。通过在XOR 806中与C6进行K(47∶32)的按位XOR操作来产生输入至K6’的加载。通过在XOR 807中与C7进行K(31∶16)的按位XOR操作来产生输入至K7’的加载。通过在XOR 808中与C8进行K(15∶0)的按位XOR操作来产生输入至K8’的加载。当然,由于各个XOR 801-808具有一个常数可作为一个操作数,因此,当所对应的常数为“0”时,则每一个128 XOR可以一个连线来取代,当所对应的常数是“1”时,则可以用一个反相器来取代。
可以直接从移位寄存器810中抽头分出一些子密钥。KLi,2是从K3’中抽头分出的。KIi,2是从K4’中抽头分出的。KIi,1是从K5’中抽头分出的。KIi,3是从K8’中抽头分出的。通过旋转移位寄存器820的各段来产生其它子密钥。通过将在旋转器830中的K1左旋转一位来产生KLi,1。通过将在旋转器840中的K2左旋转五位来产生KOi,1。通过将在旋转器850中的K6左旋转八位来产生KOLi,2。通过将在旋转器860中的K7左旋转十三位来产生KOi,3。值得注意的是,由于每一个这类旋转器都旋转一个常数数值,每一次旋转都可以通过一个简单的连线映射来完成。在业内的熟练技术人士都会意识到这类连接映射是如何完成的,并且都会意识到也适用于旋转的各种其它技术。
图9是在一例KASUMI的实施例所实现的详细步骤的流程图。此外,这些步骤也可以被KASUMI计算控制器320所采用,只要所涉及的实施例类似于图3所讨论的实施例。这些步骤也可以应用于例如图4所讨论的KASUMI循环器400的实施例。
在开始902处开始处理,随后转入方框904。在方框904中,i设置为1,其中i表示循环的次数。选择到KASUMI循环器的输入,用于计算循环,因为这是循环1。它对应于将kasumi_input_select设置为零,正如图4所示。转入方框判决方框906,在该方框中,进行测试来确定当前由i所标示的循环是偶数还是奇数。如果i是奇数,即,是1、3、5,或7,则转入到方框908。如果i是偶数,即,2、4、6或8,则转入到方框910。
在方框908中,所构成的KASUMI循环的数据流从输入(在循环1中)或反馈(在循环3,5和7中)到FL功能到FO功能到XOR门。这对应于将在图4中的kasumi_data_flow设置为1。
在方框910中,所构成的KASUMI循环的数据流从反馈到FO功能到FL功能到XOR门。这对应于将在图4中把kasumi_data_flow设置为0。
从方框908或910转入到方框912,以计算KASUMI循环。一例用于计算KASUMI循环的实施例在图4中详细讨论,但是任何适用于计算KASUMI循环的方法都在图9所示流程图的范围内。一旦计算了KASUMI循环之后,该结果就在锁存结果方框914中存储。这对应于发出图4所示的kasumi_reg_en信号,转入到判决方框916。
在判决方框916中,如果i等于8,则已经完成了第八和最后的循环,并且处理已经在KASUMI完成方框922中完成。在采用一完成(done)信号的一例实施例中,例如图3所示的实施例,该信号可以施加在该位置上。当i小于8时,则还有其它循环需要进行,所以在方框918中i增加1。转入方框920,在该方框中,可以选择来自方框918锁存结果的反馈来计算下一次循环。这对应于将在图4中的kasumi_input_select设置为1。环路再返回到方框906,以进行下一次循环。重复上述步骤,直至到达KASUMI完成(done)方框922。
图10是一例FO功能实施例中所进行步骤的详细流程图。此外,这些步骤可以被KASUMI计算控制器320所采用,只要所涉及的实施例类似于图3所讨论的实施例。这些步骤也可以应用于例如图6所讨论的FO功能600的实施例。
在开始1002开始处理,随后转入方框1004。在方框1004中,j设置为1,其中j表示级数。选择到FO功能的输入,用于计算,因为这是在级1。它对应于将fo_input_select设置为零,正如图6所示。另外,级数,j,与图3所示的信号subkey_select互相相关。(在某些实施例中,subkey_select数值为0、1和2,它们所对应的j数值为1、2和3。另一种方法是,可以采用三个输入多路复用器,用于根据subkey_select数值等于0、1和2来选择相同的j数值。)
转入到方框1006,在该方框中,完成了FO功能的三分之一。图6描述了一例能够计算该三分之一FO功能的实施例,并且其它实施例也在图10所示的流程图的范围内。在锁存结果方框1008中,存储三分之一计算的结果。这对应于发出在图6中的fo_output_en。随后,转入到判决方框1010,以测试j是否等于3。如果是,转入到FO完成方框1016,则已经完成FO功能。如果j小于3,则还要完成更多级。转入到方框1012,j增加1。随后,转入到方框1014,在该方框中,可选择在方框1008中锁存的结果作为FO功能的输入。这对应于将在图6中的fo_input_select设置为零。环路再返回到方框1006,以计算下一级,并且重复处理,直至完成所有的阶段。
图11是一例FI功能实施例中所进行步骤的详细流程图。此外,这些步骤可以被KASUMI计算控制器320所采用,只要所涉及的实施例类似于图3所讨论的实施例。这些步骤也可以应用于例如图7所讨论的FI功能700的实施例。
在开始1102处开始处理,随后转入方框1104。在方框1104中,选择用于计算的输入,这对应于将在图7中的fi_input_select设置为1。转入到方框1106,在该方框中,计算FI功能的一半。转入到方框1108,以锁存在方框1106中计算的FI第一个一半的结果。转入到方框1110,在该方框中,选择用于计算的反馈,这对应于将在图7中的fi_input_select设置为零。转入到方框1112,在该方框中,完成FI的第二个一半。转入到方框1114,完成FI的计算。
图12是一例控制子密钥发生器的实施例所进行步骤的详细流程图,该实施例类似于上述图8所讨论的实施例。此外,这些步骤可以被KASUMI计算控制器320所采用,只要所涉及的实施例类似于图3所讨论的实施例。
在开始1202处开始处理,随后转入方框1204。在方框1204中,i设置为1,其中i表示循环的次数。加载子密钥移位寄存器。例如,图3所示的加载信号可以连接着子密钥发生器800。正如图8所示,即,当发出时,就加载两个移位寄存器810和820。转入到方框1206并等待将要使用的子密钥的当前组,这也是一个KASUMI循环要退出所需的时间。在这段时间周期中,一组子密钥,对应于循环1的子密钥将是有效的。转入到判决方框1208。
在判决方框1208中,如果i等于8,则已经进行了第八和最后的KASUMI循环,并且在done方框中完成该处理。如果还需要其它KASUMI计算,则转回到开始1202。当i是小于8,则存在着需要新的子密钥组的其它循环。转回到方框1210,以旋转子密钥移位寄存器。这对应于发出图3所示的旋转信号,并且在移位寄存器810和820中产生8位左旋转,正如以上有关图8的讨论。转入到方框1212,使i增加1。环路再返回到方框1206,以提供用于另一个KASUMI循环的子密钥。重复上述步骤,直至到达done方框1214。
图13是详细描述进行KASUMI步骤的流程图,其中KASUMI与以上有关图3至8所讨论的技术和图9至12所讨论的流程图合并在一起。一例使用图13所示步骤的示例性实施例是KASUMI 300,正如以上图3所讨论的。一例示例性KASUMI 300可以采用KASUMI计算控制器320,它可以结合子密钥发生器310和KASUMI循环器330来进行图3所描述的控制步骤。子密钥发生器310可以是类似于子密钥发生器800的子密钥发生器,正如图8所描述的。KASUMI循环器330可以是类似于KASUMI循环器400的循环器,正如图8所描述的。KASUMI循环器400可以采用FL功能500和FO功能600,正如图5和图6所分别描述的。FO功能600可以采用FI功能700,正如图7所描述的。图13所示的流程图在开始1302处开始,并且转入到方框1304。
在方框1304中,i设置为1,其中i表示为循环的次数。选择KASUMI的输入,以计算循环次数,因为这是循环1。这对应于将kasumi_input_select设置为零,正如图4所示。子密钥移位寄存器加载。例如,图3中的加载信号可以连接到子密钥发生器800,正如图8所示,当发出时,加载两个移位寄存器810和820。
转入到判决方框1306,在该方框中,进行测试,以确定由i所标注的当前循环是偶数还是奇数。如果是奇数,即,1、3、5或7,则转入到方框1308。如果是偶数,即,2、4、6或8,则转入到方框1310。在方框1308中,所构成的KASUMI循环的数据流从输入(在循环1中)或反馈(在循环3、5或7中)传输到FL功能到FO功能到XOR门。这对应于在图4中将kasumi_data_flow设置为1。在方框1310中,所构成的KASUMI循环的数据流从反馈传输到FO功能到FL功能到XOR门。这对应于在图4中将kasumi_data_flow设置为零。
从方框1308或1310,转入到方框1312,以开始计算KASUMI循环。首先描述循环的子功能,例如,FI和FO阶段,但是业内的熟练技术人士都会知道:这些方法是可以相互变化的,这并不脱离本发明的范围。
在方框1312中,对FO功能进行初始化。j设置为1,其中j表示级数。FO功能的输入可选择,以用于计算FO功能,因为这是FO级1。这对应于将fo_input_select设置为1,正如图6所示。此外,级数,j,与图3所示的信号subkey_select相关。在subkey_select和j之间的相关正如以上有关图10的详细讨论。转入到方框1314,以进行FI功能。
在方框1314中,可选择适用于计算FI功能的输入,这对应于在图7中将fi_input_select设置为1。转入到方框1316,在该方框中,计算FI功能的一半。一例能够计算FI功能的一半的实施例正如图7所描述的,但是其它实施例也都在图13所示的流程图的范围内。转入到方框1318,以锁存在方框1316中所计算的FI的第一个一半的结果。转入到方框1320,在该方框中,选择FI反馈,用于计算FI功能,这对应于在图7中将fi_input_select设置为零。转入到方框1322,在该方框中,计算FI的第二个一半。转入到方框1324,以继续对FI的处理,直至完成FI处理。
在方框1324中,完成三分之一FO功能。图6描述了一例能够计算三分之一FO功能的实施例,但是其它实施例也都在图13的流程图的范围内。在锁存FO结果的方框1326中,存储三分之一计算的结果。这对应于在图6中施加fo_output_en。随后,转入到判决方框1334,以测试j是否等于3。如果是的,则完成了FO处理。转入到方框1334,以继续KASUMI的处理。如果j小于3,则还要完成更多的阶段。转入到方框1330,使j增加1。随后,转入到方框1332,在该方框中,反馈是在方框1326中锁定的FO结果,选择该反馈作为FO功能的输入。这对应于将在图6中的fo_input_select设置为零。环路再返回至方框1314,以计算下一阶段,并且重复该处理,直至完成所有的阶段。
在方框1334中,计算KASUMI循环。图4详细描述了一例计算KASUMI循环的实施例,但是适用于计算KASUMI循环的任何方法也都在图13的流程图的范围中。一旦在方框1334中完成了KASUMI循环的计算,则在锁存KASUMI结果的方框1336中存储其结果。这对应于施加kasumi_reg_en信号,正如图4所示。转入到判决方框1338。
在判决方框1338中,如果i等于8,则已经完成了第八和最后的循环,并且处理在KASUMI done方框1346中完成。在一例采用done信号的实施例中,例如在图3中所示的,该信号可以在该点上发出。当i小于8时,则需要执行附加的循环。所以在方框1340中将i增加1。处理转入到方框1324,在该方框中,可以选择反馈,即,方框1336的锁存结果,用于下一循环的计算。这对应于将在图4中的kasumi_input_select设置为1。下一循环需要新的子密钥组,所以转入到方框1344,以旋转子密钥移位寄存器。这对应于插入在图3中的旋转信号,并且在移位寄存器810和820中产生8位左旋转,正如与图8有关的讨论。环路再返回到判决方框1306,以进行下一循环。重复上述步骤,直至到达KASUMI done(结束)方框1346。
应该理解的时,在上述所讨论的所有实施例中,方法步骤都是可以相互交换的,这并不脱离本发明的范围。
业内的熟练技术人士将会理解到:信息和信号可以采用各种不同工艺和技术中的任何一种方式来描述。例如,在上述讨论中所采用的参考数据、指令、命令、信息、信号、位、字符、以及码片都可以电压、电流电磁波、电磁场和颗粒、光学场和颗粒、或者上述的任一组合来表示。
业内的熟练技术人士都会意识到:结合本文所披露的实施例所描述的各种说明的逻辑方框、模块、电路和算法步骤都可以采用电子硬件、计算机软件、或两者的组合来实现。为了能简洁地说明硬件和软件的相互交换,以上所讨论的各种说明的元件、方框、模块、电路和步骤一般都是以它们的功能来描述的。这类功能是以硬件还是以软件来实施取决于整个系统所附加的特殊应用和设计限制。熟练的技术人士可以适用于各种特殊应用的变化方式来实现所讨论的功能,但是这类实现的决定不应该理解成脱离了本发明的范围。
各种结合本文披露的实施例所说明的逻辑方框、模块和电路都可以采用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其它可编程逻辑器件、分离门电路或晶体管逻辑、分离硬件元件,或者设计成可执行上述所讨论功能的它们任一组合来实现或执行。通用处理器可以是微处理器,但在另一替代实施例中,处理器可以是任一常规处理器、控制器、微控制器、或状态机。处理器也可以计算器件的组合来实现,例如,DSP和微处理器的组合、多个微处理器、一个或多个与DSP内核相结合的微处理器,或者其它这类结构。
结合本文披露的实施例所讨论的方法或算法的步骤可以直接嵌入在硬件中、嵌入在由处理器执行的软件模块中、或者两者的组合之中。软件模块可以驻留在RAM存储器、Flash存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM、或者业界内所熟悉的任何其它存储媒介中。一种示例性存储媒介与处理器相耦合,使得处理器能够从存储媒介中读取信息或将信息写入到存储媒介中。在另一个实施例中,存储媒介可以集成在处理器中。处理器和存储媒介可以驻留在一个ASIC中。ASIC可以驻留在一个用户终端。在另一个实施例中,处理器和存储媒介也可以分离元件驻留在用户终端。
所披露实施例的前面的讨论提供了能使业内熟练技术人士产生或使用本发明。对业内熟练技术人士来说,这些实施例的各种改进都是显而易见的,并且本文所定义的基本原理也可以应用于其它实施例,这并不背离本发明的精神和范围。于是,本发明并不试图限制于本文所显示的实施例,但是本发明将依照与本文所披露的原理和新颖特性相一致的广泛的范围。

Claims (15)

1.一种可操作用于用密钥对KASUMI输入进行KASUMI加密操作以产生KASUMI输出的装置,该装置包括:
计算控制器,用于产生第一控制信号和第二控制信号;
KASUMI循环器电路,用于产生KASUMI密码的分数部分,可构成用于响应于所述第一控制信号进行偶数和奇数循环的计算,以产生所述KASUMI输出;
存储器,它用于存储所述KASUMI循环器电路的输出;以及,
选择器,用于响应于所述第二控制信号向所述KASUMI循环器电路提供输入,在第一次循环过程中选择所述KASUMI输入,并且在随后的循环过程中选择从所述存储器输出的所存储的KASUMI循环器电路的输出。
2.如权利要求1所述装置,还包括子密钥发生器,用于基于密钥来产生适用于所述KASUMI循环器电路的各子密钥。
3.如权利要求1所述装置,其特征在于,所述装置适用于在接入点上进行操作。
4.如权利要求1所述装置,其特征在于,所述装置适用于在接入终端中进行操作。
5.如权利要求1所述装置,其特征在于,所述装置适用于在W-CDMA系统中进行操作。
6.一种KASUMI循环器电路,用于接收64位输入并产生64位输出,该KASUMI循环器电路包括:
具有FO输出的FO电路;
具有FL输出的FL电路;
XOR门电路,具有第一XOR操作数、第二XOR操作数和XOR输出;
具有第一寄存器输出的第一寄存器;
第二寄存器,其具有第二寄存器输出,所述第二寄存器用于接收所述XOR输出,所述第二寄存器输出与所述第一寄存器输出相连接以产生所述64位输出;
第一输入多路复用器,其具有第一输入多路复用器输出,所述第一输入多路复用器用于根据一输入选择信号的控制在所述64位输入的上半部分和所述第二寄存器输出之间进行选择,在所述第一寄存器接收所述第一输入多路复用器输出;
第二输入多路复用器,其具有第二输入多路复用器输出,所述第二输入多路复用器用于根据所述输入选择信号的控制在所述64位输入的下半部分和所述第一寄存器输出之间进行选择,所述第二输入多路复用器输出被传输作为所述第二XOR操作数;
第一数据路径多路复用器,其具有第一数据路径多路复用器输出,所述第一数据路径多路复用器用于根据一数据流信号的控制在所述第一输入多路复用器输出和所述FO输出之间进行选择,所述第一数据路径多路复用器输出被传输至所述FL电路;
第二数据路径多路复用器,其具有第二数据路径多路复用器输出,所述第二数据路径多路复用器用于根据所述数据流信号的控制在所述FL输出和所述第一寄存器输出之间进行选择,所述第二数据路径多路复用器输出传输至所述FO电路;以及
第三数据路径多路复用器,其具有第三数据路径多路复用器输出,第三数据路径多路复用器用于根据所述数据流信号的控制在所述FL输出和所述FO输出之间进行选择。
7.一种装置,用于接收32位输入并产生32位输出,所述装置包括:
第一XOR门,其具有第一操作数、第二操作数和第一XOR输出,所述第一XOR门的第一操作数用于接收一KO子密钥;
FI电路,其具有FI输入和FI输出,所述FI输入用于接收所述第一XOR输出;
第二XOR门,其具有第一操作数、第二操作数和第二XOR输出,所述第二XOR门的第一操作数用于接收所述FI输出;
第一寄存器,其具有第一寄存器输出,所述第一寄存器用于接收所述第二XOR输出;
第二寄存器,其具有第二寄存器输入和第二寄存器输出;
第一输入复用器,其具有第一输入多路复用器输出,所述第一输入复用器用于根据一输入选择信号的控制在所述32位输入的上半部分和所述第二寄存器输出之间进行选择,所述第一输入多路复用器输出被传输至所述第一XOR门的第二操作数;以及,
第二输入复用器,其具有第二输入多路复用器输出,所述第二输入复用器用于根据所述输入选择信号的控制在所述32位输入的下半部分和所述第一寄存器输出之间进行选择,所述第二输入多路复用器输出被传输作为所述第二XOR门的第二操作数,并被传输作为第二寄存器输入,所述第二输入多路复用器输出与第二XOR输出相串接以产生所述32位输出。
8.一种装置,用于接收16位输入并产生16位输出,所述装置包括:
第一寄存器,其具有第一寄存器输入和第一寄存器输出;
第二寄存器,其具有第二寄存器输入和第二寄存器输出;
第一输入多路复用器,其具有第一输入多路复用器输出,所述第一输入多路复用器用于根据一输入选择信号的控制在所述第一寄存器输出和所述16位输入的上9位之间进行选择;
第二输入多路复用器,其具有第二输入多路复用器输出,所述第二输入多路复用器用于根据所述输入选择信号的控制在所述第二寄存器输出和所述16位输入的下7位之间进行选择;
S9电路,其具有S9输出,用于接收所述第一输入多路复用器输出;
第一XOR,其具有第一操作数、第二操作数和第一XOR输出,所述第一XOR的第一操作数用于接收所述S9输出,而所述第一XOR的第二操作数用于接收加零延伸的第二输入多路复用器输出;
S7电路,其具有S7输出,用于接收所述第二输入多路复用器输出;
第二XOR,其具有第一操作数、第二操作数和第二XOR输出,所述第二XOR的第一操作数用于接收截断的第一XOR输出,而所述第二XOR的第二操作数用于接收所述S7输出,所述第二XOR输出与所述第一XOR输出相串接,以产生所述16位输出;
第三XOR,其具有第一操作数、第二操作数和第三XOR输出,所述第三XOR输出传输至所述第一寄存器输入,所述第三XOR的第一操作数用于接收第一KI子密钥,而所述第三XOR的第二操作数用于接收所述第一XOR输出;和
第四XOR,其具有第一操作数、第二操作数和第四XOR输出,所述第四XOR输出传输至所述第二寄存器输入,所述第四XOR的第一操作数用于接收第二KI子密钥,而所述第四XOR的第二操作数用于接收所述第二XOR输出。
9.一种用于对KASUMI输入执行KASUMI加密以产生KASUMI输出的方法,所述KASUMI输入具有上半部分和下半部分,该方法包括:
对于八个循环中的每个循环,在计算控制器中产生选择信号:
根据所述选择信号选择计算输入,其中在第一循环中将KASUMI输入选择为所述计算输入,而在后续循环中将所存储的结果选择为所述计算输入;
在KASUMI循环器电路中用所选择的计算输入计算局部结果;
将所述局部结果存储于存储器中作为所述所存储的结果;以及
在存储八个局部结果后,将所存储的结果作为所述KASUMI输出来传输。
10.如权利要求9所述方法,其特征在于,所述计算步骤包括:
当所述循环是奇数时:
对所选择的计算输入的上半部分执行所述FL功能,以产生FL输出;
对所述FL输出执行FO功能以产生FO输出;以及,
将所述FO输出与所选择的计算输入的下半部分进行XOR操作,以产生XOR输出;
当所述循环是偶数时:
对所存储的结果的上半部分执行所述FO功能以产生FO输出;
对所述FO输出执行所述FL功能以产生FL输出;以及,
将所述FL输出与所存储的结果的下半部分进行XOR操作以产生XOR输出;
将所述XOR输出与所选择的计算输入的上半部分相串接,作为所述局部结果来传输。
11.如权利要求9所述方法,还包括对于每一循环产生子密钥。
12.一种用于执行FO功能的方法,该方法包括:
对于三级中的每一级:
在第一级中选择一输入作为计算输入;
在后续级中选择所存储的结果作为所述计算输入;
利用所选择的计算输入计算局部结果;
将所述局部结果存储于存储器中作为所述所存储的结果;以及,
将所述局部结果作为输出来传输。
13.如权利要求12所述方法,其特征在于,所述计算步骤包括:
将所选择的计算输入的上半部分与一子密钥进行XOR操作以形成第一XOR结果;
对所述第一XOR结果执行FI功能以形成FI结果;
将所述FI结果与所选择的计算输入的下半部分进行XOR操作以形成第二XOR结果;以及
将所选择的计算输入的上半部分与所述第二XOR输出相串接而作为所述局部结果来传输。
14.一种执行FI功能的方法,该方法包括:
利用局部结果电路使用一输入来计算第一局部结果;
将所述第一局部结果与一子密钥进行XOR操作以形成XOR的局部结果;
将所述XOR的局部结果存储于存储器中作为所存储的结果;
利用所述局部结果电路使用所述所存储的结果来计算第二局部结果;以及
将所述第二局部结果作为输出来传输。
15.如权利要求14所述方法,其特征在于,所述局部结果电路还用于执行以下步骤:
对所述输入或所存储的结果的上9位执行S9功能;
对所述输入或所存储的结果的下7位进行加零延伸;
将加零延伸的输入或存储结果与所述S9功能的输出进行XOR操作以形成第一XOR结果;
对所述输入或所存储的结果的下7位执行S7功能;
截断所述XOR结果;
将截断的第一XOR结果与所述S7功能的输出进行XOR操作以形成第二XOR结果;
将所述第二XOR结果与所述第一XOR结果相串接,作为所述局部结果来传输。
CNB028140354A 2001-05-31 2002-05-31 进行kasumi计算的装置和方法 Expired - Lifetime CN1321506C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29495801P 2001-05-31 2001-05-31
US60/294,958 2001-05-31
US09/920,784 2001-08-01
US09/920,784 US7212631B2 (en) 2001-05-31 2001-08-01 Apparatus and method for performing KASUMI ciphering

Publications (2)

Publication Number Publication Date
CN1528066A CN1528066A (zh) 2004-09-08
CN1321506C true CN1321506C (zh) 2007-06-13

Family

ID=26968838

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028140354A Expired - Lifetime CN1321506C (zh) 2001-05-31 2002-05-31 进行kasumi计算的装置和方法

Country Status (7)

Country Link
US (1) US7212631B2 (zh)
JP (4) JP2005517967A (zh)
KR (1) KR100895224B1 (zh)
CN (1) CN1321506C (zh)
AU (1) AU2002259318A1 (zh)
HK (1) HK1066357A1 (zh)
WO (1) WO2002098052A2 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100423811B1 (ko) * 2001-12-12 2004-03-22 한국전자통신연구원 카스미 암호화 알고리즘을 응용한 암호화 장치
US7796752B2 (en) * 2002-11-04 2010-09-14 Marvell International Ltd. Cipher implementation
KR100516548B1 (ko) * 2003-02-05 2005-09-22 삼성전자주식회사 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치
US7580519B1 (en) 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7545928B1 (en) * 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
US20050163313A1 (en) * 2004-01-23 2005-07-28 Roger Maitland Methods and apparatus for parallel implementations of table look-ups and ciphering
US7433469B2 (en) * 2004-04-27 2008-10-07 Intel Corporation Apparatus and method for implementing the KASUMI ciphering process
US7885405B1 (en) 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7561689B2 (en) * 2004-06-17 2009-07-14 Agere Systems Inc. Generating keys having one of a number of key sizes
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
US20060013387A1 (en) * 2004-07-14 2006-01-19 Ruei-Shiang Suen Method and system for implementing KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
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
US7688972B2 (en) * 2004-07-14 2010-03-30 Broadcom Corporation Method and system for implementing FO function in KASUMI algorithm for accelerating cryptography in GSM (global system for mobile communication)GPRS (general packet radio service)edge(enhanced data rate for GSM evolution) compliant handsets
US20060037995A1 (en) * 2004-08-20 2006-02-23 Texas Instruments Incorporated Heatslug to leadframe attachment
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
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
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
US8111825B2 (en) 2005-06-30 2012-02-07 Freescale Semiconductor, Inc. Encryption apparatus and method therefor
US8553876B1 (en) * 2007-10-23 2013-10-08 Oracle America, Inc. High performance cryptography on chip multithreading processors
CN100581101C (zh) * 2007-11-19 2010-01-13 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理设备
GB0724438D0 (en) * 2007-12-14 2008-01-30 Icera Inc Kasumi algorithm implementation
WO2009090689A1 (ja) * 2008-01-18 2009-07-23 Fujitsu Limited 暗号化装置、暗号化方法及びプログラム
EP2237245B1 (en) * 2008-01-18 2017-07-19 Fujitsu Limited Processor of data conversion function
CN101237321B (zh) * 2008-02-03 2010-12-08 西北农林科技大学 基于循环队列移位规则的加密方法
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687238A (en) * 1994-12-22 1997-11-11 Nec Corporation Small size product cipher apparatus
CN1228183A (zh) * 1997-05-30 1999-09-08 三菱电机株式会社 密码处理装置、集成电路卡及密码处理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916651A (en) * 1988-01-29 1990-04-10 Texas Instruments Incorporated Floating point processor architecture
JPH02224516A (ja) * 1989-02-27 1990-09-06 Nec Corp 適応信号処理回路
US5381480A (en) * 1993-09-20 1995-01-10 International Business Machines Corporation System for translating encrypted data
JPH11242433A (ja) * 1995-09-05 1999-09-07 Mitsubishi Electric Corp デ―タ変換装置及びデ―タ変換方法
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
JP3992888B2 (ja) * 1999-09-09 2007-10-17 三菱電機株式会社 暗号処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687238A (en) * 1994-12-22 1997-11-11 Nec Corporation Small size product cipher apparatus
CN1228183A (zh) * 1997-05-30 1999-09-08 三菱电机株式会社 密码处理装置、集成电路卡及密码处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CRYPTANNALYSIS OF REDUCED-ROUND MISTY KUHN U,ADVANCES IN CRYPTOLOGY.EUROCRYPT 2001 *

Also Published As

Publication number Publication date
JP2008158542A (ja) 2008-07-10
HK1066357A1 (en) 2005-03-18
WO2002098052A2 (en) 2002-12-05
AU2002259318A1 (en) 2002-12-09
KR100895224B1 (ko) 2009-05-04
US7212631B2 (en) 2007-05-01
JP2008158541A (ja) 2008-07-10
WO2002098052A3 (en) 2003-02-06
JP2008148352A (ja) 2008-06-26
US20020186841A1 (en) 2002-12-12
KR20040004679A (ko) 2004-01-13
CN1528066A (zh) 2004-09-08
JP2005517967A (ja) 2005-06-16

Similar Documents

Publication Publication Date Title
CN1321506C (zh) 进行kasumi计算的装置和方法
US6088800A (en) Encryption processor with shared memory interconnect
EP1271839B1 (en) AES Encryption circuit
US5222139A (en) Cryptographic method and apparatus
US6014446A (en) Apparatus for providing improved encryption protection in a communication system
Schneier et al. Performance comparison of the AES submissions
US6226382B1 (en) Method for implementing a private-key communication protocol between two processing devices
Moldovyan et al. A cipher based on data-dependent permutations
WO2001086860A1 (en) Stream-cipher method and apparatus
CN1964257A (zh) 用于利用共享硬件生成密文和消息认证代码的方法和系统
GB2318709A (en) Private key with random and sequential components
WO2002046890A2 (en) System and method for protecting computer software from a white box attack
CN105959107B (zh) 一种新型高安全的轻量级sfn分组密码实现方法
WO2001076129A2 (en) Scalable cryptographic engine
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
CN102377563B (zh) 加密数据流的方法及设备
CN108400866B (zh) 一种粗粒度可重构密码逻辑阵列
WO2008064704A1 (en) Method and device for preventing information leakage attacks on a device implementing a cryptographic function
CN116318669A (zh) 一种基于窄带物联网的轻量级加密方法
CN100393026C (zh) 二进制数据块加密变换方法
US20030152233A1 (en) Method of encryption
CN1795637B (zh) 用于密钥扩展功能的低速存储器硬件实施的方法和设备
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
CN113343276B (zh) 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法
RU2186467C2 (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1066357

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20070613