专利名称:密钥流的产生方法及装置的制作方法
本申请要求1999年11月23日提出的美国临时专利申请第60/167,185号的优先权。
背景技术:
本发明一般是关于安全与密码学领域。提供随机密码单向函数(即密钥流)的产生方法及装置用于加密与解密二进制数据。二进制数据可以包括数字化视讯或音讯,以及网际网络协议或其它纯数据服务。虽然本发明在有线与卫星电视系统有控制存取额外服务的特有应用性,它也可以应用于以电子形式通讯的其它信息的保护。
更特别地,本发明提供一种使用多个反馈移位寄存器的非线性密钥流产生算法。此反馈移位寄存器可以使用称为延伸加洛亚场GF(2m)的高等数学概念来构成。此密钥或密钥流可以由可以是静态反馈移位寄存器与动态反馈移位寄存器的结合的多个反馈移位寄存器输出的非线性函数来产生。有许多系数的密集质式可以用于产生作为加密或解密密钥的密码强健密钥流。
一种可以混乱(加密)二进制数据的方法为以密钥流(密码密钥)处理二进制数据产生密语(加密数据)。密钥流是基于可以由拟随机序列产生的位序列。数据内容拥有想要用于复制保护密钥的衍生的技术是唯一的而且难于复制。为达到此目的,二进制数据可以使用此数据作为输入到密码单向杂凑函数,以及使用此函数输出作为其它二进制数据的加密密钥经由杂凑函数来处理。
一般指定美国专利第4,860,353号描述一种动态反馈安排混乱技术(DFAST)密钥流产生器。DFAST使用一种动态反馈移位寄存器,其架构利用多项式码信号来变化。此多项式码信号依照从此反馈移位寄存器预先决定寄存器级平移的数据位内容来变化。
提供用于产生一种相较于由DFAST与其它先前技术密钥流产生器提供的密钥流有增强密码与易于履行特征的密钥流将会是有益的。
提供使用延伸加洛亚场GF(2m)构成的多个反馈移位寄存器的密钥流产生将会是深一层地有益的。延伸加洛亚场数学运算适合于在软件系统履行。提供反馈移位寄存器的架构也利用多项式码信号变化的密钥流产生将仍然是深一层地有益的。提供使用数种随机化(即置换)级以非线性方法结合来自此反馈移位寄存器的预先决定寄存器级的数据位的密钥流产生将甚至更深一层地有益的。
本发明提供上述与其它优点。更特别地,本发明提供描述于一般指定美国专利第4,860,353号的DFAST技术的延伸与改善。一种依照本发明的改善动态反馈安排混乱技术(有时在此称为"DFAST2")提供一种相较于DFAST有增强密码与易于履行特征的密钥流。本发明适合用于有线电视系统或有部署点(POD)功能的主机。本发明特别适合于使用美国科罗拉多公司(CableLabsTM)的有线电视实验室发展的OpenCableTM组视讯转换器与PODs并包含于2000年一月POD复制保护标准(January 2000 POD Copy Protection Standard)。
发明内容
本发明提供产生用于加密或解密二进制数据接近随机的输出的密码单向函数的产生方法与装置。更特别地,本发明提供一种使用多个反馈移位寄存器的非线性密钥产生算法。密钥流典型地为用于加密或解密数据流使用互斥(exclusive OR)运算的一长列随机化位。一种密钥流产生器为这些位的来源,而来自此密钥流产生器的第一组位出可以用来一种作为确定大小的实际加密密钥。"密钥"项可以因此意指一种来自密钥流产生器的固定字节(例如56位)输出。此反馈移位寄存器可以使用称为延伸加洛亚场(Galois Field)GF(2m)的高等数学概念来构成。此密钥可以由可以是静态反馈移位寄存器与动态反馈移位寄存器的结合的多个反馈移位寄存器输出的非线性函数来产生。有许多系数的密集质式可以用于产生作为加密或解密密钥的密码强健密钥。
在本发明的一种说明实施例,使用多个反馈移位寄存器产生密钥。每个反馈移位寄存器在对时钟信号反应连续地平移数据位期间有输入,中间,与输出级。来自多个反馈移位寄存器的预先决定寄存器级的数据位提供给第一随机化级。第一随机化级的输出提供给第二随机化级。第二随机化级输出与来自多个反馈移位寄存器的其它预先决定寄存器级的数据位提供给至少一个额外的随机化级。在每个随机化级置换数据位且最终随机化级的输出提供此密钥流。密钥流的最后56个位可以作为最终密钥。
在一种较佳实施例,一种第三随机化级可以为最终随机化级。
至少一个反馈移位寄存器的结构可以对多项式码信号产生器产生的多项式码信号的反应来变化。另外,用于产生此多项式码信号的多项式码可以变化。
此反馈移位寄存器可以包括多个动态反馈移位寄存器与至少一个静态反馈移位寄存器。
在一种较佳实施例,此反馈移位寄存器可以包括一个第一动态反馈移位寄存器,一个第二移位动态反馈移位寄存器以及一个静态反馈移位寄存器。种子数据可以输入到一个输入缓冲器。来自此输入缓冲器的利子数据的第一部分可以提供给第一动态反馈移位寄存器而来自此输入缓冲器的种子数据的第二部分可以提供给第二动态反馈移位寄存器。来自此输入缓冲器的种子数据的第三部分可以提供给静态反馈移位寄存器。
动态反馈移位寄存器的数据位可以对时钟信号的反应从每个寄存器级连续地平移。一些有限场加法器可以安排于动态反馈移位寄存器的寄存器级的预先决定对之间,使得从前面寄存器级提供到每个加法器的输入的其中之一而且从输出级的输出终端经由有限场乘法器反馈到每个加法器的其它输入。
此第一随机化级可以包括一个用于从预先决定寄存器级置换数据位的随机化表(例如一个置换表)。此第二随机化级可以包括一个非线性混合函数以结合第二随机化级的输出与来自此反馈移位寄存器其它预先决定寄存器级的数据位。第三随机化级可以包括多个非线性代换箱(S-Boxes)。此代换箱(S-Boxes)可以是8*8代换箱(S-Boxes)。第三随机化级可以包括256个非线性8*8代换箱(S-Boxes)。
在一种较佳实施例,此反馈移位寄存器可以使用延伸加洛亚场(GF(2m))构成。例如,可以使用加洛亚场(GF(2^8))。用于此反馈移位寄存器的多项式可以是质式而且是不可约的以保证最价长度输出序列。
在一种可选择的实施例,第一随机化级可以包括用于置换预先决定寄存器级的数据位的多个随机化表。例如,在第一个随机化级可以提供八个随机化表。反馈移位寄存器的数据位可以在输入到第一随机化级之前多任务。
在一种另外的实施例,第三随机化级的输出可以提供给预先-密钥流寄存器。该预先-密钥流寄存器的输出的选择位可以提供给选择电路缓冲器。此选择电路缓冲器的输出可以提供给解码逻辑单元,其解码逻辑单元解码一种特定的多项式用于产生多项式码信号,该多项式码信号提供给至少一个反馈移位寄存器。该预先-密钥流寄存器的输出的剩余位可以提供给密钥流寄存器。此密钥流寄存器的输出提供密钥流。第三随机化级可以包括多个非线性代换箱(S-Boxes)。
代换箱(S-Boxes)的某一输出可以提供给码流寄存器。此输出可以藉由码流寄存器纪录并加到从至少一个反馈移位寄存器经由非二元(non-binary)加法器平移的数据位以产生反馈数据位。此反馈数据位可以提供给至少一个反馈移位寄存器的输入级与预先决定的中间级。
建议使用192位共享种子输入,但也可以使用其它输入密钥长度。192位输入的使用将产生输出密钥流的56位密钥。此192位输入可以从128位输入复制一半位来得到。
加洛亚场28运算的使用适合于使用8,16,或32位指令宽度的CPU履行。虽然本发明描述软件履行,它可以简单地改写为硬件履行。
图1显示本发明的一种区块图表示;图2显示本发明的一种说明实施例;图3显示本发明的一种选择说明实施例;图4显示依照本发明一种静态反馈移位寄存器的履行;图5显示依照本发明一种动态反馈移位寄存器的履行;以及图6显示依照本发明另一种动态反馈移位寄存器的履行。
具体实施例方式
本发明提供用于使用多个反馈移位寄存器的密钥的产生方法与装置。此反馈移位寄存器可以使用称为延伸加洛亚场GF(2m)的高等数学概念来构成。此密钥或密钥流可以由可以是静态反馈移位寄存器与动态反馈移位寄存器的结合的多个反馈移位寄存器输出的非线性函数来产生。有许多系数的密集质式可以用于产生作为加密或解密密钥的密码强健密钥流。
此密钥流可以以此密钥流对计算有界限的敌手看似好象随机的目的从共享种子密钥产生。此共享种子密钥值可以例如从主机鉴定与密钥交换程序来得到。建议使用192位共享种子输入,但也可以使用其它输入密钥长度。192位输入的使用将产生56位密钥流。此192位输入可以从128位输入利用复制一半位来得到。
在图1所示的本发明的一种说明实施例,使用多个反馈移位寄存器产生密钥流100。每个反馈移位寄存器在对时钟信号反应连续地平移数据位期间有输入,中间,与输出级。来自多个反馈移位寄存器的预先决定寄存器级的数据位10提供给第一随机化级20。第一随机化级20的输出提供给第二随机化级30。第二随机化级输出30与来自多个反馈移位寄存器的其它预先决定寄存器级的数据位12提供给至少一个额外的随机化级。在每个随机化级置换数据位且最终随机化级40的输出提供此密钥流100。
在图1,显示三个随机化级20,30,以及40,以第三随机化级为最终随机化级40。然而,本领域技术人员将察知可以提供任何随机化级数目,依照履行与密钥流100要求的密码完整而定。
至少一个反馈移位寄存器的结构可以对利用多项式码信号产生器(例如解码逻辑单元80)产生的多项式码信号90的反应来变化。另外,用于产生多项式码信号90的多项式码可以变化。
此反馈移位寄存器(FSR)可以包括多个动态反馈移位寄存器(DFSR)与至少一个静态反馈移位寄存器(SFSR)。此两个DFSRs可以平行安排。产生密钥流100为SFSR与DFSRs输出的非线性函数。此DSFRs为其结构利用多项式码信号90变化的动态反馈移位寄存器。多项式码信号90可以自己依照从预先决定寄存器级平移的数据位来变化。如果此多项式码变化,则复制密钥流100实质上是较有效率的。造成多项式码90变化的位最好不包括于密钥流100之内。
在图2所示的较佳实施例,此反馈移位寄存器可以包括一个静态反馈移位寄存器A(一般指定为110),一个第一动态反馈移位寄存器B(一般指定为120),以及一个第二动态反馈移位寄存器C(一般指定为130)。种子数据可以输入到输入缓冲器140。输入缓冲器140的内容可以平行加载移位寄存器110,120,与130以初始化密钥流产生。来自输入缓冲器140的种子数据的第一部分可以提供给第一动态反馈移位寄存器B而来自此输入缓冲器的种子数据的第二部分可以提供给第二动态反馈移位寄存器C。来自此输入缓冲器的种子数据的第三部分可以提供给静态反馈移位寄存器A。
在图2所示的实施例,反馈移位寄存器110,120,与130(分别为寄存器A,B,与C)可以使用延伸加洛亚场(GF(2m))构成。如广为本领域技术人员所知的,加洛亚场是一种利用考虑给定多项式的系数与根获得的数学场延伸。用于本发明反馈移位寄存器的多项式可以是质式而且是不可约的。每个这样的移位寄存器将产生最大长度=2^(m*L)-1的序列(其中L为移位寄存器的数目)。
在此图中,RGA表示寄存器A(110)级的输出,RGB表示寄存器B(120)级的输出,以及RGC表示寄存器C(130)级的输出。例如,图2显示有L寄存器级(RGA0,RGA1,RGA2,…,RGAL-1)输出的寄存器A。
反馈移位寄存器110,120与130的数据位可以对时钟信号的反应从每个寄存器级连续地平移。一些有限场加法器可以安排于动态反馈移位寄存器110,120,与130的寄存器级的预先决定对之间,使得从前面寄存器级提供到每个加法器的输入的其中之一而且从输出级的输出终端经由有限场乘法器反馈到每个加法器的其它输入。图2每个反馈移位寄存器110,120,与130的结构的范例详细描述于下与图4,5,与6有关。值得注意的是本发明可以使用三个或更多非线性函数级以结合从反馈移位寄存器的预先决定寄存器级平移的数据位。
第一随机化级(例如图1的第一随机化级20)可以包括一个或更多用于置换预先决定寄存器级的数据位的随机化表(例如"F1表"150-157)。在图2所示的范例,使用八个F1表150-157。此八个F1表只显示用于此范例的用途,而本领域技术人员将察知本发明在第一随机化级可以使用任何F1表(或类似非线性函数)数目来履行。F1表150-157可以是用于对应从不同反馈移位寄存器平移的数据位到不同数值的固定代换表。在它们的来源反馈移位寄存器结构,每个F1表的输入可以利用至少一个互斥闸分隔。
此反馈移位寄存器的选择寄存器级的数据位可以在输入到F1表150-157之前多任务(例如在多任务器170-173)。对从一个不同预先决定寄存器级平移的数据位的反应控制在从不同预先决定寄存器级平移的数据位之间利用多任务器170-173的选择。例如,在图2,两个输出位(RGAj与RGAi)直接从寄存器A的不同级平移到多任务器170。对从寄存器C(RGAn)平移的数据位的反应利用多任务器170选择RGAj与RGAi其中之一。类似的运算发生于多任务器171,172,与173。多任务器170,171,172,与173的输出分别提供给F1表150,153,154,与157。
F1表151接收到直接来自寄存器A(RGAm)级的输入。F1表152接收到直接来自寄存器B(RGBP)级的输入。F1表155接收到直接来自寄存器A(RGAmm)级的输入。F1表156接收到直接来自寄存器B(RGBPP)级的输入。
第二随机化级(例如图1的第二随机化级30)可以包括一个或更多非线性混合函数(例如161,162)以结合第二随机化级的输出与来自其它反馈移位寄存器的预先决定寄存器级的数据位。在图2所示的范例,两个非线性混合函数161,162只用于此范例的用途。本领域技术人员将察知本发明在第二随机化级可以使用任何非线性混合函数(或类似非线性置换函数)的数目来履行。
非线性混合函数161,162使用的非线性逻辑结合至少4接头位置,一些来自F1表输出,而数个其它的直接来自预先决定FSR级。例如,图2显示非线性混合函数161有来自F1表153的输入RGB'i'/j',来自F1表152的输入RGB'P,来自F1表151的输入RGA'm,与来自F1表150的RGA'i/j,以及分别直接来自寄存器A级与寄存器B级的输入RGAq'与RGBq。在这样的范例,此非线性混合函数可以为g0=RGA'i/jRGB'i'/j'RGAq'RGB'pRGA'mRGBq。在此方程式,表示场元素乘法运算,而表示场元素加法运算(位XOR)。
非线性混合函数162显示有来自F1表154的输入RGA'ii/jj,来自F1表155的输入RGA'mm,来自F1表156的RGB'pp,与来自F1表157的输入RGB'ii'/jj',以及分别直接来自寄存器A级与寄存器B级的输入RGAn'与RGBn。这些输入可以利用函数gl=RGA'ii/jjRGB'ii'/jj'RGAn'RGB'ppRGA'mmRGBn结合于非线性混合函数162。
第三随机化级(例如图1的最终随机化级40)可以包括多个非线性代换箱(S-Boxes)165。此代换箱(S-Boxes)165可以是8*8代换箱(S-Boxes)。
在一种较佳实施例,第三随机化级可以包括256个非线性动态8*8代换箱(S-Boxes)165(例如S0,S1,S2,…,S255)。提供一种回路计数器计数n(FSR循环的数目)以保证在运算期间动态代换箱(S-Boxes)165中的每个元素改变。两个延伸加洛亚场移位寄存器结构的至少一个预先决定级直接提供代换箱(S-Box)165地址信号的随机化字节(显示为RGBx与RBAy输入到代换箱(S-Box)随机存取内存166)。来自非线性混合函数161,162的已经高度随机化输出(g0与g1)加到代换箱(S-Box)165的第n个元素,以及直接来自FSR结构索引为RGBx/RGAy的代换箱(S-Box)165元素。这样产生高度随机化输出Y0'与Y1'。接着交换索引为n与Y0'/Y1'的代换箱(S-Box)元素以至于在第一个FSR平移运算的256循环期间影响在(S0,S1,S2,…,S255)的每个元素。
在另一个实施例,第三随机化级(例如代换箱(S-Box)165)的输出(预先-密钥流45)可以提供给预先-密钥流寄存器50。该预先-密钥流寄存器50的输出的选择位可以提供给选择电路缓冲器70。选择电路缓冲器70的输出可以提供给解码逻辑单元80,其解码逻辑单元80解码一种特定的多项式用于产生多项式码信号90,该多项式码信号90提供给至少一个动态反馈移位寄存器120,130。该预先-密钥流寄存器50的输出的剩余位可以提供给密钥流寄存器60。此密钥流寄存器60的输出提供密钥流100。
预先-密钥流45可以以系统时钟率纪录到预先-密钥流寄存器50。预先-密钥流45的选择字节可以以二分之一系统时钟率利用反向CLOCK/2信号纪录到选择电路缓冲器70。预先-密钥流45的剩余字节可以以二分之一系统时钟率利用非反向CLOCK/2信号纪录到密钥流寄存器60。这避免了放置预先-密钥流45的连续字节到密钥流100。这也保证密钥流字节不作为信号来控制多项式码信号90的选择。预先-密钥流寄存器50为最终输出创造级而且每非反向CLOCK/2的时钟循环产生8位输出数据。
解码逻辑单元80使用储存于选择电路缓冲器70的位以解码一种特定多项式,设定对应特定多项式的信号为真,而设定所有其它多项式信号为假。
解码逻辑单元80可以使用一种固定字节代换表(F2表81)以提供大于2m个不同多项式码信号90。F2表81可以是一类似于F1表150-157的固定代换表。
代换箱(S-Boxes)165的某一输出可以提供给码流寄存器175。此输出可以藉由码流寄存器175(码流48)纪录并加到从至少一个反馈移位寄存器120,130经由非二元加法器平移的数据位以产生反馈数据位。此反馈数据位可以提供给至少一个反馈移位寄存器120,130的输入级与预先决定的中间级。码流48与预先-密钥流45不同并只影响动态FSR结构(120与130)而非静态FSR结构(110)。
图3说明本发明图2实施例的特定结构,其中用于FSR的多项式构成于延伸加洛亚场GF(2^8),而为了产生最大长度序列,所有的多项式选择为质式且是不可约的。这些多项式的阶数为8所以将有8个用于每个FSR的8-元组移位寄存器单元级。由于此多项式的项稀少可以是一种密码弱点来源,因此使用许多系数的密集质式。每个FSR的每级的输出可以有8位(一个字节)。
三个FSRs 110,120,与130需要192个全部信息位(18个字节)来初始化它们。这些192位从128输入位以复制一半128位来得到以提供192输入位给输入缓冲器140。输入缓冲器140提供64输入位到每个FSR110,120,与130。
如下表所示,一种128位(16字节)输入用于初始化192 FSR状态位(18字节)。此输入字节从0到15编号并用于初始化此三个FSRs A,B,与C。
表1FSRs A,B,与C的对应输入
一种128位输入种子储存于输入缓冲器140。所有输入种子位从输入缓冲器平行加载到动态FSR结构B与C。输入的其它第三位(字节0-3与8-11)平行加载到静态FSR结构A。
当每个构成于延伸加洛亚场(2^8)的FSR有8级时,用于每级的输入数据在大小上应该为64位(由于真实位大小为128位,所以上述处理步骤需要在大小上从192位减少信息到128位)。
如上述与图2有关的讨论,每个预先-密钥流位45利用三级非线性函数处理的结合来产生。在第一随机化级,从两个分开的反馈移位产生器(A与B)平移的某些预先决定数据字节利用F1表150-157置换。再第二随机化级,非线性函数161,162用于混合来自不同F1表的数据位以及直接来自寄存器A与B的预先决定级的数据位。再第三随机化级,一种8*8代换箱(S-Box)165(初始化成S0=0,S1=1,…,S255=255)用于置换与寄存器A与B的数据的2个字节一起,来自第二位准非线性函数的输出。
静态FSR结构110(寄存器A)与两个动态寄存器120与130(寄存器B与C)分别显示于图4,图5与图6。这些结构每个皆包括L级,其中L=8,以级0为输入级,第7级为输出级,以及第1级到6为中间级。为了说明的目的,选择所有用于在此解释的多项式。其它不同的多项式可以用于履行此发明应该是适当的。
所有的FSRs构成于延伸加洛亚场GF(2^8)。在GF(2^8)的元素可以利用下述产生F(X)=X^8+X^4+X^3+X^2+1=[100011101]其中X为GF(2^8)的质式。在GF(2^8)之内的加法与乘法运算也说明于图4的117。
在图4所示的动态反馈寄存器110(结构A),数据位对应用到CLK末端的时钟信号的反应从每级连续地平移。从寄存器级平移的数据位分别提供于输出末端RGA0到RGA7。一些有限场加法器111-116分别位于寄存器级的预先决定对之间。在图4,有限场加法器位于级0与第1级(111),第1级与第2级(112),第3级与第4级(113),第4级与第5级(114),第5级与第6级(115),以及第6级与第7级(116)之间,没有有限场加法器位于第2级与第3级之间。每个加法器111-116的其中之一输入由前面的寄存器级提供而每个加法器的其它输入从第八个输出级的输出末端RGA7分别经由有限场乘法器91-97反馈。
非二元加法器(XOR)与非二元乘法器的函数一般显示于117。
寄存器A的结构有一种固定,非动态多项式码与系数。寄存器A的静态FSR结构的多项式码对多项式法信号的反应不会变化。如图4所示,用于A寄存器的多项式为寄存器结构Poly_A=x^8α^212x^7α^147x^6α^194x^5α^47x^40x^3α^38x^2α^229xα^74,其中α(X)=α=X以获得8-元组j7X^7+j6X^6+j5X^5+j4X^4+j3X^3+j2X^2+j1X+j0。此个别系数乘法器数值如下α^212=α^6+α^5+α^4+α^3+1=
α^147=α^5+α^3+1=
α^194=α^5+α^4+α=
α^47=α^5+α^2=
α^38=α^7+α^4+α^2=[10010100]α^229=α^6+α^5+α^4+α^3+α=
α^74=α^7+α^3+1=[10001001]在动态反馈移位寄存器结构B与C(120与130),分别如图5与图6所示,数据位对时钟信号反应连续地平移,而它们也依照从输出级连接到输入级的多项式码信号90平移。如有关图4的讨论,一些逻辑组件分别位于寄存器B与C的寄存器级预先决定对之间。此逻辑组件也依照多项式码信号90以从输出级反馈的数据位处理从前级平移的数据位。
在B-寄存器与C-寄存器结构,解码逻辑单元的多项式码信号应用到从两个多项式系数集合选择一个多项式系数集合(即一个不同延伸加洛亚场乘法器数值的集合)。
例如,在图5所示的动态反馈寄存器结构B,数据位对应用到CLK末端的时钟信号的反应从每级连续地平移。从寄存器级平移的数据位分别提供于输出末端RGA0到RGA7。一些有限场加法器121-127分别位于寄存器级的每对之间。每个加法器121-127的其中之一输入由前面的寄存器级提供而每个加法器的其它输入从第八个输出级的输出末端RGA7分别经由两个有限场乘法器集合其中之一(即其中一个集合包括有限场乘法器200,202,204,205,206,208,210,212,与214;第二个集合包括201,203,205,207,209,211,213,与215)反馈。使用哪一个有限场乘法器集合取决于对多项式码90的反应选择的多项式(从图3的解码逻辑单元80)。
显示于图5的动态反馈移位寄存器B的结构只使用两个多项式。解码逻辑单元80输出的最低有效位(lsb)用于选择下述动态FSR结构B的多项式其中之一Poly_B0=x^8α^92x^7α^229x^6α^5x^5α^95x^4α^84x^30x^2α^195xα^176,其中α(X)=α=X以获得8-元组j7X^7+j6X^6+j5X^5+j4X^4+j3X^3+j2X^2+j1X+j0。此个别系数乘法器数值如下α^92=α^6+α^4+α^3+α+1=
α^229=α^6+α^5+α^4+α^3+α=
α^5=α^5=
α^95=α^7+α^6+α^5+α=[11100010]α^84=α^6+α^5+α^3+α+1=
α^195=α^6+α^5+α^2=
α^176=α^7+α^6+α^5+α+1=[11100011]用于结构B的第二个多项式为Poly_B1=x^8α^22x^7α^47x^60x^5α^230x^4α^94x^3α^202x^2α^28xα^188。
此个别系数乘法器数值如下α^22=α^7+α^6+α^5+α^3+α=[11101010]α^47=α^5+α+1=
α^230=α^7+α^6+α^5+α^4+α^2=[11110100]α^94=α^6+α^5+α^4+1=
α^202=α^5+α^4+α^3=
α^28=α^4+α^3=
α^188=α^7+α^5+α^2+1=[10100101]动态反馈移位寄存器C(130)的结构显示于图6。寄存器C的函数相当于显示于图5寄存器B的函数,寄存器C的有限场加法器221-227等效于图5寄存器B的有限场加法器121-127而寄存器C的有限场乘法器230-245等效于图5寄存器B的有限场乘法器200-215。
在此范例实施例,也只有两个用于寄存器C结构的多项式。解码逻辑单元80输出的最低有效位(lsb)用于选择下述动态FSR结构C的多项式其中之一Poly_C0=x^8α^221x^7α^18x^6α^129x^5α^200x^40x^3α^124x^2α^25xα^31,其中α(X)=α=X以获得8-元组j7X^7+j6X^6+j5^5+j4X^4+j3X^3+j2X^2+j1X+j0。此个别系数乘法器数值如下α^221=α^6+α^2+1=
α^18=α^5+α^3+α^2+1=
α^129=α^4+α^2+α+1=
α^200=α^4+α^3+α^2=
α^124=α^7+α^4+α^2+α+1=[10010111]α^25=α+1=
α^31=C^7+α^6=[11000000]用于结构C的第二个多项式为Poly_C1=X^8α^39(x^7α^203x^60x^5α^185x^4α^151x^3α^114x^2α^7xα^47。
此个别系数乘法器数值如下α^39=α^5+α^4+α^2+1=
α^203=α^7+α^6+α^5=[11100000]α^185=α^5+α^4+α^2+α+1=
α^151=α^7+^5+α^3+α=[10101010]α^114=α^5+α^4+α^3+α^2+α=
α^7=α^7=[10000000]α^47=α^5+α+1=
往回参考图3,应用于动态FSRs 120与130的多项式码信号90依照从预先决定寄存器级平移的数据位来变化。F2表81用于解码逻辑单元(DLU)80以产生多项式码信号。
图3的解码逻辑单元80使用F1表输出的最低有效位(1sb)以选择动态FSRs 120,130的两个多项式其中之一。在此事例中,2个不同的多项式用于B-寄存器结构与C-寄存器结构,而一个多项式用于A-寄存器结构。因此,在F2表代换之后的每隔一个预先-密钥流字节只有一个位直接用于在两个多项式POLY_A0(POLY_B0)与POLY_A1(POLY_B1)之间选择。
处理预先-密钥流45的选择字节(8位)以变化多项式码信号90,而处理预先-密钥流45的剩余字节以提供密钥流100。造成多项式信号90变化的字节不包括于密钥流100。
如上述有关图2的讨论,在描述于图3的实施例,多任务器170-173使用寄存器C的预先决定寄存器级的输出在寄存器A与B的不同预先决定寄存器级平移的数据字节之间选择以提供一些输入到F1表(例如F1表150,153,154,与157)。每个多任务器170-173为一种21多任务器。例如,两个输出位(RGA0与RGA7)从寄存器A的不同级直接平移到多任务器170。对从寄存器C(RGC6)平移的数据位的反应利用多任务器选择RGA0与RGA7其中之一。类似的运算发生在多任务器171,172,与173。多任务器170,171,172,与173的输出分别提供给F1表150,153,154,与157。
多任务器(MUX)170与172的详细多任务器设定显示于下述表中。
表2MUX 170与172的设定
多任务器(MUX)171与173的详细多任务器设定显示于下述表中。
表3MUX 171与173的设定
多任务器也可以用于提供地址信号给代换箱(S-Box)代换函数165。例如,逆MUX 170(MUX 170-1)用于选择来自RGA0与RGA7的选择位。MUX 170-1定义于下述表中表4MUX 170-1的设定
逆MUX 173(MUX 173-1)用于选择来自RGB0与RGB7的选择位。MUX 173-1定义于下述表中表5MUX 173-1的设定
每个移位寄存器的八个寄存器输出的其中两个指定为F1表151,152,155,156的直接输入。没有接头使用多于一次。剩余F1表150,153,154,与157的输入分别来自多任务器170,171,172,与173。
非线性混合函数161,162用于结合两个直接从寄存器A或寄存器B(RGA2/RGA4,RGB3/RGB5)的字节以及来自F1表的其它字节g0=RGA'0|7RGB'1|6RGA2RGB'4RGA'5RGB3g1=RGA'1|6RGB'0|7+RGA4RGB'2+RGA′3RGB5RGA′0|7为一种基于RGC6从RGA0到RGA7选择8位然后传递选择位到F1表150构成的场元素。利用相同的定义,RGB'1|6为一种基于RGC0从RGB1到RGB6选择8位然后传递选择位到F1表153构成的场元素。RGA'1|6为一种基于RGC6从RGA1到RGA6选择8位然后传递选择位到F1表172构成的场元素。RGB′0|7为一种基于RGC0从RGB0到RGB7选择8位然后传递选择位到F1表157构成的场元素。
上述提出的两个非线性函数g0与g1依照下述规则构成·相乘项应会来自不同的寄存器结构。
·两个乘法项至少其中一个应会来自F1表。
参考图3,8*8代换箱(S-Box)165用于依照来自非线性混合函数161,162的输出内容以及A与B寄存器结构的数据的两个字节分别从输出末端Y1与Y0提供个别的预先-密钥流字节45与码流字节48。此代换箱(S-Box)的项目为数字0到255的置换,而代换箱(S-Box)的地址为一种回路计数器n,g0,g1,RGB0|7,与RGA0|7的函数。
线性地初始化此代换箱(S-Box)为S0=0,S1=1,…,S255=255。此代换箱(S-Box)置换处理可以依照下述关系用公式表示n from 0 to runup_Cycles
n=(n%256);Y0'=(g0+SRGB7|0+Sn)mod 256swap Siand SYO'Y1'=(g1+SRGB7|0+Sn)mod 256swap Siand SY1′t0=(Sg1+SY0')mod 256t1=(Sg0+SY1')mod 256Y0=St0and Y1=St1此代换箱(S-Box)缓慢地以n个重复发展来保证每个元素改变,而也以(g0,g1,RGB0|7,RGA0|7,Y0',Y1')的使用发展来保证每个元素随机地改变。
码流寄存器175接收到来自对A与B结构的地址信号的反应的S代换箱(S-Box)165 Y1输出末端与也来自非线性混合函数161,162的码流位48。码流位48经由码流寄存器175纪律,并利用非二元加法器(XOR)加到来自寄存器B与寄存器C的MSB输出级(第7级)的数据字节(RGB7,RGC7)。此处理提供一种反馈数据字节,其接着依照应用的多项式码90皆反馈到输入级(第0级)与寄存器B与C的预先决定中间级。
基于控制时钟,CLOCK产生来自密钥流寄存器60的密钥流字节100。只有在此算法已经有足够的混合时间以在FSRs之中循环数据之后,集合这些字节以构成输出的7字节或56位。混合时间的总额以在初始化FSRs A,B,与C的时间之间的CLOCK时中循环数目测量,并储存密钥流寄存器60字节输出的时间。此初始化发生于时间T=0,其中时间以CLOCK循环测量。在初始化之后,701 CLOCK循环可以在储存密钥流寄存器60的第一个字节之前发生。之后,输出字节可以在下述额外循环完成之后来储存
上述的本发明实施例选择为较佳实施例而不是想要提供在本发明范围上的限制。上述的许多履行变形为可以利用是应该察知的。例如,在此描述的本发明可以使用输入密钥大小的广大变化来履行。另外,不同加洛亚场选择可以用于履行本发明。使用的静态和/或动态反馈移位寄存器数目可以变化,每个这样移位寄存器的寄存器级数目也可以变化。随机化级的数目的可以变化,在每级之内包含的机能(例如,多任务器的数目,代换箱(S-Box)的数目,随机化表的数目,以及类似的事物)也可以变化。其它履行复杂度可以变化或改变与上述本发明的一般描述一致。
现在应该察知的是本发明提供产生用于数据加密与解密的密码强健密钥流的改善方法与装置。
虽然本发明已经描述有关不同的说明实施例,但是此外在不违反在本发明权利要求的精神与范围的情况下可以产生许多的修改与改编。
权利要求
1.一种产生密钥流的方法,包括下列步骤提供来自多个反馈移位寄存器的预先决定寄存器级的数据位给第一随机化级,每个反馈移位寄存器响应于时钟信号连续地平移数据位于反馈移位寄存器的输入,中间,与输出级;提供该第一随机化级的输出给第二随机化级;提供该第二随机化级的输出与来自该反馈移位寄存器的其它预先决定寄存器级的数据给至少一个额外的随机化级,其中,在每个随机化级置换该数据位而最终随机化级的输出提供该密钥流。
2.如权利要求1所述的方法,其中第三随机化级为最终随机化级。
3.如权利要求1所述的方法,进一步地包括下列步骤对多项式码信号产生器产生的多项式码信号的反应来变化至少一个反馈移位寄存器的结构。
4.如权利要求3所述的方法,进一步地包括下列步骤改变用于产生此多项式码信号的多项式码。
5.如权利要求1所述的方法,其中此反馈移位寄存器包括多个动态反馈移位寄存器;以及至少一个静态反馈移位寄存器。
6.如权利要求1所述的方法,其中此反馈移位寄存器包括一个第一动态反馈移位寄存器;一个第二动态反馈移位寄存器;以及一个静态反馈移位寄存器。
7.如权利要求6所述的方法,进一步地包括下列步骤输入种子数据到输入缓冲器;提供输入缓冲器的种子数据的第一部份给第一动态反馈移位寄存器;提供输入缓冲器的种子数据的第二部分给第二动态反馈移位寄存器;以及提供输入缓冲器的种子数据的第三部份给静态反馈移位寄存器。
8.如权利要求7所述的方法,其中动态反馈移位寄存器的数据位响应于时钟信号从每个寄存器级连续地平移;一些有限场加法器安排于动态反馈移位寄存器的寄存器级的预先决定对之间,使得从前面寄存器级提供到每个加法器的输入的其中之一而且从输出级的输出终端经由有限场乘法器反馈到每个加法器的其它输入。
9.如权利要求1所述的方法,其中第一随机化级包括一种用于置换来自预先决定寄存器级的数据位的随机化表。
10.如权利要求1所述的方法,其中第二随机化级包括一个非线性混合函数以结合该第二随机化级的输出与来自该反馈移位寄存器其它预先决定寄存器级的数据位。
11.如权利要求1所述的方法,其中第三随机化级包括多个非线性代换箱。
12.如权利要求11所述的方法,其中此代换箱为8*8代换箱。
13.如权利要求1所述的方法,其中第三随机化级包括256个非线性8*8代换箱。
14.如权利要求1所述的方法,其中此反馈移位寄存器使用一种延伸加洛亚场(GF(2m))构成。
15.如权利要求14所述的方法,其中m等于八。
16.如权利要求14所述的方法,其中用于此反馈移位寄存器的多项式为质式而且是不可约的。
17.如权利要求1所述的方法,其中第一随机化级包括多个用于置换来自预先决定寄存器级的数据位的随机化表。
18.如权利要求17所述的方法,其中此多个随机化表包括八个随机化表。
19.如权利要求1所述的方法,进一步地包括下列步骤在输入到第一随机化级之前多任务来自反馈移位寄存器的数据位。
20.如权利要求1所述的方法,进一步地包括下列步骤提供第三随机化级的输出给预先-密钥流寄存器;提供该预先-密钥流寄存器的输出的选择位给一种选择电路缓冲器;提供此选择电路缓冲器的输出给一种解码逻辑单元,其解码逻辑单元解码一种用于产生多项式码信号的特定多项式,该多项式码信号提供给至少一个反馈移位寄存器;以及提供该预先-密钥流寄存器的输出的剩余位给一种密钥流寄存器,其中此密钥流寄存器的输出提供该密钥流。
21.如权利要求20所述的方法,其中第三随机化级包括多个非线性代换箱。
22.如权利要求21所述的方法,进一步地包括下列步骤提供代换箱的某一输出给一种码流寄存器;纪录该通过该码流寄存器的输出;将该输出加到经由一种非二元加法器从至少一个反馈移位寄存器平移的数据位以产生反馈数据位;以及提供此反馈数据位给至少一个反馈移位寄存器的输入级与预先决定中间级。
23.如权利要求1所述的方法,其中一种192位共享种子输入提供给此多个反馈移位寄存器;以及产生一种56位密钥流输出。
24.如权利要求23所述的方法,其中此192位共享种子输入密钥由128位利用复制一半位来得到。
25.一种密钥流产生器装置,包括多个反馈移位寄存器,每个寄存器具有输入,中间,与输出级,反应于时钟信号连续地平移数据位;一种接收多个反馈移位寄存器的预先决定寄存器级输出的第一随机化级;一种接收该第一随机化级的输出的第二随机化级;一种接收该第二随机化级的输出与该反馈移位寄存器其它预先寄存器级的数据位的第三随机化级,其中,在每个随机化级暂换该数据位而最终随机化级的输出提供该密钥流。
26.如权利要求25所述的装置,其中此第三随机化级为最终随机化级。
27.如权利要求25所述的装置,其中对多项式码信号产生器产生的多项式码信号的反应来变化至少一个反馈移位寄存器的结构。
28.如权利要求27所述的装置,其中变化用于产生此多项式码信号的多项式码。
29.如权利要求25所述的装置,其中此反馈移位寄存器包括多个动态反馈移位寄存器;以及至少一个静态反馈移位寄存器。
30.如权利要求25所述的装置,其中此反馈移位寄存器包括一个第一动态反馈移位寄存器;一个第二动态反馈移位寄存器;以及一个静态反馈移位寄存器。
31.如权利要求30所述的装置,其中种子数据输入到输入缓冲器;输入缓冲器的种子数据的第一部份提供给第一动态反馈移位寄存器;输入缓冲器的种子数据的第二部分提供给第二动态反馈移位寄存器;以及输入缓冲器的种子数据的第三部份提供给静态反馈移位寄存器。
32.如权利要求31所述的装置,其中动态反馈移位寄存器的数据位反应于时钟信号从每个寄存器级连续地平移;以及一些有限场加法器安排于动态反馈移位寄存器的寄存器级的预先决定对之间,使得从前面寄存器级提供到每个加法器的输入的其中之一而且从输出级的输出终端经由有限场乘法器反馈到每个加法器的其它输入。
33.如权利要求25所述的装置,其中第一随机化级包括一种用于置换来自预先决定寄存器级的数据位的随机化表。
34.如权利要求25所述的装置,其中第二随机化级包括一个非线性混合函数以结合该第二随机化级的输出与来自该反馈移位寄存器其它预先决定寄存器级的数据位。
35.如权利要求25所述的装置,其中第三随机化级包括多个非线性代换箱。
36.如权利要求35所述的装置,其中此代换箱(S-Box)为8*8代换箱。
37.如权利要求25所述的装置,其中第三随机化级包括256个非线性8*8代换箱。
38.如权利要求25所述的装置,其中此反馈移位寄存器使用一种延伸加洛亚场(GF(2m))构成。
39.如权利要求38所述的装置,其中m等于八。
40.如权利要求38所述的装置,其中用于此反馈移位寄存器的多项式为质式而且是不可约的。
41.如权利要求25所述的装置,其中第一随机化级包括多个用于置换来自预先决定寄存器级的数据位的随机化表。
42.如权利要求41所述的装置,其中此多个随机化表包括八个随机化表。
43.如权利要求25所述的装置,其中在输入到第一随机化级之前多任务来自反馈移位寄存器的数据位。
44.如权利要求25所述的装置,进一步地包括一种用于接收第三随机化级输出的预先-密钥流寄存器;一种用于接收该预先-密钥流寄存器输出的选择位的选择电路缓冲器;一种用于接收此选择电路缓冲器的解码逻辑单元,其解码逻辑单元解码一种用于产生多项式码信号的特定多项式,该多项式码信号提供给至少一个反馈移位寄存器;以及一种用于接收该预先-密钥流寄存器输出的剩余位的密钥流寄存器,其中此密钥流寄存器的输出提供该密钥流。
45.如权利要求44所述的装置,其中第三随机化级包括多个非线性代换箱。
46.如权利要求45所述的装置,其中提供代换箱的某一输出给一种码流寄存器;纪录该通过该码流寄存器的输出;将该输出加到经由一种非二元加法器从至少一个反馈移位寄存器平移的数据位以产生反馈数据位;以及提供此反馈数据位给至少一个反馈移位寄存器的输入级与预先决定中间级。
47.如权利要求25所述的装置,其中一种192位共享种子输入提供给此多个反馈移位寄存器;以及产生一种56位密钥流输出。
48.如权利要求25所述的装置,其中此192位共享种子输入密钥由128位利用复制一半位来得到。
全文摘要
本发明揭示一种密码单向函数(一种密钥或密钥流产生器)的产生方法及装置,用于加密或解密二进制数据。提供一种使用多个反馈移位寄存器(如110,120,130)的非线性密钥或密钥流产生算法。此反馈移位寄存器(110,120,130)可以使用称为延伸加洛亚场(GaloisField)GF(文档编号H04L9/26GK1425230SQ00818544
公开日2003年6月18日 申请日期2000年11月17日 优先权日1999年11月23日
发明者邱新, E·J·斯普龙克 申请人:通用仪器公司