CN1276939A - 产生加密流密码的方法和设备 - Google Patents
产生加密流密码的方法和设备 Download PDFInfo
- Publication number
- CN1276939A CN1276939A CN98810477A CN98810477A CN1276939A CN 1276939 A CN1276939 A CN 1276939A CN 98810477 A CN98810477 A CN 98810477A CN 98810477 A CN98810477 A CN 98810477A CN 1276939 A CN1276939 A CN 1276939A
- Authority
- CN
- China
- Prior art keywords
- recurrence relation
- key
- shift register
- stream cipher
- generator
- 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.)
- Withdrawn
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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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
-
- 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/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
一种用于产生加密流密码的方法和设备。设计递归关系,已在大于GF(2)的有限域内运作,并且具有最大长度。输出方程根据用来实现递归关系的移位寄存器(82)中的多个元素而产生输出。选择递归关系和输出方程,以具有不同的对距离,从而当移位寄存器(82)移位时,无论在递归关系还是输出方程中,没有一个移位寄存器(82)的特殊元素对被使用两次。
Description
发明背景
I.发明领域
本发明涉及加密。说得更详细些,本发明涉及产生加密流密码的方法和设备。II.有关技术的描述
加密是这样的过程,由此用一种随机过程来处理数据,从而除了目标接收者之外的所有的接收者都不可懂得它。对于数字化数据的一种加密方法是通过使用流密码。通过取要被加密的数据和由加密算法产生的伪随机位(或加密位流),并将它们加以组合,流密码通常与“异”(exclusive-or,XOR)操作一起工作。解密只是产生相同的加密位流并且用相应的操作从经过加密的数据去除加密位流。如果XOR操作在加密侧进行,则在解密侧亦进行相同的XOR操作。对于保密加密,加密位流必须在计算上难以预测。
用于产生伪随机数流的许多技术基于二阶Galois(伽罗瓦)有限域的线性反馈移位寄存器(LFSR)。这是2n阶Galios有限域的特殊情形,这里n是正整数。对于n=1,Galois域的元素包括位值零和一。通过把二进制位移过一位位置,并且计算新的输出位,来更新寄存器。把新的位移入寄存器。对于Fibonacci(斐波那契)寄存器,输出位是寄存器中的位的线性函数。对于Galois寄存器,按照刚从寄存器移出的输出位,更新许多位。在数学上,Fibonacci和Galois寄存器构造是等效的。
包括在产生伪随机数流中的操作(即,位移和位提取),在硬件中是高效能的,而在软件或使用通用处理器或微处理器的其他实施中是低效能的。当位移寄存器的长度超过用于产生流的处理器中的寄存器的长度时,效能更低。此外,对于n=0,对于每组操作只产生一个输出位,这又导致使用处理器的效能很低。
使用密码流的一种例示的应用是无线电话。一种例示的无线电话通信系统是码分多址(CDMA)系统。在名称为“使用卫星或地面中继站的扩展频谱多址通信系统”的第4,901,307号美国专利中揭示了CDMA系统的操作,该专利转让给了本发明的受让人,并且通过参照而引用于此。在名称为“在CDMA蜂窝电话系统中产生信号波形的系统和方法”的第5,103,459号美国专利中进一步揭示了CDMA系统,该专利转让给了本发明的受让人,并且通过参照而引用于此。另一个CDMA系统包括使用低地球轨道卫星的用于全球通信的GLOBASTAR通信系统。其他的无线电话系统包括时分多址(TDMA)系统和频分多址(FDMA)系统。能够设计CDMA系统,使之符合“用于双模式宽带扩展频谱蜂窝系统的TIA/EIA/IS-95移动电台-基站相容性标准”,下面将此标准称为IS-95标准。类似地,能够设计TDMA系统,以符合TIA/EIA/IS-54(TDMA)标准或欧洲移动通信全球系统(GSM)标准。
由于在远地电台中缺少计算能力而妨碍了无线电话中的数字化语音数据的加密。这导致了弱加密过程,诸如在TDMA标准中使用的语音保密屏蔽(Voice PrivacyMask),或者导致了硬件产生的流密码,诸如在GSM标准中使用的A5密码。基于硬件的流密码的缺点是硬件的额外的制造成本以及包括在加密过程需要改变的事件中的较长的时间和较高的成本。因为在无线电话系统和数字电话中的远地电台包括微处理器和存储器,因此一种快速和使用极少存储器的流密码很适合这些应用。
发明概述
本发明是一种用于产生加密流密码的新颖而改进的方法和设备。按照本发明,设计出一种递归关系(recurrence relation),以在大于GF(2)的有限域内操作。使用循环缓冲器或滑动窗口能够实现用来实施递归关系的线性反馈移位寄存器。在例示的实施例中,使用查找表(lookup table)实施有限域元素的乘法。通过使用施加至线性反馈移位寄存器的状态的一个非线性过程或非线性过程的组合,能够得到密码保密输出。能够设计支持多层密钥控制(multi-tier keying)的流密码,来适合使用流密码的应用的要求。
本发明的一个目的是使用递归关系和输出具有不同的对距离的式子。当用来实施递归关系的移位寄存器移位时,不同的对距离确保在递归关系或非线性输出式子中,位移寄存器中没有一对特殊的元素被使用二次。这一性质从输出式子中去除了输出的线性。
本发明的另一个目的是使用具有最大长度的递归关系。一个17阶的最大长度递归关系是:Sn+17=141Sn+15Sn+4175Sn,这里运算是在GF(28)内定义的,是对两个位进行“异”运算,而是多项式模数乘法。17阶的递归关系很适合于容纳许多应用所需的128位密钥材料。
附图概述
通过下面结合附图给出的详细描述,本发明的特征、目的和优点将变得更加明显,在这些附图中,在所有的附图中用相同的字符识别相同的部分,其中:
图1是递归关系的例示实施的方框图;
图2是使用处理器的流密码发生器的例示方框图;
图3A和3B是分别示出循环缓冲器在时刻n和时刻n+1的内容的图;
图3C是示出滑动窗口的内容的图;
图4是本发明的例示的流密码发生器的方框图;
图5是本发明的例示的秘密密钥初始化过程的流程图;
图6是本发明的例示的每帧初始化过程的流程图;
图7是本发明的另一个例示的流密码发生器的方框图;以及
图8是本发明的另一个例示的每帧初始化过程的流程图。
较佳实施例的详细描述
线性反馈位移寄存器(LFSR)基于Galois域的递归关系,在那里,输出序列由下面的递归关系确定:
Sn+k=Ck-1Sn+k-1+Ck-2Sn+k-2+...+C1Sn+1+CoSn (1)这里Sn+k是输出元素,Cj是常系数,k是递归关系的阶,而n是索引(以次数为单位)。状态变量S和系数C是基础的(underlying)有限域的元素。有时给出式(1)时还带有一个常数项,在说明书中略去这个常数项。
在图1中示出式(1)的递归关系的例示实施的方框图。对于k阶递归关系,寄存器12包括k个元素Sn至Sn+k-1。把这些元素提供给Galois域乘法器14,它将该元素与常数Cj相乘。从乘法器14得到的乘积提供给Galois域加法器16,它将这些乘积相加,以提供输出元素。
对于n=1,GF(2)的元素包括单个位(具有0或1的值),而式(1)的运算需要许多逐位(bit-wise)运算。在此情形中,使用通用处理器来实施递归关系是低效能的,因为使用处理器(它设计来处理字节或字长的对象)来进行许多单个位的运算。
在本发明中,设计了线性反馈位移寄存器,以在大于GF(2)的有限域内操作。特别,通过选择更适合处理器的有限域,能够达到更有效能的实施。在例示的实施例中,选出的有限域是具有256个元素的Galois域(GF(28))或者具有2n元素的其他的Galois域,这里n是处理器的字长。
在较佳的实施例中,使用具有256个元素的Galois域(GF(28))。这导致递归关系的每个元素和系数占有存储器的一个字节。能够由处理器有效能地进行字节处理。此外,对于相等数量的状态编码的递归关系的阶k降低了一个因数n,或者对于GF(28)降低了8。
在本发明中,为了得到优化的结果而使用最大长度递归关系。最大长度是指在重复之前的输出序列的长度(或寄存器的状态数)。对于k阶递归关系,最大长度是Nk-1,这里,N是基础的有限域的元素的数目,而在本实施例中N=256。全零状态是不允许的。
在图2中示出使用处理器的流密码发生器的例示的方框图。控制器20连至处理器22,并且包括指引处理器22操作的指令组。于是,控制器20能够包括软件程序或一组微码。处理器22是进行发生器所需处理的硬件。处理器22能够作为微控制器、微处理器、或设计来进行这里描述的功能的数字信号处理器来实现。存储器元件24连至处理器22,并且用于实现线性反馈移位寄存器和存储下面要描述的预先算得的表和指令。存储器元件24能够用随机存取存储器或设计来进行这里描述的功能的其他存储器装置来实现。能够把指令和表存储在只读存储器中,在执行算法时,只有用于寄存器本身的存储器需要变更。I.产生非线性输出流
对于流密码可能难于正确地使用线性反馈移位寄存器。这是因为能够利用保留在输出流中的任何线性以得出在某个时刻的寄存器的状态。然后根据需要向前或先后驱动寄存器,以恢复输出流。能够使用许多种技术通过使用线性反馈移位寄存器产生非线性流密码。在例示的实施例中,这些非线性技术包括:寄存器的断续运作(stuttering)(或不可预测地抽取);对于寄存器状态使用非线性函数;使用多个寄存器和寄存器的输出的非线性组合;对于一个寄存器使用可变反馈多项式;以及其他非线性过程。在下面描述这些技术的每种技术。用下面的例子理说明某些技术。能够使用其他技术来产生非线性流密码,这在本发明的范围内。
断续运作是这样一种过程,寄存器由此以可变和不可预测的方式计时。断续运作实现起来简单而效果良好。采用断续运作,与寄存器的某些状态相关联的输出不提供给流密码,因此使得根据流密码重建寄存器的状态更加困难。
对于移位寄存器的状态使用非线性函数也能提供良好的结果。如式(1)所定义的那样, 对于递归关系,输出元素是根据寄存器的状态的线性函数和系数产生的。为了提供非线性,可以根据寄存器的状态的非线性函数产生输出元素。特别,能够利用这些非线性函数,它对通用处理器上的字节长或字长的数据进行运算。
使用多个移位寄存器并且以非线性的方式把来自寄存器的输出加以组合,能够提供良好的结果。能够以硬件且额外成本最低的方式容易地实现多个寄存器,并且可以使这些寄存器并行运行,以保持相同的运行速度。为了在通用处理器上加以实现,能够使用用以实现多个移位寄存器的单个较大的移位寄存器,因为能够在恒定的时刻更新此较大的移位寄存器(不减低总的速度)。
使用可变反馈多项式(它以不可预测的方式对一个寄存器进行改变),也能提供良好的结果。能够按随机的顺序交换不同的多项式,或者以随机的方式改变多项式。如果作专门的设计,能够使这种技术的实现变得简单。II.对较大阶数的有限域的元素的操作
Galois域GF(28)包括256个元素。能够以数种不同的方法之一来表示Galois域GF(28)的元素。一种普通和标准的表示是根据所有低于8阶的多项式的模2系数来构造域。即,域的元素α能够用一个带有二进制位(a7,a6,...,a0)的字节来表示,这里,二进制位(a7,a6,...,a0)表示下述多项式:
a7x7+a6x6+...+a1x+a0 (2)这些二进制位也称为多项式的系数。能够通过对相应的系数(a7,a6,...,a0)的每个系数进行加法模2来完成对于两个用式(2)表示的多项式的加法运算。换句话说,通过对两个字节进行“异”运算能够得到对于两个字节的加法运算。具有全零系数(0,0,...,0)的多项式是加法单位元(additive identity)。
通过用模2系数的标准多项式乘法能够进行域内的乘法。然而,两个n阶多项式的乘法产生了一个(2n-1)阶的得到的多项式,需要使之缩减为n阶多项式。在例示的实施例中,通过把得到的多项式除以不可约(irreducible)多项式,舍弃商数,而把余数保留为缩减的多项式的办法来达到缩减。不可约多项式的选取改变了组的元素至存储器中的经过编码的字节的映射,但不影响实际的组运算。在例示的实施例这,8阶的不可约多项式选为:
x8+x6+x3+x2+1 (3)也能使用其他的8阶不可约首(项系数为)一的多项式,并在本发明的范围内。乘法单位元(multiplicative identity element)是(a7,a6,...,a0)=(0,0,...,1)。
多项式乘法和随后的缩减是在通用处理器上的复杂操作。然而,对于具有中等元素数目的Galois域来说,能够通过查找表和更简单的运算来完成这些操作。在例示的实施例中,通过取两个操作数的每个操作数的对数,把对数作加法模255,以及把经过组合的对数值取指数,能够完成域内的乘法(非零元素的)。能够把缩减包括就在查找表中。
能够用下述的方法产生指数表和对数表。首先,确定乘法子组GF(28)的发生器g。此刻,字节值g=2(代表多项式x)是发生器。适于表1的指数表是值gi(对于i=0,1,2,...,28-1)的值的256字节表。对于小于256的gi(考虑为整数),由表1的第一行的开头8个值使指数值正如所料的那样显然(as expected as evidenced)。因为g=2,表中的每个值是紧靠左的值的2倍(计及这样的事实,即,表1绕至下一行)。然而,对于大于255的每个gi,由式(3)所示的不可约多项式来缩减指数。例如,指数x8(第一行,第九列)由不可约多项式x8+x6+x3+x2+1缩减为余数-x6-x3-x2-1。对于模2运算,这个余数等价于x6+x3+x2+1,并且在表1中表示为77(x6+x3+x2+1)。重复这个过程,直至对于所有的索引i=0至255,计算出了gi。
在确定了指数表之后,能够把对数表作为指数表之逆加以计算。在表中,对于每个索引i,用一个不可约多项式得到结果,有唯一的与指数值gi一一对应的变换(mapping)。对于表1,变换是i2i,或者存储在第i个位置的值是2i。对于两边取对数,导致下面的结果:log2(i)i。这两个变换指出,如果把指数表第i位置的内容用作对数表的索引,则此索引的对数是指数表的索引。例如,对于i=254,指数值2i=2254=166,如表1的最后一行,第五列所示。两边取log2得到254=log2(166)。于是在对数表中,把对于索引i=166的值设置为254。重复这个过程,直至在对数表中的所有的值都被变换。0的log是未定义的数。在例示的实施例中,用零作为位置的占有者。
在定义了指数表和对数表之后,通过在对数表中查找两个操作数的每个操作数的对数,用模255把这两个对数相加,再通过查找指数表得出相加后的对数值的指数,就能够进行在域中的乘法(非零元素的)。于是,用三个查找操作和一个截尾加法能够进行域中的乘法运算。在例示的Galois域GF(28)中,每个表是255个字节长,并且能够预先计算和存储在存储器中。在例示的实施例中,对数表具有在位置0处的不用的值,以避免需要从索引减去1。注意,当有一个操作数为零时,对数表中的相应的值不表示真实值。为了提供正确的结果,需要测试每个操作数,来看它是否为零,在该情形中,在进行所述的乘法运算之前,结果是零。
对于使用递归关系从线性反馈移位寄存器产生输出元素而言,情形较简单,因为系数Cj是常数,如式(1)所示。对于有效能的实现,不管是否可能,把这些系数选为0或1。当Cj具有不为0或1的值时,对于乘法ti=Cj·i,这里i=0,1,2,...,28-1,能够预先算出一个表。此刻,用单个表查找而不测试,能够进行乘法运算。这个表是固定的,因而能够存储在于只读存储器中。
表1-指数表
i | xx0 | xx1 | xx2 | xx3 | xx4 | xx5 | xx6 | xx7 | xx8 | xx9 |
00x | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 77 | 154 |
01x | 121 | 242 | 169 | 31 | 62 | 124 | 248 | 189 | 55 | 110 |
02x | 220 | 245 | 167 | 3 | 6 | 12 | 24 | 48 | 96 | 192 |
03x | 205 | 215 | 227 | 139 | 91 | 182 | 33 | 66 | 132 | 69 |
04x | 138 | 89 | 178 | 41 | 82 | 164 | 5 | 10 | 20 | 40 |
05x | 80 | 160 | 13 | 26 | 52 | 104 | 208 | 237 | 151 | 99 |
06x | 198 | 193 | 207 | 211 | 235 | 155 | 123 | 246 | 161 | 15 |
07x | 30 | 60 | 120 | 240 | 173 | 23 | 46 | 92 | 184 | 61 |
08x | 122 | 244 | 165 | 7 | 14 | 28 | 56 | 112 | 224 | 141 |
09x | 87 | 174 | 17 | 34 | 68 | 136 | 93 | 186 | 57 | 114 |
10x | 228 | 133 | 71 | 142 | 81 | 162 | 9 | 18 | 36 | 72 |
11x | 144 | 109 | 218 | 249 | 191 | 51 | 102 | 204 | 213 | 231 |
12x | 131 | 75 | 150 | 97 | 194 | 201 | 223 | 243 | 171 | 27 |
13x | 54 | 108 | 216 | 253 | 183 | 35 | 70 | 140 | 85 | 170 |
14x | 25 | 50 | 100 | 200 | 221 | 247 | 163 | 11 | 22 | 44 |
15x | 88 | 176 | 45 | 90 | 180 | 37 | 74 | 148 | 101 | 202 |
16x | 217 | 255 | 179 | 43 | 86 | 172 | 21 | 42 | 84 | 168 |
17x | 29 | 58 | 116 | 232 | 157 | 119 | 238 | 145 | 111 | 222 |
18x | 241 | 175 | 19 | 38 | 76 | 152 | 125 | 250 | 185 | 63 |
19x | 126 | 252 | 181 | 39 | 78 | 156 | 117 | 234 | 153 | 127 |
20x | 254 | 177 | 47 | 94 | 188 | 53 | 106 | 212 | 229 | 135 |
21x | 67 | 134 | 65 | 130 | 73 | 146 | 105 | 210 | 233 | 159 |
22x | 115 | 230 | 129 | 79 | 158 | 113 | 226 | 137 | 95 | 190 |
23x | 49 | 98 | 196 | 197 | 199 | 195 | 203 | 219 | 251 | 187 |
24x | 59 | 118 | 236 | 149 | 103 | 206 | 209 | 239 | 147 | 107 |
25x | 214 | 225 | 143 | 83 | 166 |
表2-对数表
III.存储器实现
i | xx0 | xx1 | xx2 | xx3 | xx4 | xx5 | xx6 | xx7 | xx8 | xx9 |
00x | 0 | 0 | 1 | 23 | 2 | 46 | 24 | 83 | 3 | 106 |
01x | 47 | 147 | 25 | 52 | 84 | 69 | 4 | 92 | 107 | 182 |
02x | 48 | 166 | 148 | 75 | 26 | 140 | 53 | 129 | 85 | 170 |
03x | 70 | 13 | 5 | 36 | 93 | 135 | 108 | 155 | 183 | 193 |
04x | 49 | 43 | 167 | 163 | 149 | 152 | 76 | 202 | 27 | 230 |
05x | 141 | 115 | 54 | 205 | 130 | 18 | 86 | 98 | 171 | 240 |
06x | 71 | 79 | 14 | 189 | 6 | 212 | 37 | 210 | 94 | 39 |
07x | 136 | 102 | 109 | 214 | 156 | 121 | 184 | 8 | 194 | 223 |
08x | 50 | 104 | 44 | 253 | 168 | 138 | 164 | 90 | 150 | 41 |
09x | 153 | 34 | 77 | 96 | 203 | 228 | 28 | 123 | 231 | 59 |
10x | 142 | 158 | 116 | 244 | 55 | 216 | 206 | 249 | 131 | 111 |
11x | 19 | 178 | 87 | 225 | 99 | 220 | 172 | 196 | 241 | 175 |
12x | 72 | 10 | 80 | 66 | 15 | 186 | 190 | 199 | 7 | 222 |
13x | 213 | 120 | 38 | 101 | 211 | 209 | 95 | 227 | 40 | 33 |
14x | 137 | 89 | 103 | 252 | 110 | 177 | 215 | 248 | 157 | 243 |
15x | 122 | 58 | 185 | 198 | 9 | 65 | 195 | 174 | 224 | 219 |
16x | 51 | 68 | 105 | 146 | 45 | 82 | 254 | 22 | 169 | 12 |
17x | 139 | 128 | 165 | 74 | 91 | 181 | 151 | 201 | 42 | 162 |
18x | 154 | 192 | 35 | 134 | 78 | 188 | 97 | 239 | 204 | 17 |
19x | 229 | 114 | 29 | 61 | 124 | 235 | 232 | 233 | 60 | 234 |
20x | 143 | 125 | 159 | 236 | 117 | 30 | 245 | 62 | 56 | 246 |
21x | 217 | 63 | 207 | 118 | 250 | 31 | 132 | 160 | 112 | 237 |
22x | 20 | 144 | 179 | 126 | 88 | 251 | 226 | 32 | 100 | 208 |
23x | 221 | 119 | 173 | 218 | 197 | 64 | 242 | 57 | 176 | 247 |
24x | 73 | 180 | 11 | 127 | 81 | 21 | 67 | 145 | 16 | 113 |
25x | 187 | 238 | 191 | 133 | 200 | 161 |
当以硬件的方式实现时,二进制位移位是一个简单而有效的操作。使用处理器,并且对于比处理器的寄存器大的移位寄存器,二进制位移位是一个迭代过程,其效能很低。当要移位的单元是字节或字时,移位变得较简单,这是因为在字节之间没有进位。然而,移位过程仍然是迭代的和低效能的。
在例示的实施例中,线性反馈移位寄存器是用循环缓冲器或滑动窗来实现的。在图3A和3B中分别示出在时刻n和n+1的循环缓冲器的内容的图解。对于循环缓冲器24a,把移位寄存器的每个元素存储在存储器的相应的位置中。单个的索引(或指针30)保持存储在存储器中的最新元素的存储器位置,在图3A中,该位置是Sk-1。在时刻n+1,计算新的元素Sk,并且经存储器中的最老的元素S0加以存储,如图3B所示。于是,不是移位存储器中的所有的元素,而是指针30移至新元素Sk的存储器位置。当指针30到达循环缓冲器24a的末尾时,把它复位至开始(如图3A和3B所示)。于是,循环缓冲器24a的作用有如是圆而不是直线。
循环缓冲器24a能够从左至右移位,或者从右至左移位,如图3A和3B所示。相应地,指针30能够从左至右或从右至左移动,如图3A和3B所示。移位方向的选择只是实现式样的问题,不影响输出结果。
为了按照递归关系产生输出元素,一般从存储器需要一个以上的元素。能够用一个单独的指针来指出与每个所需元素相关联的存储器位置,当寄存器移位时,更新该指针。另一种做法是,当需要时,根据指针30能够计算出与每个所需元素相关联的存储器位置。因为每个元素与存储器位置之间有一一对应的变换关系,因此通过确定一个元素对于最新元素的偏离(按照递归关系),把该偏离加至指针30,并且对由更新的指针指出的存储器位置寻址,就能够得到该特别的元素。由于存储器的圆形性质,通过对于指针30偏离的加法模k,确定了被更新指针的计算。当k是2的乘幂时,加法模k对处理器的操作是简单的,但在其他情形中,是低效能的操作。
在较佳的实施例中,移位寄存器用图3C所示的滑动窗24b来实现。滑动窗24b的长度至少是循环缓冲器24a的两倍,并且包括两个相互邻接的循环缓冲器32a和32b。每个循环缓冲器32a和32b的作用就象上述的圆形的24a一样。循环缓冲器32b是循环缓冲器32a的严格的复制品。于是,移位寄存器的每个元素存储在存储器的两个相应的位置中,对于缓冲器32a和32b各一个。指针34保持存储在循环缓冲器32a中的最新元素的存储器位置,该位置在图3C中是Sk-1。在例示的实施例中,指针34在滑动窗24b的中间开始,从右向左移动,并且当到达在左侧的末尾时,它再次停在中间。
从图3C可以看出,不管在循环缓冲器32a中是否出现指针34,先前的k-1个元素能够被寻址至指针34的右边。于是,为了按照递归关系在移位寄存器中对一个元素寻址,把k-1或更小的偏离加至指针34。不需要作加法模k运算,因为经过更新的指针通常朝指针34的右边,因而获得了计算效能。对于这个实现,滑动窗24b可以是任何长度,但至少是循环缓冲器24a的长度的两倍,忽略其任何超出的字节。此外,更新时间是恒定的,并且较短。VI.基于GF(28)内的LFSR的例示的流密码
通过基于在GF(28)范围内的线性反馈移位寄存器的例示的流密码发生器,能够对于本发明给出最好的说明。下面描述的流密码使用了上面描述的在8阶Galois域内的字节操作,用记号和分别表示在Galois域内的加法和乘法。在例示的实施例中,对于与常数Cj的乘法,使用了表查找。在例示的实施例中,为了允许移位寄存器的快速更新,使用了滑动窗。
图4示出了例示的发生器的方框图。在例示的实施例中,线性反馈移位寄存器52的长度是17个8位字节(或136位),这允许移位寄存器52将处于2136-1(或大约8.7×1040)个状态。整个寄存器是0的状态不是有效状态,并且不会从任何其他状态出现该全0状态。不管寄存器52的长度如何,用递归关系中的特定数目的非零元素更新寄存器的时刻是恒定的。于是,能够以存储器中的标称的额外字节的代价来实现寄存器52的额外长度(对于较高阶的递归关系)。
在例示的实施例中,按照下面的递归关系更新线性反馈移位寄存器52:
Sn+17=(100Sn+9)Sn+4(141Sn) (4)这里,运算定义在GF(28)域内,是由Galois加法器58表示的对两个字节的“异”运算,而是由Galois乘法器表示的多项式模乘(见图4)。在例示的实施例中,使用在如上所述的预先计算的表上的字节表查找,来实现对于系数56的模乘。在例示的实施例中,使用由式(3)定义的不可约多项式来计算多项式模乘表。式(4)中的递归关系选为最大长度,具有很少的非零系数,从而所用的移位寄存器元素与用于下面的非线性函数的那些元素不同。
在例示的实施例中,为隐藏移位寄存器52的线性,使用了上述的两种技术,即,断续运作和使用非线性函数。可以使用另外的一些非线性技术,如下所述。
在例示的实施例中,通过对移位寄存器52的多个元素进行非线性运算而引入非线性。在例示的实施例中,使用一个非线性函数来组合移位寄存器52的四个元素。一个例示的非线性函数如下:
Vn=(Sn+Sn+5)×(Sn+2+Sn+12) (5)这里,Vn是非线性输出(或发生器输出),+是由算术加法器60表示的加法截尾模256,而×是由模乘法器62表示的乘法模257,如下所述。在例示的实施例中,所调用四个字节是Sn,Sn+2,Sn+5和Sn+12,其中,Sn是按照式(4)中的递归关系的序列中的最老的算得的元素。选择这些元素,从而当寄存器移位时,在计算两个发生器输出中,不使用两个元素。在这些元素之间的成对的距离由不同的值。例如,当Sn+12通过寄存器52移位时,Sn+12不再与Sn+5,Sn+2或Sn组合。
在GF(28)内,通过在二进制位之间进位,由简单的字节加法,并对其结果作截尾模256,而得到非线性。在例示的实施例中,使用加法模256把寄存器中的两对元素{(Sn和Sn+5)(Sn+2和Sn+12)}加以组合,以得出两个中间结果。然而,加法模256是不理想的,因为最低有效位没有进位输入,因而仍然被线性地组合。
另一个能够在处理器上方便地计算的非线性函数是乘法。然而,标准乘法截尾成单字节不能得到良好的结果,因为乘法模256不构成一个群,这是由于结果在域内的分布不合适。能够使用整数模素数257的域的乘法群。此群由范围为1至256的整数构成,而群运算是整数乘法简约模257。注意,值0不出现在群中,而值256出现在群中。在例示的实施例中,能够由字节值0表示值256。
一般,处理器能够有效能地执行乘法指令,但是许多处理器对于除法或模运算指令没有执行能力,或者不能有效能地执行除法和模运算指令。于是,由257作的模简约可以表示为一个完成瓶颈。然而,能够用其他的可计算的模2n来计算简约模257,这在n=8的情形中对于普通的处理器是有效能的。可以证明,对于在1至216-1范围内的值X(这里X是两个8阶操作数作乘法的结果),能够将简约模257计算为: 这里,X257是X的简约模257,而X256是X的简约模256。式(6)指出,通过从8个最低有效为(X256)减去8个最高有效位(X/256),能够得到16位数的简约模257。减法的结果在-255和255的范围内,并且可以是负的。如果结果是负的,可以进行调节,以通过加257而校正范围。在另一个实施例中,可以用包括65,536个元素(每个元素长8位)查找表来进行简约模257。
两个中间结果的乘法是能够加以利用的多个非线性函数之一。其他的非线性函数(诸如弯曲函数)或组合之前的置换字节值也能用查找表来实现。本发明的目的在于使用这些不同的非线性函数来产生非线性输出。
在例示的实施例中,也使用断续运作来注入附加的非线性。根据上述线性反馈移位寄存器的状态导出的非线性可以用来再重建移位寄存器的状态。由不在发生器的输出端表示某些状态,以及用不可预测的方式来选择这些状态,进行此重建可能更困难。在例示的实施例中,使用非线性输出来确定在输出流中出现非线性输出的哪个后续的字节。当发生器启动后,用第一个输出字节作为断续运作的控制字节。在例示的实施例中,把每个断续运作控制字节分成四对二进制位,并且首先使用最低有效对。当所有四对都被使用后,就使用来自发生器的下一个非线性输出字节作为下一个断续运作控制字节,依此类推。
断续运作控制位的每一对能够取四个值之一。在例示的实施例中,对于每对值所进行的动作列于表3中。
表3
对值 | 发生器的动作 |
(0,0) | 寄存器作循环,但不产生输出 |
(0,1) | 寄存器作循环,并且与常数(01101001)2作“异”运算的非线性输出成为发生器的输出。寄存器再作循环。 |
(1,0) | 寄存器作循环两次,并且非线性输出成为发生器的输出。 |
(1,1) | 寄存器作循环,并且与常数(11000101)2作“异”运算的非线性输出成为发生器的输出。 |
如表3所示,在例示的实施例中,当对值是(0,0)时,寄存器作一次循环,但不产生输出。寄存器的循环表示按照式(4)计算下一个序列输出,并且把这个新元素移入寄存器。然后使用下一个断续运作控制对,来确定下面要采取的动作。在例示的实施例中,当对值是(0,1)时,寄存器作循环,并且按照式(5)产生非线性输出。把非线性输出与常数(01101001)2作“异”运算,并把结果作为发生器输出提供。然后,寄存器再作循环。在图4中,由“异”门66完成“异”功能,而由多路复用器(MUX)64使用来自缓冲器70的断续运作控制对来选择常数。把从XOR门66的输出提供给开关68,该开关按照断续运作控制对的值提供发生器输出和用于断续运作控制的输出字节。把用于断续运作控制的输出字节提供给缓冲器70。
在例示的实施例中,当对值是(1,0)时,寄存器循环两次,并且把按照式(5)产生的非线性输出作为发生器输出提供。
在例示的实施例中,当对值是(1,1)时,寄存器作循环,并且按照式(5)产生非线性输出。然后把该非线性输出与常数(11000101)2作“异”运算,并把结果作为发生器输出提供。
在例示的实施例中,如此选择用于上述步骤中的常数,从而当产生发生器输出时,把输出中的一半的位相对于由其他的断续运作控制对反相。对于断续运作控制对(0,1),能够把非线性输出视为与常数(00000000)2作“异”运算。于是,任何三个常数之间的Hamming距离是4。位反相进一步屏蔽发生器的线性,并且使得根据发生器输出重建状态的任何企图落空。
本发明支持一种多层(multi-tier)键控结构。支持多层键控结构的流密码对于无线通信系统特别有用,在无线通信系统中,数据按帧发送,在接收它们时可能出错,或者不在序列中。下面描述一种例示的双层键控结构。
在例示的实施例中,用一个秘密密钥使发生器初始化。用秘密密钥使发生器在序列中作一个不可预测的跳步。在例示的实施例中,秘密密钥的长度为4至k-1字节(或者,对于例示的17阶递归关系,此长度为32至128位)。不推荐使用小于4个字节的秘密密钥,因为起始的随机化可能不合适。虽然能够使用大于k-1字节的秘密密钥,但它是冗余的,因而使用要小心,从而对于密钥的值不会使寄存器状态设为着全0,在当前的限制下,不会出现这个状态。
图5示出例示的秘密密钥初始化过程的流程图。流程在方框110处开始。在例示的实施例中,在方框112处,首先用Fibonacci数模256对移位寄存器的状态初始化。于是,元素S0、S1、S2、S3、S4、S5、等等分别用1、1、2、3、5、8、等等来初始化。虽然使用Fibonacci数,但也能使用任何不与Galois域线性相关的非零数字的组,来初始化寄存器。这些数字不应有能够用来重建寄存器状态的可利用的线性关系。
接下来,在方框114处,把循环索引n设置为0。于是秘密密钥初始化过程进入一个循环。在此循环的第一个步骤中,在方框116处,把密钥材料的第一个不用的字节添加至Sn。添加密钥材料的使得发生器在序列中作不可预测的跳步。然后在方框118处,将密钥移位一个字节,从而删除在方框116中使用的字节。然后,在方框120处,寄存器作循环。方框116和120的组合有效能地进行下述计算:
Sn+17=(100Sn+9)Sn+4(141(SnK)) (7)这里,K是密钥材料的第一个不用的字节。在方框122处,循环索引n递增。然后,在方框124处判断是否已经用了所有的密钥材料。如果回答是否定的,则过程回至方框116。否则,过程继续至方框126。
在例示的实施例中,在方框126处,把密钥的长度添加至Sn。添加密钥的长度使得发生器在序列中作额外的跳步。然后过程进入第二循环。在第二循环的第一步骤内,在方框128处,寄存器作循环。在方框130处,循环索引递增,并且在方框132处,与发生器的阶数作比较。如果n不等于k,则过程回至方框128。否则,如果n等于k,过程继续至方框134,在该处保存发生器的状态。然后在方框136处,过程终结。
除了秘密密钥之外,在本发明中还能使用二次密钥。二次密钥不视为秘密,但在例示的无线电话系统中使用,以对于每个数据帧产生一个唯一的密码。这确保被擦除的帧或在序列之外的帧不会破坏信息流。在例示的实施例中,流密码接受一个每帧密码(称为帧密码),其形式为4个8位二进制无符号整数。每帧初始化类似于上面的秘密密钥初始化,但它是对于每个数据帧进行的。如果这样来使用流密码,从而不必使用每帧密码信息,例如,为经过可靠的链路传递文件,则可省略每帧初始化过程。
图6示出使用帧密钥的例示的每帧初始化过程的流程图。在方框210处开始此过程。在例示的实施例中,在方框212处,使用上述从秘密密钥初始化过程保存的状态,对发生器的状态进行初始化。接下来,在方框214处,把循环索引n设置为0。然后每帧初始化过程进入循环。在循环的第一个步骤中,在方框216处,把帧密钥的最低有效字节对Sn作加法模256。然后,在方框218处,把帧密钥移位三位,从而把在方框216中使用的三个最低有效位删去。然后,在方框220处,寄存器作循环。在例示的实施例中,在方框222处,循环索引n递增,并且在方框224处,与11作比较。如在方框224中使用的,11的值相应于用作帧密钥的32位,以及帧密钥每次移位3位这个事实。帧密钥的不同选择以及每次移位的不同的位数能够导致在方框224中使用的不同的比较值。如果n不等于11,则过程返回至方框216。否则,如果n等于11,则过程继续至方框226,而寄存器继续作循环。在方框228处,循环索引递增,并且在方框230处,与2k比较。如果n不等于2k,则过程回至方框226。否则,如果n等于2k,则过程在方框232处终结。
已经对于具有为56个元素的例示的Galois有限域描述了本发明。也能够使用不同的有限域,从而元素的规模与用于处理元素的处理器和/或用于实现移位寄存器的存储器的字节或字长匹配,或者具有其他的好处。于是,能够使用具有多于两个元素的各种有限域,这些都在本发明的范围内。
上面所示的例子使用了各种非线性过程来屏蔽递归关系的线性。使用不同的非线性过程,或者上述非线性过程和其他非线性过程的不同组合,能够设计出其他的发生器。于是,考虑使用各种非线性过程来产生非线性输出,而这在本发明的范围内。
上面所示的例子使用了17阶并且由式(4)定义的递归关系。也能产生具有其他阶数的递归关系,而这在本发明的范围内。此外,对于给定的阶数,能够产生不同的递归关系,而这在本发明的范围内。在本发明中,为了得到优化的结果,以采用最大长度递归关系为好。V.基于GF(28)内的LFSR的第二个例示的流密码
图7示出第二个例示发生器的方框图。虽然对于寄存器82也能用其他的长度(对于不同阶数的递归关系)来实现,但在例示的实施例中,线性反馈移位寄存器82的长度是17个8位二进制位。对于需要128位密钥材料的应用来说,17阶的递归关系是很合适的。在例示的实施例中,线性反馈移位寄存器82按照下面的递归关系来更新:
Sn+17=(141Sn+15)Sn+4(175Sn) (8)这里运算在GF(28)域内定义,是由Galois加法器88表示的对两个字节作“异”运算,而是由Galois乘法器84表示的多项式模乘(见图7)。在例示的实施例中,如上所述,对预先计算的表使用字节表查找,来实现对于系数86的模乘。把式(8)中的递归关系选为最大长度。
在例示的实施例中,为了隐藏移位寄存器82的线性,使用了上述的两种技术,即,断续运作和使用非线性函数。还使用了其他的非线性技术,描述如下。
在例示的实施例中,通过使用函数(或输出方程)(它相对于GF(28)域内的线性运算而言是非线性的),组合移位寄存器82的四个元素,以引入非线性。在例示的实施例中,使用的四个字节是Sn、Sn+2、Sn+5和Sn+12,其中,按照式(8)的递归关系,在序列中,Sn是最老算出的元素。在例示的实施例中,按照下面的输出方程来组合四个字节:
Vn=Sn+Sn+2+Sn+5+Sn+12 (9)这里,Vn是非线性输出,而+是由算术加法器90表示的加法截尾模256(将溢出丢弃)。如上所述,通过在二进制位之间的进位,由简单的字节加法(将结果作截尾模256)在GF(28)域内得到非线性。在例示的实施例中,使用加法模256把四个字节组合起来而得到输出。然而,加法模256是不理想的,因为最低有效位没有进位输入,因而仍然被线性地组合。在例示的实施例中,连续的断续运作步骤提供了对式(9)中的剩余的线性的足够的隐藏。使用式(9)中的模加,简化了产生输出所需的计算。
在例示的实施例中,用于递归关系(8)的字节包括Sn、Sn+4和Sn+15,而用于输出方程的字节包括Sn、Sn+2、Sn+5和Sn+12。在例示的实施例中,选择这些字节,以具有不同的对距离。对于递归关系式(8),所用的三个字节具有的对距离为4(在Sn和Sn+4之间的位距)、11(在Sn+4和Sn+15之间的位距)和15(在Sn和Sn+15之间的位距)。类似地,对于输出方程(9),所用的四个字节具有对距离为2(在Sn和Sn+2之间的位距)、3(在Sn+2和Sn+5之间的位距)、5(在Sn和Sn+5之间的位距)、7(在Sn+5和Sn+12之间的位距)、10(在Sn+2和Sn+12之间的位距)和12(在Sn和Sn+12之间的位距)。可以注意,递归关系(8)中的对距离(例如,4、11和15)在第一个有关群中是唯一的(或不同的),还可以注意,输出方程(9)中的对距离(例如,2、3、5、7、10和12)在第二个有关群中也是不同的。此外,可以注意,递归关系(8)中的对距离与输出方程(9)中的对距离是不同的。当移位寄存器82移位时,不同的对距离保证,无论在递归关系(8)或输出方程(9)中,移位寄存器82没有一个元素对被使用两次。这个性质去除了在后续的输出方程(9)中的线性。
在例示的实施例中,图7中的多路复用器(MUX)92、“XOR”门94、开关96和缓冲器98以上述图4中的MUX64、XOR门66、开关68和缓冲器70的运作方式运作。
在例示的实施例中,图5所示的秘密密钥初始化过程进行一次,并且为后续的每帧初始化过程的以后使用而保存发生器的状态。在另一个实施例中,不是保存发生器的状态,而是每当需要发生器的状态时,就进行秘密密钥初始化过程。当秘密密钥短于17个字节时,或者短于移位寄存器的长度时,该实施例运作得特别好。
图8示出另一种例示的每帧初始化过程的流程图。除了方框213之外,图8中的另一种例示的每帧初始化过程与图6中的每帧初始化过程相同。对于帧密钥(使用它有些象一个计数器)(例如,最低有效位改变最频繁),能够把帧密钥的最低有效字节与最高有效字节作“异”运算,从而最高有效字节在初始化过程中能够有更大的影响。在图8中,这由方框213表示,它插在图6的流程图的方框212和214之间。
提供较佳实施例的上述描述,使得任何熟悉本领域的人能够做出或使用本发明。对于那些熟悉本领域的人来说,对于这些实施例的各种变更是很显然的,并且无需创造能力即可将这里确定的一般原理应用于其他的实施例。于是,不打算把本发明限于这里示出的实施例,而是要按照与在这里揭示的原理和新颖特征一致的最广的范围。
Claims (34)
1.一种用于产生流密码的方法,其特征在于,所述方法包括:
选择阶数大于1的有限域;
选择在所述有限域内的递归关系;
选择输出方程;
按照所述递归关系和所示输出方程计算所述流密码;并且
其中所述递归关系和所述输出方程具有不同的对距离。
2.如权利要求1所述的方法,其特征在于,根据用来计算所述流密码的处理器的字长来选择所述有限域。
3.如权利要求1所述的方法,其特征在于,所述有限域是包括256个元素的Galois域。
4.如权利要求1所述的方法,其特征在于,所述递归关系是最大长度。
5.如权利要求1所述的方法,其特征在于,所述递归关系具有的阶数为17。
6.如权利要求1所述的方法,其特征在于,所述递归关系定义为
Sn+17=(141Sn+15)Sn+4(175Sn)这里运算在GF(28)范围内定义,是对两个字节的“异”运算,而是多项式模乘。
7.如权利要求1所述的方法,其特征在于,所述流密码包括多至128位的密钥材料。
8.如权利要求1所述的方法,其特征在于,用线性反馈移位寄存器实现所述递归关系。
9.如权利要求8所述的方法,其特征在于,用循环缓冲器来实现所述线性反馈移位寄存器。
10.如权利要求8所述的方法,其特征在于,用滑动窗口实现所述线性反馈移位寄存器。
11.如权利要求1所述的方法,其特征在于,按照至少一个非线性过程进一步进行计算步骤。
12.如权利要求11所述的方法,其特征在于,所述至少一个非线性过程包括使得用来实现所述递归关系的移位寄存器断续地运作。
13.如权利要求12所述的方法,其特征在于,按照所述流密码进行所述断续运作。
14.如权利要求1所述的方法,其特征在于,所述至少一个非线性过程包括计算所述发生器的状态的非线性函数。
15.如权利要求1所述的方法,其特征在于,所述至少一个非线性过程包括所述流密码的选出二进制位的位反相。
16.如权利要求15所述的方法,其特征在于,按照一组常数来进行所述位反相,所述的一组常数具有选择来在所述流密码中使一半的二进制位反相的Hamming距离。
17.如权利要求1所述的方法,其特征在于,所述步骤包括模加。
18.如权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:
用一个秘密密钥对所述发生器初始化。
19.如权利要求18所述的方法,其特征在于,所述初始化步骤包括下述步骤:
把秘密密钥的最低有效字节添加至所述递归关系;
使所述秘密密钥移位一个字节;以及
重复所述添加步骤和所述移位步骤,直至把所述秘密密钥中的所有字节添加至所述递归关系。
20.如权利要求18所述的方法,其特征在于,所述秘密密钥的长度小于所述递归关系的阶数。
21.如权利要求18所述的方法,其特征在于,还包括下述步骤:
用每帧密钥对所述发生器进行初始化。
22.如权利要求21所述的方法,其特征在于,所述每帧密钥的长度为4个8位字节。
23.如权利要求21所述的方法,其特征在于,对于每个数据帧,用所述每帧密钥对所述发生器进行所述初始化。
24.如权利要求21所述的方法,其特征在于,所述每帧密钥的长度为4个8位字节。
25.如权利要求21所述的方法,其特征在于,用所述每帧密钥对所述发生器进行所述初始化的步骤包括:
把所述每帧密钥的最低有效字节加到所述递归关系,对所述每帧密钥移位三个二进制位;
重复所述添加步骤和所述移位步骤,直至把所述每帧密钥中的所有字节都添加至所述递归关系。
26.如权利要求25所述的方法,其特征在于,用所述每帧密钥对所述发生器进行所述初始化的步骤还包括下述步骤:
把所述每帧密钥的最低有效字节添加至所述每帧密钥的最高有效字节。
27.一种用于产生流密码的设备,其特征在于,所述设备包括:
处理器,用于接收执行递归关系和输出方程用到指令,所述处理器按照所述指令对元素进行处理,其中,所述递归关系和所述输出方程具有不同的对距离。
28.如权利要求27所述的设备,其特征在于,所述递归关系在阶数大于1的有限域内定义。
29.如权利要求28所述的设备,其特征在于,根据所述处理器的字长来选择所述有限域。
30.如权利要求28所述的设备,其特征在于,所述有限域是包括256个元素的Galois域。
31.如权利要求27所述的设备,其特征在于,所述递归关系是最大长度。
32.如权利要求27所述的设备,其特征在于,所述递归关系具有的阶数为17。
33.如权利要求27所述的设备,其特征在于,所述处理器提供包括128位密钥材料的流密码。
34.如权利要求27所述的设备,其特征在于,用线性反馈移位寄存器实现所述递归关系。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/957,571 | 1997-10-24 | ||
US08/957,571 US6252958B1 (en) | 1997-09-22 | 1997-10-24 | Method and apparatus for generating encryption stream ciphers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1276939A true CN1276939A (zh) | 2000-12-13 |
Family
ID=25499787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98810477A Withdrawn CN1276939A (zh) | 1997-10-24 | 1998-10-22 | 产生加密流密码的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6252958B1 (zh) |
EP (1) | EP1025670A1 (zh) |
JP (1) | JP2001522167A (zh) |
KR (1) | KR20010024560A (zh) |
CN (1) | CN1276939A (zh) |
AU (1) | AU1274599A (zh) |
WO (1) | WO1999022484A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677917B (zh) * | 2004-03-31 | 2010-08-25 | 微软公司 | 用于流式密码中的循环存储单元的方法和系统 |
CN113646778A (zh) * | 2019-03-29 | 2021-11-12 | 谷歌有限责任公司 | 用于执行分段相加的不经意进位轨道寄存器 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490357B1 (en) * | 1998-08-28 | 2002-12-03 | Qualcomm Incorporated | Method and apparatus for generating encryption stream ciphers |
US6947560B1 (en) * | 1999-04-26 | 2005-09-20 | Telefonaktiebolaget L M Ericsson (Publ) | Method and device for effective key length control |
US6961427B1 (en) * | 1999-11-23 | 2005-11-01 | General Instrument Corporation | Methods and apparatus for keystream generation |
FI109639B (fi) * | 1999-12-22 | 2002-09-13 | Nokia Corp | Menetelmä salausluvun välittämiseksi tiedonsiirtojärjestelmässä ja tiedonsiirtojärjestelmä |
DE10061315A1 (de) * | 2000-12-08 | 2002-06-13 | T Mobile Deutschland Gmbh | Verfahren und Vorrichtung zum Erzeugen einer Pseudozufallsfolge |
JP3724399B2 (ja) * | 2001-01-23 | 2005-12-07 | 株式会社日立製作所 | 疑似乱数生成装置またはそれを用いた暗号復号処理装置 |
US7003109B2 (en) * | 2001-04-19 | 2006-02-21 | City University Of Hong Kong | Compact crypto-engine for random number and stream cipher generation |
US7877014B2 (en) | 2001-07-05 | 2011-01-25 | Enablence Technologies Inc. | Method and system for providing a return path for signals generated by legacy video service terminals in an optical network |
US20030072059A1 (en) * | 2001-07-05 | 2003-04-17 | Wave7 Optics, Inc. | System and method for securing a communication channel over an optical network |
JP2003023421A (ja) * | 2001-07-09 | 2003-01-24 | C4 Technology Inc | 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置 |
JP4191915B2 (ja) * | 2001-08-30 | 2008-12-03 | 独立行政法人情報通信研究機構 | 変換装置、暗号化復号化システム、多段変換装置、プログラム、ならびに、情報記録媒体 |
ITMI20011938A1 (it) * | 2001-09-17 | 2003-03-17 | Cit Alcatel | Metodo per criptare un flusso di dati |
US6832231B1 (en) * | 2001-09-28 | 2004-12-14 | Lattice Semiconductor Corp. | Multiple width random number generation |
US7769169B2 (en) * | 2002-01-23 | 2010-08-03 | Certicom Corp. | Method and apparatus for generating a key stream |
AT412747B (de) | 2002-03-05 | 2005-06-27 | Rene-Michael Mag Cordes | Codegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identifikation oder ver- und endschlüsselung von daten beliebiger länge |
KR100450750B1 (ko) * | 2002-04-17 | 2004-10-01 | 한국전자통신연구원 | 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기 |
US20040049525A1 (en) * | 2002-09-06 | 2004-03-11 | Koninklijke Philips Electronics N.V. | Feedback random number generation method and system |
US7454141B2 (en) | 2003-03-14 | 2008-11-18 | Enablence Usa Fttx Networks Inc. | Method and system for providing a return path for signals generated by legacy terminals in an optical network |
US7346160B2 (en) * | 2003-04-23 | 2008-03-18 | Michaelsen David L | Randomization-based encryption apparatus and method |
US7257225B2 (en) * | 2003-12-29 | 2007-08-14 | American Express Travel Related Services Company, Inc. | System and method for high speed reversible data encryption |
WO2005098795A1 (ja) * | 2004-03-31 | 2005-10-20 | Matsushita Electric Industrial Co., Ltd. | 整数を加算するコンピュータシステム |
US7599622B2 (en) | 2004-08-19 | 2009-10-06 | Enablence Usa Fttx Networks Inc. | System and method for communicating optical signals between a data service provider and subscribers |
WO2006100801A1 (ja) * | 2005-03-23 | 2006-09-28 | Kddi Corporation | キーストリーム暗号化装置および方法ならびにプログラム |
WO2007043297A1 (ja) * | 2005-10-11 | 2007-04-19 | Matsushita Electric Industrial Co., Ltd. | データ送信装置、及びデータ受信装置 |
KR100885994B1 (ko) * | 2006-11-09 | 2009-03-03 | 한국전자통신연구원 | 비선형 필터링된 t함수에 기반한 스트림 암호화 장치 및방법 |
WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
US10148285B1 (en) | 2012-07-25 | 2018-12-04 | Erich Schmitt | Abstraction and de-abstraction of a digital data stream |
US10708043B2 (en) | 2013-03-07 | 2020-07-07 | David Mayer Hutchinson | One pad communications |
CN103777904B (zh) * | 2014-02-12 | 2017-07-21 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
US10795858B1 (en) | 2014-02-18 | 2020-10-06 | Erich Schmitt | Universal abstraction and de-abstraction of a digital data stream |
JP6876423B2 (ja) * | 2016-12-14 | 2021-05-26 | Kddi株式会社 | ストリーム暗号における内部状態の初期化装置、方法及びプログラム |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4202051A (en) * | 1977-10-03 | 1980-05-06 | Wisconsin Alumni Research Foundation | Digital data enciphering and deciphering circuit and method |
US4484027A (en) | 1981-11-19 | 1984-11-20 | Communications Satellite Corporation | Security system for SSTV encryption |
US4769818A (en) * | 1984-05-30 | 1988-09-06 | Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee | Method and apparatus for coding digital data to permit correction of one or two incorrect data packets (bytes) |
US4617676A (en) | 1984-09-04 | 1986-10-14 | At&T Bell Laboratories | Predictive communication system filtering arrangement |
US4901307A (en) * | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US4875211A (en) * | 1986-12-10 | 1989-10-17 | Matsushita Electric Industrial Co., Ltd. | Galois field arithmetic logic unit |
US4852023A (en) * | 1987-05-12 | 1989-07-25 | Communications Satellite Corporation | Nonlinear random sequence generators |
US5020060A (en) * | 1987-06-30 | 1991-05-28 | Matsushita Electric Industrial Co., Ltd. | Error code correction device having a galois arithmetic unit |
US4959832A (en) * | 1988-12-09 | 1990-09-25 | International Business Machines | Parallel pseudorandom pattern generator with varying phase shift |
US5249144A (en) * | 1989-09-29 | 1993-09-28 | The Boeing Company | Programmable optical arithmetic/logic unit |
US5440570A (en) * | 1990-03-27 | 1995-08-08 | National Science Council | Real-time binary BCH decoder |
IL94449A (en) * | 1990-05-20 | 1994-06-24 | Fortress U & T 2000 Ltd | Method and apparatus for exponentiation over gf(2") |
US5103459B1 (en) * | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
US5060265A (en) * | 1990-07-23 | 1991-10-22 | Motorola, Inc. | Method of protecting a linear feedback shift register (LFSR) output signal |
US5097499A (en) | 1990-08-22 | 1992-03-17 | At&T Bell Laboratories | Autonomous registration overload control for cellular mobile radio systems |
US5343481A (en) * | 1991-01-07 | 1994-08-30 | Kraft Clifford H | BCH error-location polynomial decoder |
JPH0827732B2 (ja) * | 1991-01-22 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 線形代数コード復号のためのキー方程式を解く方法 |
US5153919A (en) | 1991-09-13 | 1992-10-06 | At&T Bell Laboratories | Service provision authentication protocol |
US5172414A (en) | 1991-09-13 | 1992-12-15 | At&T Bell Laboratories | Speech and control message encrypton in cellular radio |
US5204902A (en) | 1991-09-13 | 1993-04-20 | At&T Bell Laboratories | Cellular telephony authentication arrangement |
US5414719A (en) * | 1992-04-24 | 1995-05-09 | Sharp Kabushiki Kaisha | Operating circuit for galois field |
ATE200169T1 (de) * | 1992-12-30 | 2001-04-15 | Telstra Corp Ltd | Verfahren und einrichtung zur erzeugung einer chiffriersequenz |
US5365588A (en) * | 1993-03-12 | 1994-11-15 | Hughes Aircraft Company | High speed encryption system and method |
JP2541480B2 (ja) * | 1993-10-06 | 1996-10-09 | 日本電気株式会社 | 擬似乱数発生装置 |
US5454039A (en) * | 1993-12-06 | 1995-09-26 | International Business Machines Corporation | Software-efficient pseudorandom function and the use thereof for encryption |
JP3415693B2 (ja) * | 1993-12-23 | 2003-06-09 | ノキア モービル フォーンズ リミテッド | インターリーブプロセス |
US5943248A (en) * | 1997-01-17 | 1999-08-24 | Picturetel Corporation | w-bit non-linear combiner for pseudo-random number generation |
US5910907A (en) * | 1997-02-20 | 1999-06-08 | C.K. Chen | Shift register based pseudorandom number generator |
US6510228B2 (en) * | 1997-09-22 | 2003-01-21 | Qualcomm, Incorporated | Method and apparatus for generating encryption stream ciphers |
US6009135A (en) * | 1997-10-10 | 1999-12-28 | Interdigtal Technology Corporation | Method and apparatus for generating a stream cipher |
US6560338B1 (en) * | 1998-08-28 | 2003-05-06 | Qualcomm Incorporated | Limiting delays associated with the generation of encryption stream ciphers |
US6724805B1 (en) * | 1999-11-15 | 2004-04-20 | Massachusetts Institute Of Technology | Nonlinear dynamic system for spread spectrum code generation and acquisition |
US6763363B1 (en) * | 1999-12-02 | 2004-07-13 | Honeywell International Inc. | Computer efficient linear feedback shift register |
-
1997
- 1997-10-24 US US08/957,571 patent/US6252958B1/en not_active Expired - Lifetime
-
1998
- 1998-10-22 EP EP98956157A patent/EP1025670A1/en not_active Withdrawn
- 1998-10-22 CN CN98810477A patent/CN1276939A/zh not_active Withdrawn
- 1998-10-22 JP JP2000518474A patent/JP2001522167A/ja not_active Withdrawn
- 1998-10-22 WO PCT/US1998/022452 patent/WO1999022484A1/en not_active Application Discontinuation
- 1998-10-22 KR KR1020007004430A patent/KR20010024560A/ko not_active Application Discontinuation
- 1998-10-22 AU AU12745/99A patent/AU1274599A/en not_active Abandoned
-
2001
- 2001-04-30 US US09/846,443 patent/US20030206634A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677917B (zh) * | 2004-03-31 | 2010-08-25 | 微软公司 | 用于流式密码中的循环存储单元的方法和系统 |
CN113646778A (zh) * | 2019-03-29 | 2021-11-12 | 谷歌有限责任公司 | 用于执行分段相加的不经意进位轨道寄存器 |
Also Published As
Publication number | Publication date |
---|---|
WO1999022484A1 (en) | 1999-05-06 |
JP2001522167A (ja) | 2001-11-13 |
AU1274599A (en) | 1999-05-17 |
US20030206634A1 (en) | 2003-11-06 |
EP1025670A1 (en) | 2000-08-09 |
US6252958B1 (en) | 2001-06-26 |
KR20010024560A (ko) | 2001-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1276939A (zh) | 产生加密流密码的方法和设备 | |
US6510228B2 (en) | Method and apparatus for generating encryption stream ciphers | |
US6560338B1 (en) | Limiting delays associated with the generation of encryption stream ciphers | |
US6490357B1 (en) | Method and apparatus for generating encryption stream ciphers | |
EP2003546B1 (en) | Closed galois field combination | |
US8139764B2 (en) | Closed galois field cryptographic system | |
RU2390949C2 (ru) | Структура поточного шифра с циклическим перемещением буферов | |
JP5539331B2 (ja) | 暗号システム | |
JP2006506668A (ja) | 複数鍵を用いたストリーム暗号の生成方法 | |
Agrawal et al. | Elliptic curve cryptography with hill cipher generation for secure text cryptosystem | |
US20030016823A1 (en) | Method and apparatus of using irrational numbers in random number generators for cryptography | |
US6909785B1 (en) | Method and apparatus for efficient irregular synchronization of a stream cipher | |
KR100583495B1 (ko) | 암호화 방법 | |
KR101923293B1 (ko) | 데이터 가산 장치 및 방법 | |
Szpankowski et al. | Minimax redundancy for large alphabets | |
CN110601817B (zh) | 一种数据处理方法及装置 | |
Lee et al. | Ciphertext-only attack on linear feedback shift register-based Esmaeili-Gulliver cryptosystem | |
Stallings | The offset codebook (OCB) block cipher mode of operation for authenticated encryption | |
JP5436373B2 (ja) | 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末 | |
JP2006133380A (ja) | 復号装置と復号プログラム及び暗号通信システム | |
Kaul | Algorithm for Text Data Encryption by Position Swapping based on LFSR Pseudorandom Key Generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C04 | Withdrawal of patent application after publication (patent law 2001) | ||
WW01 | Invention patent application withdrawn after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1030700 Country of ref document: HK |