CN1993922A - 流密码组合系统和方法 - Google Patents
流密码组合系统和方法 Download PDFInfo
- Publication number
- CN1993922A CN1993922A CNA2005800258807A CN200580025880A CN1993922A CN 1993922 A CN1993922 A CN 1993922A CN A2005800258807 A CNA2005800258807 A CN A2005800258807A CN 200580025880 A CN200580025880 A CN 200580025880A CN 1993922 A CN1993922 A CN 1993922A
- Authority
- CN
- China
- Prior art keywords
- key
- produce
- grouping
- function
- object program
- 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.)
- Granted
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种加密系统及方法,包括:从密钥流分组中产生多个轮密钥;以及执行组合函数。在将一组明文数据分组加密成一组密文数据分组时,该组之内的每个明文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理,而且密钥流的大小小于明文数据的大小。在将一组密文数据分组解密成一组明文数据分组时,该组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理,而且密钥流的大小小于密文数据的大小。
Description
背景
1.领域
本发明总的涉及密码学,更具体而言,涉及流密码和组合函数。
2.说明
在某些情况下,密码系统被用于保护未压缩的视频数据。因为视频数据是未被压缩的,所以为了向用户显示而要处理的数据量非常大。通常,例如利用诸如高级加密标准(AES)密码之类的已知分组密码来加密此数据,对于某些内容保护应用是非常慢的。
在典型的流密码加密运算中,通过利用简单的组合运算,例如异或,密钥流被直接施加给明文数据以产生密文数据。反之,在解密运算期间,用相同的密钥流和逆向的组合运算,将密文数据改变回明文数据。此方法的一个缺点在于,它需要与将要处理的数据量相同的密钥流比特量。
所希望的是一种密码系统,该密码系统使用小于明文数据大小的密钥流,从而改进密码系统的性能特征,但依然提供足够的安全性。
附图说明
本发明的特征和优点将从下列本发明的详细说明中变得清晰可见,其中:
图1是根据本发明实施例的密码系统的高级框图;
图2是根据本发明实施例说明密码系统的密钥产生过程的框图;
图3是根据本发明实施例说明经密码系统用组合函数进行加密的处理框图;
图4是根据本发明实施例说明经密码系统用组合函数进行解密的处理框图。
详细说明
本发明的实施例是用于改进流密码性能的方法和设备,其通过将密钥流部分以一轮只用一次的分组密码的形式用作轮密钥。这允许在保持所希望的安全性能的同时,在相同的时间内加密或解密更多的数据。
在本发明的实施例中,少量的密钥流分组可以按照对于根流密码所典型计算的方式那样来计算,但是此密钥流的分组现在可以用作短分组密码形式的轮密钥,这些密钥流分组的每个组合至多一次被用作这些轮密钥的根。在一个实施例中,可以在组合运算之间使用诸如置换盒(S-box)之类的非线性变换,以便如果一些明文数据分组被得知(因此可能导出附近的未知明文分组)则阻止敌人解得密钥流。短分组密码可以将来自多个分组中每一分组的对应位用作置换运算的输入数据,并且多个分组可以一起被加密或解密。在一个实施例中,可以对密钥流位做移位或其他变换,以便从该密钥流的初始分组中形成后续的轮密钥。
说明书中对本发明“一个实施例”或“一实施例”的引用意欲将结合实施例描述的具体特征、结构或特征归入本发明至少一个实施例中。因此,出现在说明书各个地方的词组“在一个实施例中”不一定都是指相同的实施例。
图1是根据本发明实施例密码系统100的高级框图。在该系统中,初始化向量(IV)102和密钥104可被输入至密钥流发生器106。初始化向量包括多个随机或伪随机产生的位。在一个实施例中,IV可以包括四个分组,其中,IV每个分组中的位数可以是128,不过在其他的实施例中可以使用其他大小和数量的分组。密钥104可以是任何位序列。在一个实施例中,密钥是保密的。在一个实施例中,密钥中的位数可以是128;而在其他的实施例中可以使用其他的大小。密钥流发生器106接受密钥和IV,并产生密钥流108。在一个实施例中,密钥流发生器根据本领域技术人员公知的方法,通过采用以计数模式(CTR)或者输出反馈模式(OFB)运算的已知分组密码,基于输入数据产生密钥流。在一个实施例中,密钥流发生器使用AES密码。在其他的实施例中,可以采用其他公知的分组密码。在更进一步的实施例中,流密码(例如,RC4)可以用作密钥流发生器来代替分组密码。通常,密钥流可以是任何任意长度的位。在本发明的实施例中,密钥流包括数量小于明文114中的位数的位,所以改进了组合函数的总性能。
在一实施例中,可以向轮密钥发生器110和组合函数116都输入密钥流108。轮密钥发生器使用密钥流分组产生多个轮密钥。在一个实施例中,轮密钥可以通过每次对该密钥的4个分组进行运算,按照4个一组的方式来产生(其中,在一个实施例中每个分组包括128位)。在一实施例中,轮密钥发生器可以包括逻辑函数,例如移位函数(左移或右移规定的位数)。在其他的实施例中,可以对密钥流分组执行其他的逻辑函数来产生轮密钥。轮密钥112可以是任意大小。在一个实施例中,每个轮密钥可以包括128位。
在一个实施例中,如图1所示,组合函数116可以使用轮密钥112和密钥流108将明文114加密成密文118。可替换地,可利用轮密钥和密钥流,使用具有逆向数学特性的组合函数来执行密文118还原成明文114的解密。因为本发明实施例中密钥流小于明文,所以本发明的密码比现有技术方法更快速地产生密文。
图2是根据本发明实施例说明密码系统的密钥产生过程的框图。此框图说明了图1所示实施例的方框106~112的补充细节。密钥104和IV 102可以被输入至密钥流发生器106。IV可以分成四分组,标记为IV 200,IV+1 202,IV+2 204,和IV+3 206。在一个实施例中,每个IV分组包括128位。在其他的实施例中,可以采用其他的大小。每个IV分组可以被输入至分组密码。在一个实施例中,分组密码可以是AES。例如,如图2所示,第一分组IV 200可以被输入至第一AES 208,第二分组IV+1 202可以被输入至第二AES 210,第三分组IV+3204可以被输入至第三AES 212,以及第四分组IV+3 206可以被输入至第四AES 214。例如,每个AES密码可以以计数(CTR)模式来使用,以便基于选择的IV分组和密钥产生密钥流分组。在对一组四个分组运算(在一个实施例中)时,AES密码分别产生密钥流0(KS0)216、密钥流1(KS1)218、密钥流2(KS2)220和密钥流3(KS3)222分组。可以操作密钥流发生器以随着时间的过去而产生连续多组的四个密钥流分组。密钥流分组可以被输入至多个轮密钥发生器(RKG)250,252,254,256,如图所示。每个RKG使用作为输入接收的一密钥流分组,并生成轮密钥。当在一个迭代中对一组四个分组进行运算时(在一个实施例中),这组的四个RKG 250、252、254、256分别产生轮密钥RK0 224、RK1 226、RK2 228、RK3 230。在一个实施例中,每个轮密钥可以是128位,不过可以使用其他的大小。产生密钥流分组和轮密钥的每个路径可以同时执行。在一实施例中,四个RKG可以被组合成一个实体以同时为所有四个分组执行轮密钥生成函数。
密钥流发生器和轮密钥迭代一次的处理结果是一组四个密钥流分组(KS0、KS1、KS2、和KS3)和四个轮密钥(RK0、RK1、RK2、和RK3),它们是从初始密钥104和初始化向量分组200、202、204、206中导出的。在本发明的实施例中,一个密钥流分组和轮密钥对的每种唯一组合(例如(KS0,RK0)、(KS0,RK1)、...(KS3,RK2)、(KS3,RK3))可以在组合函数116的两轮中被用作密钥,以便从16个明文分组中产生16个密文分组。因此,在本发明的实施例中,只使用4个密钥流数据分组,就可以对16个数据分组执行加密或解密运算。这导致最多比现有技术系统高达四倍的处理改进。
此性能改善可以如下获得。图3是根据本发明实施例说明用组合函数进行加密的处理框图。通常,组合函数包括两轮和一组S-box变换。可以将明文114输入组合函数116。将明文连同所选密钥流分组一起输入第一轮可逆代数函数,以产生第一中间结果。第一中间结果被发送给一组四个的S-box。S-box产生第二中间结果。将第二中间结果连同所选轮密钥一起输入第二轮可逆代数函数。第二轮的输出包括密文118。这组明文数据中的每个分组可通过该组合函数基本上与所有其他分组同时进行处理,以产生一组密文数据分组。
在一个实施例中,明文数据流的每个连续的16个分组部分(在组合函数每次迭代时)可以被分成四组,每组包括四分组:P0,P1,P2和P3 232;P4,P5,P6,和P7 234;P8,P9,P10,和P11 236;以及P12,P13,P14,和P15 238;每个分组包括128位。因此,在一个实施例中,一组中分组的数量是16。对于第一轮处理,可以将明文分组P0连同密钥流0(KS0)216一起输入可逆代数函数,例如XOR。处理P0的XOR输出可以转送给第一S-box 240。可以将明文分组P1连同密钥流1(KS1)218一起输入可逆代数函数,例如XOR。处理P1的XOR输出可以转送给第一S-box 240。可以将明文分组P2连同密钥流2(KS2)220一起输入可逆代数函数,例如XOR。处理P2的XOR输出可以转送给第一S-box 240。可以将明文分组P3连同密钥流3(KS3)222一起输入可逆代数函数,例如XOR。处理P3的XOR输出可以转送给第一S-box240。
按类似方式,可以将明文分组P4连同密钥流0(KS0)216一起输入可逆代数函数,例如XOR。图3出于简洁,KS0被显示为穿过KS0行中的每个XOR函数。处理P4的XOR输出可以转送给第二S-box242。可以将明文分组P5连同密钥流1(KS1)218一起输入可逆代数函数,例如XOR。图3出于简洁,KS1被显示为穿过KS1行中的每个XOR函数。处理P5的XOR输出可以转送给第二S-box 242。可以将明文分组P6连同密钥流2(KS2)220一起输入可逆代数函数,例如XOR。图3出于简洁,KS3被显示为穿过KS3行中的每个XOR函数。处理P6的XOR输出可以转送给第二S-box 242。可以将明文分组P7连同密钥流3(KS3)222一起输入可逆代数函数,例如XOR。图3出于简洁,KS3被显示为穿过KS3行中的每个XOR函数。处理P7的XOR输出可以转送给第二S-box 242。
按类似方式,可以将明文分组P8连同密钥流0(KS0)216一起输入可逆代数函数,例如XOR。处理P8的XOR输出可以转送给第三S-box 244。可以将明文分组P9连同密钥流1(KS1)218一起输入可逆代数函数,例如XOR。处理P9的XOR输出可以转送给第三S-box 244。可以将明文分组P10连同密钥流2(KS2)220一起输入可逆代数函数,例如XOR。处理P10的XOR输出可以转送给第三S-box 244。可以将明文分组P11连同密钥流3(KS3)222一起输入可逆代数函数,例如XOR。处理P11的XOR输出可以转送给第三S-box244。
按类似方式,可以将明文分组P12连同密钥流0(KS0)216一起输入可逆代数函数,例如XOR。处理P12的XOR输出可以转送给第四S-box 246。可以将明文分组P13连同密钥流1(KS1)218一起输入可逆代数函数,例如XOR。处理P13的XOR输出可以转送给第四S-box 246。可以将明文分组P14连同密钥流2(KS2)220一起输入可逆代数函数,例如XOR。处理P14的XOR输出可以转送给第四S-box246。可以将明文分组P15连同密钥流3(KS3)222一起输入可逆代数函数,例如XOR。处理P15的XOR输出可以转送给第四S-box 246。
因此,16个XOR函数中的每个XOR函数分别处理16个明文分组中的一个,并向置换盒(S-box)转送变换的明文数据分组。每个S-box240、242、244、246包括非线性映射函数,以便将一组连在一起的四个输入分组(例如,来自四个分组的512位)变换成一组四个的输出分组。在此,可以使用本领域公知的任何S-box。
每个S-box的输出被输入至第二轮组合函数,其包括一组16个可逆代数函数,例如XOR函数。第一密文分组264可以如下产生。通过对从第一S-box 240输出的第一分组和第一轮密钥0(RK0)224执行诸如XOR之类的可逆代数函数,可以产生密文分组C0。通过对从第一S-box 240输出的第二分组和RK0 224执行诸如XOR之类的可逆代数函数,可以产生密文分组C1。通过对从第一S-box 240输出的第三分组和RK0 224执行诸如XOR之类的可逆代数函数,可以产生密文分组C2。通过对从第一S-box 240输出的第四分组和RK0 224执行诸如XOR之类的可逆代数函数,可以产生密文分组C3。
按类似方式,第二密文分组266可以如下产生。通过对从第二S-box 242输出的第一分组和第二轮密钥1(RK1)226执行诸如XOR之类的可逆代数函数,可以产生密文分组C4。通过对从第二S-box 242输出的第二分组和RK1 226执行诸如XOR之类的可逆代数函数,可以产生密文分组C5。通过对从第二S-box 242输出的第三分组和RK1 226执行诸如XOR之类的可逆代数函数,可以产生密文分组C6。通过对从来自第二S-box 242输出的第四分组和RK1 226执行诸如XOR之类的可逆代数函数,可以产生密文分组C7。
按类似方式,第三密文分组268可以如下产生。通过对第三S-box244输出的第一分组和第三轮密钥2(RK2)228执行诸如XOR之类的可逆代数函数,可以产生密文分组C8。通过对从第三S-box 244输出的第二分组和RK2 228执行诸如XOR之类的可逆代数函数,可以产生密文分组C9。通过对从第三S-box 244输出的第三分组和RK2 228执行诸如XOR之类的可逆代数函数,可以产生密文分组C10。通过对从第三S-box 244输出的第四分组和RK2 228执行诸如XOR之类的可逆代数函数,可以产生密文分组C11。
按类似方式,第四密文分组270可以如下产生。通过对从第四S-box 246输出的第一分组和第四轮密钥3(RK3)230执行诸如XOR之类的可逆代数函数,可以产生密文分组C12。通过对从第四S-box 246输出的第二分组和RK2 230执行诸如XOR之类的可逆代数函数,可以产生密文分组C13。通过对从第四S-box 246输出的第三分组和RK3230执行诸如XOR之类的可逆代数函数来,可以产生密文分组C14。通过通过对从第四S-box 246输出的第四分组和RK3 230执行诸如XOR之类的可逆代数函数,可以产生密文分组C15。
虽然在图3中描述了数据加密,但是本领域技术人员将意识到,数据解密可以用类似方式处理,只不过是逆运算处理。图4是根据本发明实施例说明用组合函数进行解密的处理框图。如图4所示,为了使用组合函数117将密文解密回明文,数据从该图的底部流向顶部以用于解密(与图3所示相反,数据从顶部流向底部以用于加密)。用逆运算代替S-box,以形成逆向的S-box 241、243、245、和247,并且可采用本领域众所周知的所有其他可逆代数函数的逆函数。
在其他实施例中,可以修改图3和4所示密码系统的各种特征。例如,在一个实施例中,可以撤销S-box。这可以以降低安全性为代价提高系统的处理速度。在一实施例中,例如,除XOR之外的可逆代数函数可被用于第一和第二轮,例如加法或减法。如果加法或减法被用于加密,则逆运算必须被用于解密。在另一实施例中,用于第一和第二轮的代数函数可以不同。例如,可在第一轮中使用XOR,而在第二轮中可以使用2的补码加法(或反之亦然)。在又一实施例中,不同的可逆代数函数可以被用于处理同一轮中的分组。在另一实施例中,分组的大小可以改变。
本发明实施例的组合函数允许小常数因子用于相对于常规的流密码来改善性能(例如,高达4倍或高达8倍的改善,这取决于置换运算的细节),这是因为组合函数的计算比底层的流密码更快。
当用软件实现时,即使采用了非常快的常规流密码,这例如也可以允许更多处理器性能用于视频数据的处理而不是用于未压缩视频数据的内容保护操作。当用硬件实现时,获得相同的性能将需要更少的门。
于此描述的技术不限于任何具体的硬件或软件结构;可以在任何计算或处理环境中找到它们的适用性。此技术可以用硬件、软件、或两者的组合来实现。此技术可以用运行在诸如移动或静止的计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、及其他电子设备之类的可编程机器上的程序来实现,所述电子设备分别包括处理器、处理器可读存储介质(包括易失和非易失性存储器和/或存储元件)、至少一个输入设备、以及一个或多个输出设备。程序代码被施加给利用输入设备输入的数据,以执行所述功能以及产生输出信息。输出信息可以被施加给一个或多个输出设备。本领域普通技术人员可以理解,本发明可以用各种计算机系统配置来实践,包括多处理器系统,小型计算机,大型计算机等。本发明还可以在分布式计算环境内实践,其中,任务可以由通过通信网络链接的远程处理设备来执行。
每个程序可以用与处理系统相通信的高级程序或面向对象的编程语言来实现。然而,如果需要,程序可以用汇编或机器语言来实现。任何情况下,语言可以被编译或解释。
程序指令可被用于使采用指令编程的通用或专用处理系统执行于此所述的操作。可替换地,所述操作可以由包含用于执行该操作的硬接线的逻辑电路的专用硬件元件、或由编程式计算机组件和常规硬件组件的任何组合来执行。于此描述的方法可以作为计算机程序产品来提供,计算机程序产品可以包括具有将指令存储于其上的机器可读介质,所述指令可被用于对处理系统或其他电子设备进行编程,以执行所述方法。于此所用的术语“机器可读介质”将包括任何能够存储或编码机器执行的指令序列并且能使机器执行于此描述的任一方法的介质。术语“机器可读介质”因此将包括但不局限于固态的存储器、光和磁盘、以及将数据信号进行编码的载波。而且在本领域中,以采取动作或产生结果的一种形式或其他形式(例如,程序、步骤、处理、应用、模块、逻辑等)谈到软件是很普遍的。这种表达仅仅是说明软件通过处理系统的运行而促使处理器执行产生结果的动作的简写方式。
尽管已经参照说明性实施例说明了本发明,但并未意欲用限制的理解来解释本说明书。说明性实施例以及本发明其他实施例的各种修改,对与本发明相关的领域的技术人员而言是显而易见的,被认为处于本发明的精神和范围之内。
Claims (70)
1.一种加密系统,包括:
至少部分基于密钥和初始化向量产生密钥流的密钥流发生器;
至少部分基于密钥流产生多个轮密钥的轮密钥发生器;以及
至少部分基于同样大小的一组明文数据分组、密钥流和轮密钥来产生一组密文数据分组的组合函数,所述组合函数包括:第一轮代数函数,其利用多个密钥流分组对明文数据分组进行运算,以产生第一中间结果;多个非线性变换函数,其对第一中间结果进行运算以产生第二中间结果;以及第二轮代数函数,其利用轮密钥对第二中间结果进行运算,以产生密文数据。
2.权利要求1的加密系统,其中,所述组之内的每个明文数据分组通过所述组合函数利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
3.权利要求1的加密系统,其中,每个非线性变换函数包括置换盒(S-box)。
4.权利要求1的加密系统,其中,所述密钥流的大小小于明文数据的大小。
5.权利要求1的加密系统,其中,密钥流分组的数目等于轮密钥的数目。
6.权利要求1的加密系统,其中第一轮代数函数包括多个异或(XOR)函数。
7.权利要求1的加密系统,其中,第一轮的每个代数函数接受明文数据分组和密钥流分组作为输入,以产生第一中间结果分组。
8.权利要求1的加密系统,其中,第二轮代数函数包括多个异或(XOR)函数。
9.权利要求1的加密系统,其中,第二轮的每个代数函数接受第二中间结果分组和一个轮密钥作为输入,以产生密文数据分组。
10.权利要求1的加密系统,其中,所述组明文数据分组之内的每个明文数据分组通过组合函数基本上与所述组的所有其他分组同时进行处理,以产生密文数据。
11.一种组合函数,包括:
第一轮代数函数,其利用多个密钥流分组对一组明文数据分组进行运算,以产生第一中间结果;
多个非线性变换函数,其对第一中间结果进行运算,以产生第二中间结果;以及
第二轮代数函数,其利用多个轮密钥对第二中间结果进行运算,以产生一组密文数据分组。
12.权利要求11的组合函数,其中,所述组之内的每个明文数据分组通过组合函数利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
13.权利要求11的组合函数,其中,每个非线性变换函数包括置换盒(S-box)。
14.权利要求11的组合函数,其中,所述密钥流的大小小于明文数据的大小。
15.权利要求11的组合函数,其中,第一轮代数函数包括多个异或(XOR)函数。
16.权利要求11的组合函数,其中,第一轮的每个代数函数接受明文数据分组和密钥流分组作为输入,以产生第一中间结果分组。
17.权利要求11的组合函数,其中,第二轮代数函数包括多个异或(XOR)函数。
18.权利要求11的组合函数,其中,第二轮的每个代数函数接受第二中间结果分组和一个轮密钥作为输入,以产生密文数据分组。
19.权利要求11的组合函数,其中,所述组明文数据分组之内的每个明文数据分组通过组合函数基本上与所述组的所有其他分组同时进行处理,以产生密文数据。
20.一种方法,包括:
至少部分基于初始化向量和密钥产生多个密钥流分组;
产生多个轮密钥,每个轮密钥至少部分基于密钥流分组;
通过以下步骤从一组明文数据分组中产生一组密文数据分组:
对每个明文数据分组和所选密钥流分组执行第一代数函数,以产生第一中间结果;
对第一中间结果执行非线性变换,以产生第二中间结果;以及
对第二中间结果的每个分组和所选轮密钥执行第二代数函数,以产生每个密文数据分组。
21.权利要求20的方法,其中,所述组之内的每个明文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
22.权利要求20的方法,其中,所述密钥流的大小小于明文数据的大小。
23.权利要求22的方法,其中,密钥流分组的数目等于轮密钥的数目。
24.权利要求20的方法,其中,执行第一轮代数函数包括执行多个异或(XOR)函数。
25.权利要求20的方法,其中,执行第二轮代数函数包括执行多个异或(XOR)函数。
26.权利要求20的方法,其中,所述组明文数据分组之内的每个明文数据分组基本上与所述组的所有其他分组同时进行处理,以产生密文数据。
27.一种从一组明文数据分组中产生一组密文数据分组的方法,包括:
对每个明文数据分组和所选密钥流分组执行第一代数函数,以产生第一中间结果;
对第一中间结果执行非线性变换,以产生第二中间结果;以及
对每个第二中间结果分组和所选轮密钥执行第二代数函数,以产生每个密文数据分组,所述所选轮密钥至少部分从密钥流中产生。
28.权利要求27的方法,其中,所述组之内的每个明文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
29.权利要求27的方法,其中,所述密钥流的大小小于明文数据的大小。
30.权利要求27的方法,其中,所述组明文数据分组之内的每个明文数据分组基本上与所述组的所有其他分组同时进行处理,以产生密文数据。
31.一种方法,包括:
从密钥流分组中产生多个轮密钥;以及
将一组明文数据分组加密成一组密文数据分组,其中,所述组之内的每个明文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理,而且密钥流的大小小于明文数据的大小。
32.权利要求31的方法,其中,所述组明文数据分组之内的每个明文数据分组基本上与所述组的所有其他分组同时进行处理,以产生密文数据。
33.一种加密系统,包括:
至少部分基于密钥和初始化向量产生密钥流的密钥流发生器;
至少部分基于密钥流产生多个轮密钥的轮密钥发生器;以及
至少部分基于同样大小的一组密文数据分组、密钥流和轮密钥来产生一组明文数据分组的组合函数,所述组合函数包括:第一轮代数函数,其利用轮密钥对密文数据分组进行运算,以产生第一中间结果;多个非线性逆变换函数,其对第一中间结果进行运算,以产生第二中间结果;以及第二轮代数函数,利用多个密钥流分组对第二中间结果进行运算,以产生明文数据。
34.权利要求33的加密系统,其中,所述组之内的每个密文数据分组通过组合函数利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
35.权利要求33的加密系统,其中,所述密钥流的大小小于密文数据的大小。
36.权利要求33的加密系统,其中,密钥流分组的数目等于轮密钥的数目。
37.权利要求33的加密系统,其中,第一轮代数函数和第二轮代数函数的至少一个代数函数包括多个异或(XOR)函数。
38.权利要求33的加密系统,其中,第一轮的每个代数函数接受密文数据分组和所选轮密钥作为输入,以产生第一中间结果分组。
39.权利要求33的加密系统,其中,第二轮的每个代数函数接受第二中间结果分组和所选密钥流分组作为输入,以产生明文数据分组。
40.权利要求33的加密系统,其中,所述组密文数据分组之内的每个密文数据分组通过组合函数基本上与组的所有其他分组同时进行处理,以产生明文数据。
41.一种组合函数,包括:
第一轮代数函数,其利用多个轮密钥对一组密文数据分组进行运算,以产生第一中间结果;
多个非线性逆变换函数,其对第一中间结果进行运算,以产生第二中间结果;以及
第二轮代数函数,其利用多个密钥流分组对第二中间结果进行运算,以产生一组明文数据分组。
42.权利要求41的组合函数,其中,所述组之内的每个密文数据分组通过组合函数利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
43.权利要求41的组合函数,其中,所述密钥流的大小小于密文数据的大小。
44.权利要求41的组合函数,其中,第一轮代数函数和第二轮代数函数的至少一个代数函数包括多个异或(XOR)函数。
45.权利要求41的组合函数,其中,第一轮的每个代数函数接受密文数据分组和所选轮密钥作为输入,以产生第一中间结果分组。
46.权利要求41的组合函数,其中,第二轮的每个代数函数接受第二中间结果分组和所选密钥流分组作为输入,以产生明文数据分组。
47.权利要求41的密码系统,其中,所述组密文数据分组之内的每个密文数据分组通过组合函数基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
48.一种方法,包括:
至少部分基于初始化向量和密钥产生多个密钥流分组;
产生多个轮密钥,每个轮密钥至少部分基于密钥流分组;
通过下列步骤从一组密文数据分组中产生一组明文数据分组:
对每个密文数据分组和所选密钥流分组执行第一代数函数,以产生第一中间结果;
对第一中间结果执行逆向非线性变换,以产生第二中间结果;以及
对每个第二中间结果分组和所选轮密钥分组执行第二代数函数,以产生每个明文数据分组。
49.权利要求48的方法,其中,所述组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
50.权利要求48的方法,其中,所述密钥流的大小小于密文数据的大小。
51.权利要求48的方法,其中,密钥流分组的数目等于轮密钥的数目。
52.权利要求48的方法,其中,执行第一轮代数函数和第二轮代数函数的至少一个代数函数包括执行多个异或(XOR)函数。
53.权利要求48的方法,其中,所述组密文数据分组之内的每个密文数据分组基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
54.一种产品,包括:具有多个机器可读指令的存储介质,其中在处理器执行指令时,该指令:
至少部分基于初始化向量和密钥产生多个密钥流分组;
产生多个轮密钥,每个轮密钥至少部分基于密钥流分组;
通过下列步骤从一组密文数据分组中产生一组明文数据分组:
对每个密文数据分组和所选密钥流分组执行第一代数函数,以产生第一中间结果;
对第一中间结果执行逆向非线性变换,以产生第二中间结果;以及
对每个第二中间结果分组和所选轮密钥分组执行第二代数函数,以产生每个明文数据分组。
55.权利要求54的产品,其中,所述组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
56.权利要求54的产品,其中,所述密钥流的大小小于密文数据的大小。
57.权利要求54的产品,其中,密钥流分组的数目等于轮密钥的数目。
58.权利要求54的产品,其中,所述组密文数据分组之内的每个密文数据分组基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
59.一种从一组密文数据分组中产生一组明文数据分组的方法,包括:
对每个密文数据分组和所选轮密钥执行第一代数函数,以产生第一中间结果;
对第一中间结果执行逆向非线性变换,以产生第二中间结果;以及
对每个第二中间结果分组和所选密钥流分组执行第二代数函数,以产生每个明文数据分组,所述所选轮密钥至少部分从密钥流中产生。
60.权利要求59的方法,其中,所述组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
61.权利要求59的方法,其中,所述密钥流的大小小于密文数据的大小。
62.权利要求59的方法,其中,所述组密文数据分组之内的每个密文数据分组基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
63.一种产品,包括:具有多个机器可读指令的存储介质,其中在处理器执行指令时,所述指令通过下列步骤从一组密文数据分组中产生一组明文数据分组:
对每个密文数据分组和所选轮密钥执行第一代数函数,以产生第一中间结果;
对第一中间结果执行逆向非线性变换,以产生第二中间结果;以及
对每个第二中间结果分组和所选密钥流分组执行第二代数函数,以产生每个明文数据分组,所述所选轮密钥至少部分从密钥流中产生。
64.权利要求63的产品,其中,所述组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理。
65.权利要求63的方法,其中,所述密钥流的大小小于密文数据的大小。
66.权利要求63的产品,其中,所述组密文数据分组之内的每个密文数据分组基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
67.一种方法,包括:
从密钥流分组中产生多个轮密钥;以及
将一组密文数据分组解密成一组明文数据分组,其中,所述组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理,而且密钥流的大小小于密文数据的大小。
68.权利要求66的方法,其中,所述组密文数据分组之内的每个密文数据分组基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
69.一种产品,包括:具有多个机器可读指令的存储介质,其中,在处理器执行指令时,该指令:从密钥流分组产生多个轮密钥;以及将一组密文数据分组解密成一组明文数据分组,其中所述组之内的每个密文数据分组利用所选密钥流分组和所选轮密钥的唯一组合进行处理,而且密钥流的大小小于密文数据的大小。
70.权利要求69的产品,其中,所述组密文数据分组之内的每个密文数据分组基本上与所述组的所有其他分组同时进行处理,以产生明文数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/909,004 | 2004-07-30 | ||
US10/909,004 US20060023875A1 (en) | 2004-07-30 | 2004-07-30 | Enhanced stream cipher combining function |
PCT/US2005/025338 WO2006012363A1 (en) | 2004-07-30 | 2005-07-15 | Stream cipher combining system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1993922A true CN1993922A (zh) | 2007-07-04 |
CN1993922B CN1993922B (zh) | 2012-11-14 |
Family
ID=35447733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800258807A Expired - Fee Related CN1993922B (zh) | 2004-07-30 | 2005-07-15 | 流密码组合系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060023875A1 (zh) |
EP (1) | EP1779584A1 (zh) |
KR (1) | KR20070039161A (zh) |
CN (1) | CN1993922B (zh) |
WO (1) | WO2006012363A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100594691C (zh) * | 2007-10-09 | 2010-03-17 | 华中科技大学 | Manet网络的数据传递加密方法 |
CN101945383A (zh) * | 2010-09-06 | 2011-01-12 | 苏州国芯科技有限公司 | 一种用于无线局域网的面积紧凑的算法硬件实现方法 |
CN104011709A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 在256位数据路径中执行jh加密散列的指令 |
CN104504322A (zh) * | 2014-12-05 | 2015-04-08 | 中国科学院信息工程研究所 | 对USB Key验证、读取、加密、解密的方法 |
CN106463069A (zh) * | 2014-05-14 | 2017-02-22 | 三菱电机株式会社 | 加密装置、存储系统、解密装置、加密方法、解密方法、加密程序以及解密程序 |
CN106788971A (zh) * | 2016-12-14 | 2017-05-31 | 上海电机学院 | 一种基于流密码算法的子密钥生成方法 |
CN106953875A (zh) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | 基于多密钥流密码的顺序加密方法 |
CN111740816A (zh) * | 2019-03-25 | 2020-10-02 | 山东文斌信息安全技术有限公司 | Bwgcf分组密码算法实现方法 |
CN112910630A (zh) * | 2021-02-02 | 2021-06-04 | 浙江大华技术股份有限公司 | 扩展密钥的置换方法及装置 |
CN113672946A (zh) * | 2021-07-15 | 2021-11-19 | 平头哥(上海)半导体技术有限公司 | 数据加解密组件、相关装置和方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8050401B2 (en) * | 2005-09-27 | 2011-11-01 | The Boeing Company | High speed configurable cryptographic architecture |
KR101369748B1 (ko) * | 2006-12-04 | 2014-03-06 | 삼성전자주식회사 | 데이터 암호화 방법 및 그 장치 |
US8538015B2 (en) * | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
KR100930591B1 (ko) * | 2007-12-10 | 2009-12-09 | 한국전자통신연구원 | 고속 세션 변경이 가능한 암호화 장치 |
US8194854B2 (en) * | 2008-02-27 | 2012-06-05 | Intel Corporation | Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation |
US20100014671A1 (en) * | 2008-06-19 | 2010-01-21 | General Instrument Corporation | Secure interchip transport interface |
US20100158243A1 (en) * | 2008-12-19 | 2010-06-24 | Robert Bosch Gmbh | Method of encryption in networked embedded systems |
FR2963713A1 (fr) * | 2010-08-04 | 2012-02-10 | St Microelectronics Grenoble 2 | Procede de chiffrement d'un flux de donnees |
US10439802B2 (en) * | 2010-08-04 | 2019-10-08 | Lawrence P. Huang | System for scrambling and methods for use therewith |
US9331848B1 (en) * | 2011-04-29 | 2016-05-03 | Altera Corporation | Differential power analysis resistant encryption and decryption functions |
US10614099B2 (en) | 2012-10-30 | 2020-04-07 | Ubiq Security, Inc. | Human interactions for populating user information on electronic forms |
CN104158788B (zh) * | 2013-05-13 | 2017-08-29 | 普天信息技术研究院有限公司 | 一种端到端传输数据的方法 |
US9407437B1 (en) * | 2014-03-25 | 2016-08-02 | Amazon Technologies, Inc. | Secure initialization vector generation |
US10579823B2 (en) | 2014-09-23 | 2020-03-03 | Ubiq Security, Inc. | Systems and methods for secure high speed data generation and access |
WO2016049227A1 (en) | 2014-09-23 | 2016-03-31 | FHOOSH, Inc. | Secure high speed data storage, access, recovery, and transmission |
US9942211B1 (en) | 2014-12-11 | 2018-04-10 | Amazon Technologies, Inc. | Efficient use of keystreams |
US11349656B2 (en) * | 2018-03-08 | 2022-05-31 | Ubiq Security, Inc. | Systems and methods for secure storage and transmission of a data stream |
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
KR20220146115A (ko) * | 2021-04-23 | 2022-11-01 | 삼성에스디에스 주식회사 | 키 스트림 생성 방법 및 장치 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560337B1 (en) * | 1998-10-28 | 2003-05-06 | International Business Machines Corporation | Systems, methods and computer program products for reducing effective key length of ciphers using one-way cryptographic functions and an initial key |
GB2353191A (en) | 1999-07-09 | 2001-02-14 | Hw Comm Ltd | Packet data encryption/decryption |
JP2002049310A (ja) * | 2000-08-04 | 2002-02-15 | Toshiba Corp | 暗復号装置、認証装置及び記憶媒体 |
US20030086564A1 (en) * | 2001-09-05 | 2003-05-08 | Kuhlman Douglas A. | Method and apparatus for cipher encryption and decryption using an s-box |
EP1452027B1 (en) * | 2001-12-10 | 2006-08-02 | International Business Machines Corporation | Access to encrypted broadcast content |
US7257229B1 (en) * | 2002-06-07 | 2007-08-14 | Winbond Electronics Corporation | Apparatus and method for key scheduling |
US7826613B2 (en) * | 2002-08-19 | 2010-11-02 | Qualcomm Incorporated | Stream cipher cryptographic system and method |
US7336783B2 (en) * | 2003-01-24 | 2008-02-26 | Samsung Electronics, C., Ltd. | Cryptographic systems and methods supporting multiple modes |
-
2004
- 2004-07-30 US US10/909,004 patent/US20060023875A1/en not_active Abandoned
-
2005
- 2005-07-15 CN CN2005800258807A patent/CN1993922B/zh not_active Expired - Fee Related
- 2005-07-15 WO PCT/US2005/025338 patent/WO2006012363A1/en active Application Filing
- 2005-07-15 KR KR1020077004542A patent/KR20070039161A/ko active Search and Examination
- 2005-07-15 EP EP05805692A patent/EP1779584A1/en not_active Withdrawn
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100594691C (zh) * | 2007-10-09 | 2010-03-17 | 华中科技大学 | Manet网络的数据传递加密方法 |
CN101945383A (zh) * | 2010-09-06 | 2011-01-12 | 苏州国芯科技有限公司 | 一种用于无线局域网的面积紧凑的算法硬件实现方法 |
CN101945383B (zh) * | 2010-09-06 | 2013-09-25 | 苏州国芯科技有限公司 | 一种用于无线局域网的面积紧凑的算法硬件实现方法 |
CN104011709B (zh) * | 2011-12-22 | 2018-06-05 | 英特尔公司 | 在256位数据路径中执行jh加密散列的指令 |
CN104011709A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 在256位数据路径中执行jh加密散列的指令 |
CN106463069A (zh) * | 2014-05-14 | 2017-02-22 | 三菱电机株式会社 | 加密装置、存储系统、解密装置、加密方法、解密方法、加密程序以及解密程序 |
CN104504322A (zh) * | 2014-12-05 | 2015-04-08 | 中国科学院信息工程研究所 | 对USB Key验证、读取、加密、解密的方法 |
CN104504322B (zh) * | 2014-12-05 | 2017-12-08 | 中国科学院信息工程研究所 | 对USB Key验证、读取、加密、解密的方法 |
CN106788971A (zh) * | 2016-12-14 | 2017-05-31 | 上海电机学院 | 一种基于流密码算法的子密钥生成方法 |
CN106953875A (zh) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | 基于多密钥流密码的顺序加密方法 |
CN111740816A (zh) * | 2019-03-25 | 2020-10-02 | 山东文斌信息安全技术有限公司 | Bwgcf分组密码算法实现方法 |
CN111740816B (zh) * | 2019-03-25 | 2023-03-31 | 山东文斌信息安全技术有限公司 | Bwgcf分组密码算法实现方法 |
CN112910630A (zh) * | 2021-02-02 | 2021-06-04 | 浙江大华技术股份有限公司 | 扩展密钥的置换方法及装置 |
CN112910630B (zh) * | 2021-02-02 | 2022-12-06 | 浙江大华技术股份有限公司 | 扩展密钥的置换方法及装置 |
CN113672946A (zh) * | 2021-07-15 | 2021-11-19 | 平头哥(上海)半导体技术有限公司 | 数据加解密组件、相关装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060023875A1 (en) | 2006-02-02 |
EP1779584A1 (en) | 2007-05-02 |
WO2006012363A1 (en) | 2006-02-02 |
CN1993922B (zh) | 2012-11-14 |
KR20070039161A (ko) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1993922B (zh) | 流密码组合系统和方法 | |
US11816477B2 (en) | Obfuscation for protection of streaming media and other data flows | |
US8504845B2 (en) | Protecting states of a cryptographic process using group automorphisms | |
WO2003021863A1 (en) | Non-algebraic method of encryption and decryption | |
CN102204158A (zh) | 低等待时间的分块密码术 | |
WO2006063275A1 (en) | Method and apparatus for increasing the speed of cryptographic processing | |
KR20180081559A (ko) | 암호화 동작을 위한 키 시퀀스 생성 | |
Kumar et al. | Novel pseudo random key & cosine transformed chaotic maps based satellite image encryption | |
CN110324135A (zh) | 一种基于云计算的同态加密矩阵行列式安全外包方法 | |
Agrawal et al. | Elliptic curve cryptography with hill cipher generation for secure text cryptosystem | |
CN105184115A (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Kahla et al. | Asymmetric image encryption based on twin message fusion | |
CN108718232A (zh) | 基于aes和混沌的图像加密方法 | |
CN105281893A (zh) | 用于引入白箱实现对串集合的依赖性的方法 | |
Nair et al. | An Improvement to 2DLSCM Encryption Scheme | |
CN116192364A (zh) | 抗侧信道的aes白盒加密方法及相关设备 | |
CN113541942B (zh) | 基于arx白盒分组密码的数字内容加解密方法 | |
CN115170380A (zh) | 一种基于混沌映射的图像分层置乱加密方法 | |
Dweik et al. | A survey of lightweight image encryption for IoT | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
EP1043863B1 (en) | Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks | |
Pal et al. | An ANN Approach of Twisted Fiestel Block Ciphering | |
CN113268707B (zh) | 一种基于行编码的密文协方差矩阵计算方法 | |
CN114254372B (zh) | 数据加密处理方法、系统及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121114 Termination date: 20130715 |