CN1302497A - 产生加密密码流的方法和装置 - Google Patents

产生加密密码流的方法和装置 Download PDF

Info

Publication number
CN1302497A
CN1302497A CN98809380A CN98809380A CN1302497A CN 1302497 A CN1302497 A CN 1302497A CN 98809380 A CN98809380 A CN 98809380A CN 98809380 A CN98809380 A CN 98809380A CN 1302497 A CN1302497 A CN 1302497A
Authority
CN
China
Prior art keywords
recurrence relation
key
shift register
privacy key
frame
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
Application number
CN98809380A
Other languages
English (en)
Inventor
G·G·罗斯
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 CN1302497A publication Critical patent/CN1302497A/zh
Withdrawn 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
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom 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/0668Pseudorandom 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Abstract

一种生成加密密码流的方法和装置。设计递推关系,在大于GF(2)的有限域上工作。用来实现递推关系的线性移位寄存器(52)可以用循环缓冲器(24a)或滑动窗口(24b)来实现。有限域元素的相乘是用查询表来实现的。用一个或多个非线性处理过程的组合可以获得非线性输出。可以设计密码流以支持多层键控,以适合于密码流应用的要求。

Description

产生加密密码流的方法和装置
                    发明背景
Ⅰ.发明领域
本发明涉及加密。本发明尤其涉及产生加密密码流的方法和装置。
Ⅱ.相关领域的描述
加密是一种处理过程,并且是一种随机处理过程,通过这一过程对数据进行处理,使得数据难以被他人理解,而只有特定的接收者能够理解。数字化数据的一种加密方法是采用密码流。密码流是这样工作的,即,取得要进行加密的数据和通过加密规则产生的伪随机数据位流(或加密数据位流),并将它们组合起来,通常是采用异或(XOR)运算进行的。解密是这样一个简单过程,即,产生相同的加密数据位流,并用相应的运算从加密的数据中去掉加密数据位流。如果XOR运算是在加密侧进行的,那么在解密侧也进行相同的XOR运算。对于一种安全的解密,解密数据位流必须在计算上是很难预计的。
许多用来产生伪随机数数据流的技术是基于阶数(order)为2的伽罗瓦有限域上的线性反馈移位寄存器(LFSR)。这是一个阶数为2n的伽罗瓦(Galois)有限域的特例,其中,n是一个正整数。当n=1时,伽罗瓦域的元素(element)包含值为“0”或“1”的数据位。通过使数据位移位一个数据位位置,并计算新的输出位来使寄存器更新。新的数据位被移位到寄存器内。对于一个斐波纳契(Fibonacci)寄存器,输出数据位是数据寄存器中的数据位的线性函数。对于一个伽罗瓦寄存器,许多数据位是按照刚从寄存器中移位出去的输出位来更新的。在数学上,斐波纳契寄存器结构和伽罗瓦寄存器结构是等效的。
产生伪随机数数据流中所包含的运算,即,移位和位提取,在硬件中是有效的,但在软件或采用通用处理器或微处理器的结构中效率低下。并且这种低效率随着移位寄存器的长度超过用来产生数据流的处理器中寄存器的长度而增加。另外,当n=0时,对于每一组运算,只产生一个输出位,这就又使处理器的使用效率非常低下。
采用密码流的典型应用是无线电话。典型的无线电话通信系统是码分多址(CDMA)系统。CDMA系统的工作情况见标题为“采用卫星或地面转发器的扩展谱多址通信系统(Spread Spectrum Multiple Access CommunicationSystem Using Satellite or Terrestrial Repeaters)”  的美国专利4,901,307。该专利已转让给本发明的受让人,在此引述供参考。CDMA系统还可以参见标题为“CDMA蜂窝电话系统中产生信号波形的系统和方法(System and Method for Generating Sinal Waveforms in a CDMA CellularTelephone System)”的美国专利5,103,459,该专利也已转让给本发明的受让人,在此引述供参考。另一种CDMA系统包括用于采用低地球轨道卫星的环球通信的GLOBALSTAR(全球之星)通信系统。其他无线电话系统包括时分多址(TDMA)系统和频分多址(FDMA)系统。可以将CDMA系统设计成符合用于“双模式宽带扩展谱蜂窝系统的TIA/EIA/IS-95移动站-基站兼容标准”,下文中称为IS-95标准。与此类似,可以将TDMA系统设计成符合TIA/EIA/IS-54(TDMA)标准或符合用于移动通信(GSM)标准的欧洲全球系统。
无线电话中数字化话音信号的加密因为缺乏远端站中的计算功效而受阻。这就使得加密处理(如TDMA标准中使用的话音私密屏蔽(Voice PrivacyMask))较弱,或者导致生成硬件的密码流(如GSM标准中采用的A5)。基于硬件的密码流的缺点是增加了硬件的制造成本,并且当需要更改加密过程时,需要更长的时间和更大的成本。由于无线电话系统中许多远端站和数字电话包含微处理器和存储器,快速并采用极少存储器的密码流是很适合于这些应用域合的。
                        发明概述
本发明是一种产生加密密码流的新的、改进的方法和装置。按照本发明,递推关系被设计成是在比GF(2)更大的有限域上工作的。用来实现递推关系的线性反馈移位寄存器可以用循环缓冲器或滑动窗来实现。在本典型实施例中,有限域元素的相乘是用查询表来实现的。非线性输出可以采用非线性处理的组合来得到。密码流可以被设计成支持多层键控,以适合于采用密码流的应用要求。
本发明的目的是采用一种能够简单用处理器构成的结构来生成加密密码流。特别是,通过选择更适合于处理器的有限域来获得更有效的结构。可以选择递推关系的元素(element)和系数,来与处理器的字节或字长匹配。这就使得能够由处理器对元素进行有效地运算。在本典型的实施例中,所选择的有限域是具有256个元素的伽罗瓦域(GF(28))。这就使得递推关系的运算和系数占据可以进行有效运算的存储器的一个字节。另外,采用更大的有限域减小了递推关系的阶数。对于有限域GF(2n),对相同数量的状态进行编码的递推关系的阶数k减小了n倍(或者是,对典型的GF(28)减小了8倍)。
本发明的另一个目的是采用状态表来进行域的运算。在本典型实施例中,域中(非零元素)的相乘可以这样来进行,即,对两个操作数中的每一个取对数、将对数值相加,并将相加得到的对数值取指数。用不可约的多项式,可以产生对数表和指数表。在本典型实施例中,表格是预先计算并存储在存储器内的。与此类似,用简单的查询表可以执行与常系数的域相乘。再有,可以用不可约多项式预先计算好该表格,并将该表格存储在存储器内。
本发明的再一个目的是采用下述几种处理中的一种或其组合,去除线性反馈移位寄存器输出中的线性关系:非规则时钟抖动(有时也称为抽取)、非线性函数、多重移位寄存器以及将寄存器的输出组合起来,对一个寄存器取可变反馈多项式和其他的非线性处理。本典型实施例中,非线性输出可以用来随机控制移位寄存器的时钟抖动。另外,对选择的移位寄存器元件进行非线性运算可以得到非线性输出。另外,可以对非线性函数的输出与一组常量取异或运算,使得非线性输出的反转换是不可预测。
本发明的进一步的目的是用循环缓冲器或滑动窗来构成线性反馈移位寄存器。当采用循环缓冲器或滑动窗结构时,缓冲器中不会发生元素的移位。相反,采用指针或指数来表示最近计算的元素的位置。在计算了新的元素或新的元素被移位进入循环缓冲器或滑动窗以后,指针移动。指针达到边缘时出现回卷
本发明又一个目的是提供具有多层键控能力的密码流。本典型实施例中,首先用密钥使移位寄存器的状态初始化。对于数据是在帧内传送的某些通信系统,可以为每一帧产生一个密码流,从而擦去的或失序的帧不会使加密处理的操作中断。可以用帧键控初始化过程对每一帧进行第二层键控处理的初始化。
                      附图简述
在结合附图详细描述了本发明以后,读者将会清楚地理解本发明的特征、目的和优点。图中,相同的符号所表示的意义相同。
图1是递推关系典型结构的方框图;
图2是采用处理器的密码流生成器的典型方框图;
图3A和3B是分别在时刻n和时刻n+1处循环缓冲器中所含内容的图;
图3C是滑动视窗中内容的图;
图4是本发明典型密码流生成器的方框图;
图5是本发明典型密钥初始化过程的流程图;以及
图6是本发明典型的每一帧初始化过程的流程图。
               较佳实施例的详细描述
线性反馈移位寄存器(LFSR)是基于伽罗瓦域上的递推关系,输出序列是由下面的递推关系定义的:
Sn+k=Ck-1Sn+k-1+Ck-2+Sn+k-2+…+C1Sn+1+C0Sn,    (1)这里,Sn+k是输出元素,Cj是常数系数,k是递推关系的阶数,而n是以时间表示的指数。状态变量S和系数是构成有限域的元素。等式(1)的表达式有时还具有常数项,在本说明书中略去不用。
等式(1)中递推关系的典型结构方框图见图1所示。对于阶数为k的递推关系,寄存器12含有k个元素Sn至Sn+k-1。这些元素被提供到伽罗瓦域乘法器14,将这些元素与常数Cj相乘。将乘法器14得到的乘积提供到伽罗瓦域加法器16,将乘积相加,提供输出元素。
当n=1时,GF(2)的元素含有一个数据位(为0或1值),并且等式(1)的结构要求有许多的按位运算。这时,采用通用处理器的递推关系结构效率不高,这是因为设计用来对字节或字长对象进行运算的处理器被用来对单个数据位进行许多操作。
本发明中,线性反馈移位寄存器被设计成在比GF(2)更大的有限域上工作。特别是,通过选择更适合于处理器的有限域,可以得到更有效的结构。在本典型实施例中,所选择的有限域是具有256个元素(GF(28))的伽罗瓦域或其他的具有2n个元素的伽罗瓦域。这里,n是处理器的字长。
在本典型实施例中,采用具有256个元素(GF(28))的伽罗瓦域。这就使得递推关系的每一个元素和系数占据存储器的一个字节。可以由处理器有效地执行字节运算。另外,对相同数量的状态进行编码的递推关系的阶数k减少了n倍,对于GF(28)是8倍。
本发明中,为得到最佳结果,采用最大长度的递推关系。最大长度指的是重复前输出序列(或寄存器的状态数)的长度。对于阶数为k的递推关系,最大长度是Nk-1。这里,N是构成有限域的元素数,在本较佳实施例中N=256。不允许所有的状态都为零。
采用处理器的密码流生成器的典型方框图如图2所示。控制器20连到处理器22,并包含控制处理器22工作的一组指令。因此,控制器20可以包含一个软件程序或一组微代码。处理器22是执行生成器所需运算的硬件。处理器22可以用微控制器、微处理器,或设计用来执行所述功能的数字信号处理器来实现。存储器元件24与处理器22相连,并用来构成线性反馈移位寄存器,并存储下面将要描述的预计算表和指令。存储器元件24可以用随机存取存储器或其他设计用来执行所述功能的存储器装置。指令和表格可以存储在只读存储器中,只有用作寄存器的存储器本身在算法的执行期间需要作修改。
Ⅰ.产生非线性输出数据流
将线性反馈移位寄存器用于密码流可能会很难实施。这是因为输出数据流中遗留的线性关系可以用来随时在某一点处产生寄存器的状态。随后,寄存器可以根据需要被前向或后向驱动,以恢复输出数据流。可以有几种技术,采用线性反馈移位寄存器产生非线性的密码流。本典型实施例中,这些非线性技术包含寄存器的时钟抖动(或不可预测的采样)、对寄存器状态采用非线性函数、采用多个寄存器和寄存器输出的非线性组合、对一个寄存器采用可变反馈多项式,和其他的非线性处理。这些技术将在下面分别描述。有一些技术将通过举例来描述。也可以采用产生非线性密码流的其他技术,并且这些技术也是在本发明的范围内。
时钟抖动是一种处理过程,通过该处理过程,以可变的并且是不可预测的方式来对寄存器进行时钟控制。黑白控制实施简单,并且效果很好。由于采用了时钟抖动,在密码流处不提供与寄存器的某些状态有关的输出,从而使得更难从该密码流重构寄存器的状态。
对移位寄存器的状态采用非线性函数也可以给出很好的结果。对于递推关系,如等式(1)所给出的那样,从寄存器的状态和系数的线性函数,产生输出元素。为了提供非线性关系,可以从寄存器的状态的非线性函数产生输出元素。特别是,可以采用在通用处理器上对一个字节或字长数据进行运算的非线性函数。
采用多个移位寄存器并以非线性方式将寄存器的输出组合起来可以给出良好的结果。可以以附加成本最小的硬件容易地构成多个移位寄存器,并且可以并行地操作这些移位寄存器,以保持相同的运行速度。为了在一个通用处理器上实现,由于可以定期(而不减小整体速度)对更大的移位寄存器进行更新,可以采用构成多个移位寄存器的一个更大的移位寄存器。
对一个寄存器采用以不可预测方式变化的可变反馈多项式也可以给出很好的结果。可以以随机的顺序互换不同的多项式,或者以随机的方式来交换多项式。如果设计得当,技术的采用可以是很简单的。
Ⅱ.对更大阶数的有限域的元素的运算
伽罗瓦域GF(28)包含256个元素。伽罗瓦域GF(28)的元素可以用几种不同方式中的一种方式来表示。一种通用并且是标准的表示方式是从阶数小于8的所有多项式的系数模2来形成所述域。即,域的元素α可以用具有数据位(a7,a6,…,a0)的字节来表示,代表多项式:
α7x76x6+…+α1x+α0    (2)数据位也称为多项式的系数。式(2)所表示的两个多项式的加法运算可以由相应系数(a7,a6,…,a0)中每一个的模2相加来进行。换一种说法,对两个字节的加法运算可以通过对两个字节进行异或运算来实现。加性恒单元就是所有系数为零(0,0,…,0)的多项式。
域中的相乘可以通过与模2系数的普通多项式乘法来执行。然而,阶数为n的两个多项式的相乘生成结果为阶数为(2n-1)的多项式,该多项式要求被简约为阶数为n的多项式。在本典型实施例中,简约是通过将结果多项式除以一个不可约多项式、去掉商数以及保留余数成为简约多项式来实现的。不可约多项式的选择能改变将该群元素映射成存储器中编码的字节,但不会影响实际的群操作。在本典型实施例中,选择的阶数为8的不可约多项式是:
x8+x6+x3+x2+1    (3)也可以采用其他阶数为8的不可约首一多项式,并且这也在本发明的范围内。乘性恒等元素是(a7,a6,…,a0)=(0,0,…,1)。
对于通用处理器来说,多项式乘法以及随后的简约是复杂的运算。然而,对于具有适度元素数的伽罗瓦域,这些运算可以由查询表和更简单的运算来执行。本典型实施例中,域中(非零元素)的相乘可以通过对两个操作数中的每一个操作数取对数、按模255取对数值,并对合成的对数值取指数来执行。也可以将简约包含在查询表中。
可以如下所述来产生指数和对数表。首先,确定乘性子群GF(28)的生成元g。这时,字节值g=2(代表多项式x)是一个生成元。如表1中所示,指数表是一个值为gi的256字节表,i=0,1,…,28-1。对于小于256的gi(被认为是一个整数),指数值就象期望的那样,被表1中的第一行中开头的8个表项所表出。由于g=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
在定义了指数表以后,可以将对数表计算为指数表的逆。表1中,对于用不可约多项式得到的每一个幂i,有一个唯一的指数值gi的一一映射关系。对于表1,映射关系是i 2i,或者,第i个位置中存储的值是2i。两边取对数log2,得到下式:log2(i)
Figure A9880938000112
i。这两个映射表示,如果指数表中第i个位置的内容用作对数表的幂,则该幂的log是指数表的幂。例如,对于i=254,如表1中第5列最后一行中所示的那样,指数值2i=2254=166。对两边取对数,得到254=log2(166)。因此,将对数表中幂i=166的内容设置为254。重复该过程,直到变换了对数表中所有的表项为止log0是一未定义值。本典型实施例中,零用作位置标志符。
在定义了指数表和对数表以后,可以通过查询对数表中两个操作数中每一个操作数的对数、用模255将对数值相加、通过查询指数表对合成的对数值取指数,可以执行该域中(非零元素)的相乘。所以,可以用三次查询操作和一次截断相加(truncated addition)来进行。在本典型实施例中,对数表中在位置0处有一个不用的表项,以避免从幂指数中减去1。注意,当操作数为零时,对数表中相应的表项中的内容并不代表是真实值。为了提供正确的结果,在进行所述的乘法运算之前,需要测试每一操作数,看看它是否为零,若为0则操作结果为0。
为了用递推关系从线性反馈移位寄存器生成输出元素,由于如式(1)中所描述的那样,系数Cj是常数,所以情况更简单。为了使执行起来更有效率,只要可能,将这些系数选择为0或1。这里,Cj具有除0或1以外的值,可以预计算一个表格,用于乘法运算ti=Cj·i,这里,i=0,1,2,…,28-1。这时,可以用表格查询并且无需进行测试来进行乘法运算。这样一个表格是固定并且存储在只读存储器内。
                  表1-指数表
    i ××0 ××1 ××2 ××3 ××4 ××5 ××6 ××7 ××8 ××9
00×    1     2     4     8   16   32   64   128     77   154
01×   121    242    169    31   62   124   248   189     55   110
02×   220    245    167     3   6   12   24   48     96   192
03×   205    215    227   139   91   182   33   66     132   69
04×   138     89    178    41   82   164   5   10     20   40
05×    80    160     13    26   52   104   208   237     151   99
06×   198    193    207   211   235   155   123   246     161   15
07×    30     60    120   240   173   23   46   92     184   61
08×   122    244    165     7   14   28   56   112     224   141
09×    87    174     17    34   68   136   93   186     57   114
10×   228    133     71   142   81   162   9   18     36   72
11×   144    109    218   249   191   51   102   204     213   231
12×   131     75    150    97   194   201   223   243     171   27
13×    54    108    216   253   183   35   70   140     85   170
14×    25     50    100   200   221   247   163   11     22   44
15×    88    176     45    90   180   37   74   148     101   202
16×   217    255    179    43   86   172   21   42     84   168
17×    29     58    116   232   157   119   238   145     111   222
18×   241    175     19    38   76   152   125   250     185   63
19×   126    252    181    39   78   156   117   234     153   127
20×   254    177     47    94   188   53   106   212     229   135
21×    67    134     65   130   73   146   105   210     233   159
22×   115    230    129    79   158   113   226   137     95   190
23×    49     98    196   197   199   195   203   219     251   187
24×    59    118    236   149   103   206   209   239     147   107
25×   214    225    143    83   166
                  表2-对数表
    i ××0 ××1 ××2 ××3 ××4 ××5 ××6 ××7 ××8 ××9
00×   0   0   1   23   2   46   24   83   3   106
01×   47   147   25   52   84   69   4   92   107   182
02×   48   166   148   75   26   140   53   129   85   170
03×   70   13   5   36   93   135   108   155   183   193
04×   49   43   167   163   149   152   76   202   27   230
05×   141   115   54   205   130   18   86   98   171   240
06×   71   79   14   189   6   212   37   210   94   39
07×   136   102   109   214   156   121   184   8   194   223
08×   50   104   44   253   168   138   164   90   150   41
09×   153   34   77   96   203   228   28   123   231   59
10×   142   158   116   244   55   216   206   249   131   111
11×   19   178   87   225   99   220   172   196   241   175
12×   72   10   80   66   15   186   190   199   7   222
13×   213   120   38   101   211   209   95   227   40   33
14×   137   89   103   252   110   177   215   248   157   243
15×   122   58   185   198   9   65   195   174   224   219
16×   51   68   105   146   45   82   254   22   169   12
17×   139   128   165   74   91   181   151   201   42   162
18×   154   192   35   134   78   188   97   239   204   17
19×   229   114   29   61   124   235   232   233   60   234
20×   143   125   159   236   117   30   245   62   56   246
21×   217   63   207   118   250   31   132   160   112   237
22×   20   144   179   126   88   251   226   32   100   208
23×   221   119   173   218   197   64   242   57   176   247
24×   73   180   11   127   81   21   67   145   16   113
25×   187   238   191   133   200   161
Ⅲ.存储器结构
当用硬件来实施时,使数据位移位是一种简单并且有效的操作。采用处理器以及对于比处理器的寄存器更大的移位寄存器来说,使数据位移位是一个效率很低的迭代过程。当要移位的单元是字节或字时,因为字节之间没有进位而使移位变得更简单。然而,移位过程仍然是一个迭代的低效率过程。
在本典型实施例中,线性反馈移位寄存器是用循环缓冲器或滑动窗口来实现的。图3A和3B中分别示出了时刻n时刻n+1处循环缓冲器24a中的内容。对于循环缓冲器24a,移位寄存器的每一个元素被存储在相应的存储器单元内。一个指数或指针30保持着存储器(图3A中是Sk-1)中存储的最新的元素。如图3B所示,在时刻n+1,计算新的元素Sk,并将其存储在存储器内最老的S0处。因此,指针30被移动到新元素Sk的存储单元内,而不是使存储器中所有的元素移位。当指针30达到循环缓冲器24a的末端时,它被复位到开头处(如图3A和3B所示)。因此,循环缓冲器24a就象是一个圆圈,而不是一条直线。
如图3A个3B所示,循环缓冲器24a可以从左到右或从右到左地移位。因此,如图3A和3B所示,指针30可以从左到右或从右到左地移动。移位方向的选择只涉及结构的类型,而不会影响输出结果。
为了按照递推关系产生输出元素,通常要求从存储器得到一个以上的元素。与每一要求的元素相关的存储器单元可以由在使寄存器移位时更新的单独的指针来表示。如果需要,也可以由指针30来计算与每一要求的元素相关的存储器单元。由于每一元素到存储器单元是一对一的映射关系,通过确定从最新元素(按照递推关系式)得到的那一元素的偏移、在指针30上加上该偏移以及对由更新指针指示的存储单元进行寻址而获得的特定元素。由于存储器的循环特性,更新指针的计算是通过将偏移模k叠加到指针30上来决定的。当k是2的幂时,模k叠加很简单,否则对于处理器来说是一个低效率的计算。
在本较佳实施例中,如图3C所示,移位寄存器是用滑动窗口24b来实现的。滑动窗口24b的长度与循环缓冲器24a相比至少是其的两倍,并且包含两个相互靠近的循环缓冲器32a和32b。循环缓冲器32a和32b中的每一个的行为也象上述循环缓冲器24a。循环缓冲器32b与循环缓冲器32a是完全相同的。因此,移位寄存器的每一个元素被存储在存储器中的两个相应的单元内,一个在循环缓冲器32a内,另一个在循环缓冲器32b内。指针34保留了最近在循环缓冲器32a中存储的存储单元,在图3C中为Sk-1
本典型实施例中,指针34在滑动窗口24b的中间处开始,从右到左地移动,并在达到左边末端时再次复位到中间。
从图3C可以看到,不管指针34出现在循环缓冲器32a中的什么地方,前面的k-1个元素可以被寻址到指针34的右边。所以,按照递推关系式,为了对移位寄存器中的元素进行寻址,k-1或更低的偏移被加到指针34上。由于更新指针总是到指针34的右边并且可以具有一定的计算效率,所以不需要模k叠加。对于这种结构,滑动窗口24b的长度可以任意,但至少是循环缓冲器24a的两倍,并忽略剩余的字节。另外,更新时间既恒定并且较短。
Ⅳ.基于GF(28)上LFSR的典型密码流
本发明最好用根据GF(28)上的线性反馈移位寄存器的密码流典型生成器来描述。下面描述的密码流采用上述伽罗瓦域上的字节运算,该伽罗瓦域的阶数为8,分别用伽罗瓦域上的相加和相乘运算和来表示。在本典型实施例中,查询表用于所需与常数Cj的相乘。本典型实施例中,采用滑动窗,使得能够对移位寄存器进行快速的更新。
典型生成器的方框图如图4所示。本典型实施例中,线性反馈移位寄存器52是17个8位字长(或136个数据位),使得移位寄存器52具有2136-1(或近似8.7×1040)个状态。整个寄存器为0的状态不是一个有效状态,并且是不会从其他的状态来产生的。不管寄存器52的长度如何,用递推关系中特定个非零元素更新寄存器52的时间是固定的。所以,可以以最小成本的存储器中的附加字节,来构成寄存器52的附加长度(用于更高阶的递推关系)。
在本典型实施例中,线性反馈移位寄存器52是按照下面的递推关系来更新的。
Sn+17=(100Sn+9)Sn+4(141Sn)    (4)这里,运算是定义在GF(28)上的,是对伽罗瓦加法器58所代表的两个字节进行的异或运算,而是伽罗瓦乘法器54所代表的多项式模乘法(见图4)。本典型实施例中,对系数56的模乘法运算是用对上述预计算的表格的字节表查询来进行的。在本典型实施例中,多项式模乘法运算是用式(3)定义的不可约多项式来计算的。选择式(4)中的递推关系为最大长度,具有最少的非零系数,并且因此所采用的移位寄存器元件与用作下述非线性函数的是不同的。
在本典型实施例中,为了隐藏(disguise)移位寄存器52的线性关系,采用上述技术中的两种技术,即,时钟抖动和采用非线性函数。采用其他的非线性技术,下面描述这种技术。
在本典型实施例中,通过对移位寄存器52的多个元素进行非线性运算引入非线性关系。本典型实施例中,用一个非线性的函数将移位寄存器52的四个元素组合起来。典型的非线性函数如下所述:
Vn=(Sn+Sn+5)×(Sn+2+Sn+12)    (5)
这里,Vn是非线性输出(或生成器输出),+是算术加法器60所代表的截断(truncated)模256相加,而×是模乘法器62所代表的模257相乘,这些将在下面描述。在本典型实施例中,所采用的四个字节是Sn、Sn+2、Sn+5和Sn+12,其中,Sn是序列中按照式(4)中的递推关系最早计算的元素。这些元素的选择使得当寄存器移位时,两个生成器(generator)输出的计算中不会使用两个元素。这些元素之间数据对的距离(pairwise distance)是不相同的值。例如,Sn+12是不与Sn+5、Sn+2组合的,再有,Sn也不是通过寄存器52移位的。
通过数据位之间的进位,用简单字节相加,并使结果取模256截断便在GF(28)中形成非线性。在本典型实施例中,采用模256相加,将寄存器{(Sn和Sn+5)以及(Sn+2和Sn+12)}中的两个元素对组合起来,产生两个中间结果。但是,因为最小有效位没有进位输入并且仍然是线性组合的,所以模256相加不理想。
在处理器上可以方便地进行计算的另一个非线性函数是乘法。然而,将普通的相乘截断成一个字节不会产生良好的结果,这是因为模256相乘不会因结果不是在域中很好分布的而形成一群。可以采用对素数257取模的整数的域的乘群。这一群由1至256范围内的整数组成,群运算是按模257简约的整数乘。注意,值0是不出现在这一群中的,但值256却出现在该群中。本典型实施例中,256的值可以用字节值0来代表。
通常,处理器可以有效地执行乘法指令,但有许多的处理器不具备并且也不是有效地具备执行除法或取模指令的能力。所以,按模257简约可以代表性能指标的瓶颈。但是,可以用其他计算模2n来计算模257简约,在n=8的情况下,对于普通的处理器来说是有效的。可以证明,对于1到216-1范围内的X(这里,X是两个第8阶操作数相乘的结果)值,按模257简约可以计算为: X 257 = { X 256 - X 256 } 257 - - - - - - - ( 6 )
这里,X257是X的模257简约,而X256是X的模256简约。等式(6)表示16-位数的模257简约可以通过从8个最小有效位(X256)中减去8个最高有效位(X/256)来得到。相减的结果是在-255和255的范围内,并且可以是负数。如果结果是负数,那么可以通过加上257将其调整到正确的范围内。在另一种实施例中,模257简约可以用包含65,536个元素(每一个为8位宽)的查询表来执行。
两个中间结果的相乘是可以使用的许多非线性函数中的一种。其他的非线性函数,如弯曲函数或在将它们组合起来之前置换字节值,也可以是用查询表来实施本发明涉及产生非线性输出的各种非线性函数的使用。
在本典型实施例中,也可以采用时钟抖动来引入附加的非线性。从如上所述的线性反馈移位寄存器的状态产生的非线性输出可以用来重新构成移位寄存器的状态。这一重构会因不代表生成器输出处的某些状态以及用不可预计的方式对其进行选择而变得更加困难。在本典型实施例中,非线性输出用来判断输出数据流中会出现什么后续的非线性输出字节。当启动生成器时,第一个输出字节用作时钟抖动控制字节。在本典型实施例中,每一时钟抖动控制字节被分成四对数据位,最低有效位是首先使用的。当已经使用了所有四对数据位以后,将来自生成器的下一个非线性输出字节用作下一个时钟抖动控制字节,等等。
四对时钟抖动控制位可以取四个值中的一个值。本典型实施例中,每一对值所执行的动作见表3中。
                     表3
  数据对值 生成器动作
    (0,0) 使寄存器循环,但不产生输出
    (0,1) 使寄存器循环,并且用常数(01101001)2与非线性输出XOR而变成生成器的输出。使寄存器再次循环。
    (1,0) 使寄存器循环两次,并且非线性输出变成生成器的输出。
    (1,1) 使寄存器循环,并且用常数(11000101)2与非线性输出XOR而变成生成器的输出。
如表3中所示,在本典型实施例中,当数据对值是(0,0)时,寄存器再次循环,但不产生输出。寄存器的循环表示按照等式(4)进行下一个序列输出的计算,并将该新的元素移位到寄存器内。随后采用下一个时钟抖动控制数据对确定下一步要采取的动作。
在本典型实施例中,当数据对值是(0,1)时,使寄存器循环,并按照等式(5)产生非线性输出。使非线性输出与常数(01101001)2异或,并将结果作为生成器输出。随后使寄存器再次循环。图4中,用异或门66执行异或功能,并用来自缓冲器70的时钟抖动控制数据对由多路复用器(MUX)64进行选择。将XOR门66的输出提供到开关(switch)68,开关68提供生成器输出和输出字节,用于按照时钟抖动控制数据对值的时钟抖动控制。时钟抖动控制的输出字节被提供到缓冲器70。
本典型实施例中,当数据对值是(1,0)时,使寄存器循环二次,并提供按照等式(5)产生的非线性输出,作为生成器输出。
本典型实施例中,当数据对值是(1,1)时,使寄存器循环,并按照等式(5)产生非线性输出。随后,使非线性输出与常数(11000101)2异或,并提供结果作为生成器输出。
本典型实施例中,上述步骤中使用的常数是这样选择的,它使得当产生生成器输出时,输出中半数的数据位相对于其他时钟抖动控制数据对产生的输出反相。对于时钟抖动控制数据对(1,0),可以将非线性输出看作是与常数(00000000)2的异或。因此,任意三个常数之间的汉明间距是4。数据位反相还屏蔽了生成器的线性关系,并阻碍了根据生成器输出重构状态的企图。
本发明支持多层键控结构。支持多层键控结构的密码流特别适用于这样的无线通信系统,即,这种通信系统中的数据是在可能接收有差错或失序的帧中传送的。下面描述典型的二层键控结构。
在本典型实施例中,采用一个秘密密钥来使生成器初始化。采用该密钥来使生成器在序列中有一个不可预计的跳步。本典型实施例中,密钥的长度是4到k-1个字节(对于典型的阶数为17的递推关系为32到128个数据位)。由于初始随机化可能会不合适,所以最好不采用小于4个字节的密钥。也可以采用大于k-1个字节的密钥,但太浪费,并且必须小心,从而密钥的值不会使寄存器状态全都被设置为0,这是一个当前限制下不会出现的状态。本实施例中,在方框112处,移位寄存器的状态首先用斐波纳契数模256初始化。因而分别用1、1、2、3、5、8等将元素S0、S1、S2、S3、S4、S5等初始化。尽管采用的是斐波纳契数,但任何一组在伽罗瓦域中不是线性相关的非零数都可以用来使寄存器初始化。这些数不应当具有可拓线性关系,因它可以用来重构寄存器的状态。
接着,在方框114处,将环路指数设置为零。于是,密钥初始化过程进入环路。环路中的第一个步骤内,即在方框116处,将密钥资料的第一个不用的字节加到Sn上。密钥资料的叠加使得生成器在序列中进行不可预计的跳步。密钥随后在方框118处移位一个字节,从而删除方框116中使用的字节。随后在方框120处,寄存器循环。方框116和120的组合有效地进行下述计算:
S=(100Sn+9)Sn+4(141(SnK))    (7)
这里,K是密钥资料第一个不用的字节。在方框122处,使环路指数n递增。随后在方框124处,判断是否使用了全部密钥资料。如果答案是否定的,则处理过程回到116。否则,过程继续到方框126。
本典型实施例中,在方框126处,将密钥的长度加到Sn上。密钥长度的叠加使得生成器在序列中进行附加的跳步。随后,处理过程进入第二个环路。在第二个环路的第一个步骤中,在方框128处,寄存器循环。环路指数在方框130处递增,并在方框132处再次与生成器的阶数k比较。如果n不等于k,则处理过程回到方框128。否则,如果n等于k,则过程继续进行到方框134,存储生成器的状态。过程随后在方框136处终断。
除了秘密密钥以外,本发明中还可以采用二级密钥。二级密钥是不被看作是保密的,但在一种典型的无线电话系统中被用作产生用于每一帧数据特有的密码。这就保证了擦除或失序的帧不会损坏信息流。本典型实施例中,密码流接受每帧密钥,称为帧密钥,其形式是4个八位字节的无符号整数。每帧初始化与上述密钥初始化类似,但该初始化是为每一帧数据而进行的。如果使用密码流使得不必使用每帧密钥信息,例如用于在可靠链路上的文件传送,则可以省去每帧初始化过程。
具有帧密钥的典型每帧初始化过程的流程图如图6所示。过程在方框210处开始。本典型实施例中,在方框212处,使生成器的状态用由上述密钥初始化过程存储的状态初始化。接着,在方框214处,将环路指数n设置为零。随后,每帧初始化过程进入环路。在环路中的第一个步骤中,在方框216处,将帧密钥的最小有效字节模256加到Sn上。在方框218处,帧密钥接着移位三个数据位,从而删去方框216中使用的三个最小有效位。寄存器接着在方框220处循环。在本典型实施例中,循环指数n在方框222处递增,并在方框224处与11比较。11的值与方框224中使用的那样,与用作帧密钥的32个数据位以及一次移位三个数据位的帧密钥的事实对应。不同的帧密钥选择和每次移位不同数目的数据位会产生方框224中使用的不同的比较值。如果n不等于11,那么处理过程回到方框216。否则,如果n等于11,则过程继续进行到方框226,寄存器再次循环。环路指数n在方框228处递增,并在方框230处与2k比较。如果n不等于2k,则过程回到方框226。否则,如果n等于2k,则过程在方框232处终断。
上文中已经针对具有256个元素的典型伽罗有限域描述了本发明。也可以采用其他不同类型的有限域,从而元素的大小与用作对元素运算处理的处理器和/或用于构成移位寄存器或其他优点的存储器的字节或字长匹配。所以,可以采用具有多于两个元素的各种有限域,并且这也在本发明的范围内。
上述例子采用了各种非线性处理来屏蔽递推关系的线性关系。也可以用不同的非线性处理或上述非线性处理器和其他的非线性处理器的不同组合来设计其他的发生器。所以,也可以考虑用各种非线性处理器来产生非线性输出,这也在本发明的范围内。
上述例子采用具有阶数为17并由等式(4)定义的递推关系。也可以生成具有其他阶数的递推关系,这也在本发明的范围内。另外,多于给定的阶数,也可以生成各种递推关系,并且这也在本发明的范围内。本发明中,最好采用最大长度的递推关系,这样会得到最佳结果。
上述较佳实施例的描述使得本领域中的普通技术人员能够制造和使用本发明。很明显,本领域中的普通技术人员还可以对这些实施例作各种修正,在没有发明人的帮助下,可以将其基本原理应用于其他的实施例。所以,本发明并非仅限于所述的实施例,应当从最宽的范围来理解本发明的原理和所揭示的新特征。

Claims (35)

1.一种产生密码流的方法,其特征在于,它包含:
选择具有阶数大于1的有限域;
选择所述有限域上的递推关系;
选择至少一个非线性处理过程;以及按照所述递推关系和所述非线性处理过程计算所述密码流。
2.如权利要求1所述的方法,其特征在于,所述有限域是根据用于计算所述密码流的处理器的字长选择的。
3.如权利要求1所述的方法,其特征在于,所述有限域是包含256个元素的伽罗瓦域。
4.如权利要求1所述的方法,其特征在于,所述递推关系是最大长度。
5.如权利要求1所述的方法,其特征在于,所述递推关系具有阶数17。
6.如权利要求1所述的方法,其特征在于,所述递推关系是用线性反馈移位寄存器来实现的。
7.如权利要求6所述的方法,其特征在于,所述线性反馈移位寄存器是用循环缓冲器实现的。
8.如权利要求6所述的方法,其特征在于,所述线性反馈移位寄存器是用滑动窗口实现的。
9.如权利要求1所述的方法,其特征在于,所述至少一个非线性处理过程包含对用来实现所述递推关系的移位寄存器进行时钟抖动(stuttering)。
10.如权利要求9所述的方法,其特征在于,所述时钟抖动是按照所述密码流进行的。
11.如权利要求1所述的方法,其特征在于,所述至少一个非线性处理过程包含计算所述生成器状态的非线性函数。
12.如权利要求1所述的方法,其特征在于,所述至少一个非线性处理过程包含使选择的所述密码流的数据位反相。
13.如权利要求12所述的方法,其特征在于,所述数据位反相是按照具有汉明间距的一组常数进行的,选择的所述汉明间距用来使所述密码流中半数的数据位反相。
14.如权利要求1所述的方法,其特征在于,所述的计算步骤包含域相乘和模相加。
15.如权利要求14所述的方法,其特征在于,所述域相乘的结果由素数的模简约。
16.如权利要求15所述的方法,其特征在于,所述素数是257。
17.如权利要求14所述的方法,其特征在于,所述域相乘是用查询表进行的。
18.如权利要求17所述的方法,其特征在于,所述查询表是预计算并存储在存储器元件内的。
19.如权利要求14所述的方法,其特征在于,所述域相乘是通过下述步骤进行的:
查询由两个操作数中的每一个的对数值组成的表格;
将所述两个操作数的对数值进行模相加,得到一个组合的对数值;以及
查询由所述组合的对数值的指数值组成的表。
20.如权利要求1所述的方法,其特征在于,它还包含下述步骤:
用一秘密密钥使所述生成器初始化。
21.如权利要求20所述的方法,其特征在于,所述初始化步骤包含下述步骤:
将所述秘密密钥的最小有效字节加到所述递推关系上;
使所述秘密密钥移位一个字节;以及
重复所述相加步骤和所述移位步骤,直到所述秘密密钥中的所有字节被加到了所述递推关系上。
22.如权利要求20所述的方法,其特征在于,所述秘密密钥的长度小于所述递推关系的阶数。
23.如权利要求1所述的方法,其特征在于,它还包含下述步骤:
用每帧秘密密钥使所述生成器初始化。
24.如权利要求23所述的方法,其特征在于,用每帧秘密密钥对所述生成器进行的所述初始化包含下述步骤:
将所述每帧秘密密钥的最小有效字节加到所述递推关系上;
使所述每帧秘密密钥移位三个数据位;
重复所述相加步骤和所述移位步骤,直至所述每帧秘密密钥中的所有字节被加到了所述递推关系上。
25.如权利要求23所述的方法,其特征在于,所述每帧秘密密钥的长度是四个八位长。
26.如权利要求23所述的方法,其特征在于,用每帧秘密密钥对所述生成器进行的所述初始化的步骤是针对每一数据帧进行。
27.一种生成密码流的装置,其特征在于,它包含:
接收进行递推关系和至少一个非线性处理的指令的处理器,所述处理器按照所述指令对元素执行相乘。
28.如权利要求27所述的装置,其特征在于,所述递推关系是定义在具有阶数大于1的有限域上的。
29.如权利要求28所述的装置,其特征在于,所述有限域是根据所述处理器的字长选择的。
30.如权利要求28所述的装置,其特征在于,所述有效域是包含256个元素的伽罗域。
31.如权利要求27所述的装置,其特征在于,所述递推关系是最大关系。
32.如权利要求27所述的装置,其特征在于,所述递推关系具有阶数为17。
33.如权利要求27所述的装置,其特征在于,所述递推关系是用线性反馈移位寄存器实现的。
34.如权利要求33所述的装置,其特征在于,所述线性反馈移位寄存器是用循环缓冲器实现的。
35.如权利要求33所述的装置,其特征在于,所述线性反馈移位寄存器是用滑动窗口实现的。
CN98809380A 1997-09-22 1998-09-22 产生加密密码流的方法和装置 Withdrawn CN1302497A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/934,582 1997-09-22
US08/934,582 US6510228B2 (en) 1997-09-22 1997-09-22 Method and apparatus for generating encryption stream ciphers

Publications (1)

Publication Number Publication Date
CN1302497A true CN1302497A (zh) 2001-07-04

Family

ID=25465758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98809380A Withdrawn CN1302497A (zh) 1997-09-22 1998-09-22 产生加密密码流的方法和装置

Country Status (8)

Country Link
US (1) US6510228B2 (zh)
EP (1) EP1018238A2 (zh)
JP (1) JP2001517897A (zh)
KR (1) KR20010023985A (zh)
CN (1) CN1302497A (zh)
AR (2) AR016657A1 (zh)
AU (1) AU1994799A (zh)
WO (1) WO1999016208A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101138195B (zh) * 2005-02-14 2011-05-18 法国电信公司 用于生成伪随机数据序列的方法、系统及设备
US8126140B2 (en) 2004-08-02 2012-02-28 France Telecom Generation of a pseudorandom data sequence
CN110443053A (zh) * 2019-07-31 2019-11-12 四川效率源信息安全技术股份有限公司 一种基于密钥循环表及映射表的密钥生成方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
US6490357B1 (en) * 1998-08-28 2002-12-03 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
NL1012581C2 (nl) * 1999-07-13 2001-01-16 Koninkl Kpn Nv Werkwijze voor het beschermen van een draagbare kaart.
US6968493B1 (en) * 1999-09-14 2005-11-22 Maxtor Corporation Randomizer systems for producing multiple-symbol randomizing sequences
US6771776B1 (en) * 1999-11-11 2004-08-03 Qualcomm Incorporated Method and apparatus for re-synchronization of a stream cipher during handoff
US6961427B1 (en) * 1999-11-23 2005-11-01 General Instrument Corporation Methods and apparatus for keystream generation
DK1686722T3 (en) * 2000-03-09 2017-02-20 Mitsubishi Electric Corp Block encryption device and block encryption method comprising rotation key programming
WO2001086860A1 (en) * 2000-05-09 2001-11-15 Verizon Laboratories Inc. Stream-cipher method and apparatus
US7003106B2 (en) * 2000-08-04 2006-02-21 Innomedia, Pte, Ltd Efficient method for multiplication over galois fields
US6678707B1 (en) 2000-10-30 2004-01-13 Hewlett-Packard Development Company, L.P. Generation of cryptographically strong random numbers using MISRs
DE10061315A1 (de) * 2000-12-08 2002-06-13 T Mobile Deutschland Gmbh Verfahren und Vorrichtung zum Erzeugen einer Pseudozufallsfolge
CA2330166A1 (en) * 2000-12-29 2002-06-29 Nortel Networks Limited Data encryption using stateless confusion generators
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
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
US7346160B2 (en) * 2003-04-23 2008-03-18 Michaelsen David L Randomization-based encryption apparatus and method
JP3959076B2 (ja) * 2003-06-16 2007-08-15 三星電子株式会社 有限体の二乗演算方法及び二乗演算装置
US20110064214A1 (en) * 2003-09-09 2011-03-17 Ternarylogic Llc Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7505589B2 (en) * 2003-09-09 2009-03-17 Temarylogic, Llc Ternary and higher multi-value digital scramblers/descramblers
US8577026B2 (en) 2010-12-29 2013-11-05 Ternarylogic Llc Methods and apparatus in alternate finite field based coders and decoders
US7257225B2 (en) * 2003-12-29 2007-08-14 American Express Travel Related Services Company, Inc. System and method for high speed reversible data encryption
US8364977B2 (en) * 2004-02-25 2013-01-29 Ternarylogic Llc Methods and systems for processing of n-state symbols with XOR and EQUALITY binary functions
US20070127431A1 (en) * 2005-11-11 2007-06-07 Samsung Electronics Co., Ltd. Method and apparatus for generating pseudorandom binary sequence in communication system using linear feedback shift register
KR100656404B1 (ko) * 2005-11-26 2006-12-11 한국전자통신연구원 교환 가능한 선형함수를 이용한 키 설정 방법 및 그 시스템
CN101216868A (zh) * 2007-01-05 2008-07-09 李树德 一种应用混沌密码流加密的方法和系统
US8345873B2 (en) * 2007-04-04 2013-01-01 Ternarylogic Llc Methods and systems for N-state signal processing with binary devices
CN102176693A (zh) * 2011-03-04 2011-09-07 南京航空航天大学 非线性循环移位寄存器
US8677150B2 (en) 2012-02-01 2014-03-18 Intel Mobile Communications GmbH Low-power multi-standard cryptography processing units with common flip-flop/register banks
ZA202004225B (en) 2019-07-11 2023-07-26 Entersekt International Ltd System and method for secure input at a remote service

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3700806A (en) * 1967-09-18 1972-10-24 Csf Key generators for cryptographic devices
JPS508907B1 (zh) * 1970-07-08 1975-04-08
US3751648A (en) * 1971-12-01 1973-08-07 Communications Satellite Corp Generalized shift register pulse sequence generator
US4418425A (en) * 1981-08-31 1983-11-29 Ibm Corporation Encryption using destination addresses in a TDMA satellite communications network
US4484027A (en) 1981-11-19 1984-11-20 Communications Satellite Corporation Security system for SSTV encryption
US4597083A (en) * 1984-04-06 1986-06-24 Ampex Corporation Error detection and correction in digital communication systems
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
DE3852999T2 (de) * 1987-06-30 1995-06-14 Matsushita Electric Ind Co Ltd Galois-feld-recheneinheit.
US5440570A (en) * 1990-03-27 1995-08-08 National Science Council Real-time binary BCH decoder
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
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
EP0496157A3 (en) * 1991-01-22 1992-08-12 International Business Machines Corporation Apparatus and method for decoding linear algebraic codes
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
US5153919A (en) 1991-09-13 1992-10-06 At&T Bell Laboratories Service provision authentication protocol
US5414719A (en) * 1992-04-24 1995-05-09 Sharp Kabushiki Kaisha Operating circuit for galois field
US5349611A (en) * 1992-11-13 1994-09-20 Ampex Systems Corporation Recovering synchronization in a data stream
DE69330070T2 (de) * 1992-12-30 2001-11-08 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
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 ノキア モービル フォーンズ リミテッド インターリーブプロセス
US5745522A (en) * 1995-11-09 1998-04-28 General Instrument Corporation Of Delaware Randomizer for byte-wise scrambling of data
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
US6009135A (en) * 1997-10-10 1999-12-28 Interdigtal Technology Corporation Method and apparatus for generating a stream cipher

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126140B2 (en) 2004-08-02 2012-02-28 France Telecom Generation of a pseudorandom data sequence
CN101138195B (zh) * 2005-02-14 2011-05-18 法国电信公司 用于生成伪随机数据序列的方法、系统及设备
US8260834B2 (en) 2005-02-14 2012-09-04 France Telecom Method system and device for generation of a pseudo-random data sequence
CN110443053A (zh) * 2019-07-31 2019-11-12 四川效率源信息安全技术股份有限公司 一种基于密钥循环表及映射表的密钥生成方法
CN110443053B (zh) * 2019-07-31 2023-03-14 四川效率源信息安全技术股份有限公司 一种基于密钥循环表及映射表的密钥生成方法

Also Published As

Publication number Publication date
EP1018238A2 (en) 2000-07-12
KR20010023985A (ko) 2001-03-26
AU1994799A (en) 1999-04-12
WO1999016208A2 (en) 1999-04-01
JP2001517897A (ja) 2001-10-09
AR016657A1 (es) 2001-07-25
US20020015493A1 (en) 2002-02-07
AR013725A1 (es) 2001-01-10
US6510228B2 (en) 2003-01-21
WO1999016208A3 (en) 1999-06-17

Similar Documents

Publication Publication Date Title
CN1302497A (zh) 产生加密密码流的方法和装置
CN1276939A (zh) 产生加密流密码的方法和设备
Aslett et al. A review of homomorphic encryption and software tools for encrypted statistical machine learning
EP2291735B1 (en) Cryptographic system including a random number generator using finite field arithmetics
EP2003546B1 (en) Closed galois field combination
EP2279579B1 (en) A closed galois field cryptographic system
US7970809B2 (en) Mixed radix conversion with a priori defined statistical artifacts
EP1583278B1 (en) Stream Cipher Design with Revolving Buffers
Etemadi Borujeni et al. Chaotic image encryption design using tompkins-paige algorithm
CN1531244A (zh) 生成加密数据流密码的方法和装置
US9417847B2 (en) Low depth combinational finite field multiplier
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
CN1282323C (zh) 用于有效密钥长度控制的方法和设备
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
Kasianchuk et al. Symmetric cryptoalgorithms in the residue number system
Strenzke A smart card implementation of the McEliece PKC
CN112272082B (zh) 图像加密/解密的方法及装置、电子设备、存储介质
CN110601817B (zh) 一种数据处理方法及装置
Lee et al. Ciphertext-only attack on linear feedback shift register-based Esmaeili-Gulliver cryptosystem
CN114465708B (zh) 隐私数据处理方法及装置、系统、电子设备、存储介质
CN115918028A (zh) 对同态密文执行统计操作的装置及其方法
Barenghi et al. A comprehensive analysis of constant-time polynomial inversion for post-quantum cryptosystems
Morales-Sandoval et al. Area/performance evaluation of digit-digit GF (2 K) multipliers on FPGAS
WO2009084026A2 (en) System and method for high speed modulo operations
JP5726394B2 (ja) 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置

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