CN107113163B - 流加密技术 - Google Patents
流加密技术 Download PDFInfo
- Publication number
- CN107113163B CN107113163B CN201480084020.XA CN201480084020A CN107113163B CN 107113163 B CN107113163 B CN 107113163B CN 201480084020 A CN201480084020 A CN 201480084020A CN 107113163 B CN107113163 B CN 107113163B
- Authority
- CN
- China
- Prior art keywords
- nlfsr
- implemented
- feedback
- register
- register stages
- 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.)
- Active
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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- 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
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
提供了一种生成用于对数据流(122)进行加密或解密的密钥流(128)的技术。关于该技术的方法方面,操作以伽罗瓦配置实现的包括n个寄存器级的非线性反馈移位寄存器NLFSR(112)。实现的n个寄存器级中的至少一个寄存器级可由线性反馈移位寄存器LFSR中的至少一个寄存器级表示。实现的n个寄存器级的第一子集可由第二NLFSR的第二子集表示。在第二NLFSR中接收非线性反馈的寄存器级的数量大于1并且小于在实现的NLFSR中接收非线性反馈的寄存器级的数量。从非线性输出函数(118)输出密钥流(128)。非线性输出函数(118)的输入与实现的NLFSR(112)的n个寄存器级中的至少两个耦合。
Description
技术领域
本公开大体上涉及加密和/或解密。更具体地而非限制地提供了一种生成用于对数据流进行加密或解密的密钥流的方法和设备。此外,提供了一种用于对数据流进行加密或解密的系统。
背景技术
无线通信需要有效和安全的加密(encryption),也称为加密(cipher)。对于更高效的加密技术(也称为密码)的需求预期将随新一代无线通信(例如,在5G系统中)而增加,原因在于预期所需的数据速率显著增加。此外,例如交通、电子卫生、智能城市管理和环境监测等对于社会至关重要的服务需要提供高水平保证的安全机制。
为了加密的目的,存在两种类型的密码,即块密码和流密码。已经对块密码研究了50多年。收集的关于它们的函数定义和密码分析的知识导致了被广泛接受用于对于各种攻击的强大抵抗的高级加密标准(AES)。块密码可以在允许它们作为流密码操作的特殊模式中使用,其中块密码的数据速率是可由流密码实现的数据速率的上限。3G和4G无线通信系统使用专用流密码SNOW3G或基于块密码的流密码。然而,在加密数据速率低于1Gbps的情况下,现有密码将在针对这种数据速率的最苛刻的LTE-Advanced和5G应用中造成瓶颈。
虽然军事应用长期以来依赖于流密码,但是对流密码的积极公开调查仅开始于约30年前,其中已经查询了传统流密码的安全性。例如,在全球移动通信系统(GSM)标准中使用的流行流密码A5/1和A5/2以及在蓝牙中使用的流密码E0已被发现容易受到E.Biham和O.Dunkelman在″Cryptanalysis of the A5/1 GSM stream cipher″,Progress inCryptology,INDOCRYPT 2000,pp.43-51,Springer,2000中描述的多种攻击。结果,流密码A5/1由基于块密码的流密码A5/3替代,并且随后禁止使用流密码A5/2。
根据E.Tews、R.-P.Weinmann和A.Pychkine在“Breaking 104-bit WEP in undera minute”,Cryptology ePrint Archive:Report 2007/120,2007(http://eprint.iacr.org/2007/120)中所述,如果不丢弃输出密钥流的开头、如果使用非随机或相关密钥、或如果使用单个密钥流两次,那么用于根据原始IEEE 802.11标准来保障无线网络的另一普遍使用的流密码RC4是脆弱的。因此,IEEE 802.11i标准中AES取代了流密码RC4。
尽管上述过去的安全问题,预期对于安全高效的流密码的需求在未来几代的无线通信中增加,原因在于5G无线通信被设想为提供比当前LTE部署高1000倍量级的业务量,同时改进服务质量(M.Olsson等人,5GrEEn:“Towards green 5G mobile networks”,WiMob,pp.212-216,2013)。预期在一般场景下可用数百Mbps的消费者数据速率,以及在特定场景中可用若干Gbps。此外,需要在针对加工业的安全或控制机制、针对配电网或针对交通的使用情况下支持几毫秒或更短的低等待时间(爱立信白皮书“5G无线电接入”,2013年6月)。如果可以满足必要的安全要求,可能由于它们的效率,专用流密码可能在该发展中发挥重要作用。
发明内容
因此,需要一种提供高水平的保证的有效的流加密技术。
关于一个方面,提供了一种生成用于对数据流进行加密或解密的密钥流的方法。该方法包括:第一步骤:操作以伽罗瓦配置实现的包括n个寄存器级的非线性反馈移位寄存器(NLFSR),其包括,其中实现的n个寄存器级中的至少一个寄存器级可由线性反馈移位寄存器(LFSR)中的至少一个寄存器级表示,以及其中实现的n个寄存器级的第一子集可由第二NLFSR的第二子集表示,其中在所述第二NLFSR中接收非线性反馈的寄存器级的数量大于1并且小于在实现的NLFSR中接收非线性反馈的寄存器级的数量;以及第二步骤:从非线性输出函数输出密钥流,其中非线性输出函数的输入与实现的NLFSR的n个寄存器级中的至少两个相耦合。
以伽罗瓦配置实现可以有助于例如在减小传播延迟和/或等待时间方面提高效率。尽管伽罗瓦配置具有相互关联的结构,凭借可表示性,用该技术的至少一些实施例可以实现高水平的保证。例如,通过证明对某些类别的攻击的抵抗,NLFSR表示和LFSR表示可以建立高水平的保证。如果另一FSR的寄存器级或寄存器级的子集生成相同的序列(例如,针对一个FSR和另一FSR经历相同的初始化或等效初始化),一个反馈移位寄存器(FSR)的寄存器级或寄存器级的子集可由该另一FSR表示。
伽罗瓦配置可以涵盖任何具有多于一个接收反馈的寄存器级的FSR。反馈可能包括任何非平凡(nontrival)更新函数。术语“非平凡”可以涉及除(例如,多于)单纯移位函数之外的任何更新函数。除移位函数之外的更新函数的项可以被称为反馈函数。反馈函数可以是位于接收反馈的寄存器级移位方向的下游的一个或多个寄存器级的任何函数。斐波纳契配置可以包括任何具有不多于一个接收反馈的寄存器级的FSR。
一些或所有函数(例如,线性和非线性反馈函数和/或非线性输出函数)可以是布尔函数(即,提供布尔值)。每个寄存器级可以表示布尔值。函数可以包括一个或多个项。仅取决于一个寄存器级的项也可以被称为线性项。函数的常数项和线性项可以被称为函数的线性部分。仅包括常数和线性项的函数也可以被称为线性函数。取决于多于一个寄存器级的项可以被称为非线性项。包括至少一个非线性项的函数也可以被称为非线性函数。可以通过函数内的异或运算来连接多个项。多于一个寄存器级的布尔值可以通过非线性项内的与运算来连接。
非线性输出函数可以包括线性项。非线性输出函数的线性项(即,非线性输出函数的线性部分)可以仅取决于NLFSR的实现的n个寄存器级的第一子集。
备选地或此外,可以选择非线性输出函数和实现的NLFSE,使得非线性输出函数的所有偏差最大的线性近似仅取决于NLFSR的实现的n个寄存器级的第一子集。对于给定布尔函数,即具有n个变量的Z(x1,...,xn)和具有相同变量的线性函数A(x1,...,xn),可以根据下式计算针对Z的近似A的偏差e:
Pr[Z(x1,...,xn)=A(x1,...,xn)]=(1+e)/2,
其中Pr[“条件”]是假设变量(x1,...,xn)的均匀分布的情况下满足“条件”的概率。
对于n个布尔变量(x1,...,xn),可能存在线性函数A(x1,...,xn)的有限集合。通过将非线性输出函数Z的真值表与集合中的每个线性函数A的真值表进行比较,可以确定一个或多个偏差最大的线性近似,例如作为大多数情况下等于Z的一个或多个线性函数A(或在大多数情况下不同,因为考虑到A的互补会给出相同的信息)。备选地,可以使用与比较所有真值表相比更高效的算法。
一个或多个偏差最大的线性近似可以用作确定密钥流是否易受攻击的工具。由于近似值采用来自可由第二NLFSR中相应寄存器级表示的寄存器级的输入,可以确定使用密钥流的密码的安全性。
在实现的NLFSR和/或第二NLFSR中接收非线性反馈的寄存器级的数量可以是偶数。可由LFSR表示的至少一个寄存器级可以布置在实现的NLFSR中的所有非线性反馈的移位方向下游。
至少一个寄存器级可以包括移位方向上的最后一级(例如移位寄存器的输出)。备选地或附加地,至少一个寄存器级可以是第一子集的子集,例如,第一子集的包括接收非线性反馈的最后一个寄存器级以及可选地在移位方向更下游的一个或多个级在内的一部分。实现的n个寄存器级中的至少一个寄存器级还可由第二NLFSR中的至少一个寄存器级表示。
在第二NLFSR中接收非线性反馈的寄存器级中的每一个可以表示实现的NLFSR中的寄存器级。可以针对接收非线性反馈的寄存器级中的每一个,根据与相应寄存器级相对应地移位的公共反馈函数计算第二NLFSR中的非线性反馈。
公共反馈函数的非线性可以大于500·n。公共反馈函数的弹性可以等于或大于5。公共反馈函数的代数次数可以等于或大于4。公共反馈函数可以包括小于0.15·n个二进制布尔运算。实现的NLFSR的周期可以是2n-1。
第二NLFSR和LFSR中的每一个可以包括n个寄存器级。第二NLFSR可以具有伽罗瓦配置。LFSR可以具有斐波纳契配置。
第一子集可以是实现的n个寄存器级的真子集。第一子集可以包括实现的NLFSR的两个以上连续寄存器级。
实现的n个寄存器级中的每一个可以表示一个比特。实现的NLFSR中的非线性反馈中的每一个可以提供根据异或(或互斥析取)由相应寄存器级接收的布尔值作为移位的结果。
非线性输出函数可以为实现的NLFSR的每个循环提供布尔值。密钥流可以是比特流。非线性输出函数可以是平衡布尔函数。非线性输出函数的非线性可以大于2000·n。非线性输出函数的弹性可以等于或大于5。非线性输出函数的代数次数可以等于或大于6。非线性输出函数的实现可以包括小于0.1·n个二进制布尔运算。例如,可以使用小于0.1·n个二进制布尔运算来计算非线性输出函数。
非线性输出函数所依赖的寄存器级中的一半以上可以从NLFSR的所实现的n个寄存器级的全正差集中选择。如果其元素之间的所有正成对差不同,则集合可以被称为全正差集。在″Fast Software Encryption″,Lecture Notes in Computer Science,Vol.1039,pp.173-188,Cambridge,1996中J.Dj.Golic的“On the security of nonlinear filtergenerators”中可以找到全正差集的附加属性。备选地或附加地,非线性输出函数所依赖的所有寄存器级在实现的NLFSR中可以是不连续的。
非线性输出函数可以用二叉树配置流水线化。二叉树配置的组合电路深度可以至多为2。
可以对实现的NLFSR的n个寄存器进行初始化。实现的n个寄存器级的第一子集可以至少部分地由密钥来初始化。初始化还可以包括对实现的NLFSR计时n个循环。在对n个循环进行初始化期间,可以将非线性输出函数反馈给实现的NLFSR。在初始化之后,可以将数据流和从非线性输出函数输出的密钥流相加,用于对数据流进行加密或解密。
关于另一方面,提供了一种计算机程序产品。计算机程序产品包括:当由一个或更多个计算设备执行所述计算机程序产品时,用于执行本文所公开的方法方面的步骤中的任意一个步骤的程序代码部分。计算机程序产品可以存储在计算机可读记录媒体上。计算机程序产品还可以被提供用于经由数据网络(例如,提供数据流的无线通信网络和/或互联网)下载。
关于硬件方面,提供了一种生成用于对数据流进行加密或解密的密钥流的设备。该设备包括以伽罗瓦配置实现的包括n个寄存器级的非线性反馈移位寄存器(NLFSR)。实现的n个寄存器级中的至少一个寄存器级可由线性反馈移位寄存器(LFSR)中的至少一个寄存器级表示,以及实现的n个寄存器级的第一子集可由第二NLFSR的第二子集表示,其中在第二NLFSR中接收非线性反馈的寄存器级的数量大于1并且小于在实现的NLFSR中接收非线性反馈的寄存器级的数量。该设备还包括用于输出密钥流的非线性输出函数,其中非线性输出函数的输入与实现的NLFSR的n个寄存器级中的至少两个耦合。
关于另一硬件方面,提供了一种生成用于对数据流进行加密或解密的系统。该系统包括:适于根据上述硬件方面生成密钥流的生成设备;适于对生成设备进行初始化的初始化设备;以及适于将数据流和由生成设备生成的所述密钥流相加以对所述数据流进行加密或解密的相加设备。
设备和/或系统还可以适于执行方法方面步骤中的任何一个。设备和/或系统还可以包括在方法方面的上下文中公开的任何特征。
上述方面中的任何一个可以在无线通信系统的接入点(例如,无线电基站)和/或用户设备中实现。
附图说明
下面,参考附图中示出的示意性实施例更详细地描述本公开,其中:
图1示意性示出了用于对数据流进行加密或解密的示例性系统的框图,其包括生成用于对数据流进行加密或解密的密钥流的设备;
图2示出了在图1的设备中可实现的用于生成对数据流进行加密或解密的密钥流的方法的流程图;
图3示意性示出了可以在图1的设备中实现的具有伽罗瓦配置的示例性非线性反馈移位寄存器(NLFSR)的框图;
图4示意性示出了表示图3的实现的NLFSR的寄存器级的子集的示例性第二NLFSR的框图;
图5示意性示出了表示图3的实现的NLFSR的至少一个寄存器级的示例性线性反馈移位寄存器(LFSR)的框图;
图6示意性示出了图1的设备中可实现的非线性输出函数的框图;
图7示意性示出了可以针对图3的实现的NLFSR的初始化和运算切换的非线性反馈函数的框图;
图8示出了对于给定单项式次数没有通过最大次数单项式测试的最大数量的初始化循环的示例示意图;
图9示意性示出了实现图1的设备的集成电路;以及
图10示意性示出了包括图9的集成电路的移动终端。
具体实施方式
在以下描述中,为了解释而非限制的目的,阐述了具体细节(例如,具体设备环境),以提供对本文公开技术的透彻理解。然而,对本领域技术人员将显而易见的是,该技术可在脱离这些特定细节的其它实施例中实践。此外,尽管主要针对诸如长期演进(LTE)的后继者的无线通信网络描述了以下实施例,但将显而易见的是,本文描述的技术也可以在包括第三代合作伙伴计划(3GPP)网络、非3GPP网络(例如,根据IEEE 802.3或IEEE 802.11标准系列)及其组合在内的其他移动和固定通信网络、无线或有线的中实现。此外,所描述的技术可以在协议栈的一个或多个层上实现,例如包括媒体访问控制(MAC)层、分组数据融合(PDCP)层、网络层(例如根据互联网协议或IP)、传输层(例如根据传输控制协议或TCP)和/或应用层。
虽然在对数据流进行加密的上下文中描述了该技术,但该技术不限于处理数据流,具体地不限于处理无界数据流。该技术适用于可以被视为固定长度的流或消息序列(例如,数据分组)的单个数据项(例如,消息)。此外,该技术具体适用于易受窃听的任何通信系统,包括无线通信、有线通信和光纤通信。
此外,本领域技术人员将理解:本文解释的服务、功能和步骤可以使用软件功能结合编程微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或例如包括先进RISC机器(ARM)在内的通用计算机来实现。还将理解:尽管以下实施例主要在方法和设备的上下文中描述,本发明可以体现在计算机程序产品中,以及体现在包括计算机处理器和耦合到该处理器的存储器在内的集中式或分布式系统中,其中,存储器编码有可以执行本文公开的服务、功能和步骤的一个或更多个程序。
图1示意性示出了用于对数据流进行加密或解密的系统100。系统100包括初始化设备102、用于生成密钥流的设备110和相加设备120。生成设备110包括以伽罗瓦配置实现的非线性反馈移位寄存器(NLFSR)112。生成设备110还包括与NLFSR 112耦合的输出函数118。在生成密钥流128之前,实现的NLFSR 112由初始化设备102基于密钥126、以及可选地由固定的初始值(IV)进行初始化。输出函数将密钥流128输出到相加设备120。相加设备120将来自数据源的数据流122与密钥流128组合。将得到的加密或解密的数据流提供给数据目的地124。
可以通过外部机制、可选地与现有技术组合来提供密钥和/或IV。例如,密钥可由密钥管理机制(例如,根据3GPP TS 33.401的LTE AKA或根据IETF RFC 4306的IKEv2)来提供。IV可以通过一些外部控制机制、同步机制或信令机制来提供,例如将IV与正在处理的流相关联。例如,如果正在处理的流包括或是数据分组,IV可以包括分组标识符、序列号、分组的发送者的标识符、密码随机数等中的至少一个。
系统100也被称为流密码。系统100可以被实现为二进制加法流密码,其中密钥流128、明文122和密文124是二进制序列。由生成设备110作为密钥流生成器采用秘密密钥126和初始值(IV)作为种子生成密钥流128。生成设备110生成作为0和1的长伪随机序列的密钥流128。然后通过密钥流128和明文122的逐比特模2加法获得密文。系统100对于无线应用是有利的,原因在于消息大小没有扩展,并且不传播传输比特错误(例如,不扩散到密文124中的稍后比特位置)。
在EU FP7研究项目“eSTREAM”中,许多流密码(包括Grain和Trivium)被设计为遵循以下信念:流密码可以比块密码更快和更小。然而,近年来,已经提出了若干其大小与Grain和Trivium相当的块密码。一些熟知的示例包括:KATAN、LED、KLEIN、PRESENT、Piccolo和TWINE。通常针对100kHz时钟频率给出密码的吞吐量以便可比,原因在于这是RFID标签的典型时钟频率,尽管更高的时钟频率通常是可能的。例如,J.Borghoff等人,″PRINCE,Alow-latency block cipher for generalvasive computing applications“,Advancesin Cryptology ASIACRYPT,Vol.7658”Lecture Notes in Computer Science“,pp.208-225,Springer 2012报告了使用稍微超过3000等效门(GE)和90nm CMOS技术达到约1Gbps的实施方式。
设备110在更紧凑的设计(例如,具有小于3000GE)中定义了一类用于更高数据速率的流密码。该类中的流密码作为主要组成部分包括:具有伽罗瓦配置的n比特NLFSR 112和采用来自NLFSR 112的级的输入的非线性输出布尔函数118。
NLFSR 112包括以伽罗瓦配置实现的n个寄存器级。实现的n个寄存器级中的至少一个寄存器级可由线性反馈移位寄存器(LFSR)中的至少一个寄存器级表示。实现的n个寄存器级的第一子集可由第二NLFSR的第二子集表示,其中在第二NLFSR中接收非线性反馈的寄存器级的数量大于1而小于实现的NLFSR中接收非线性反馈的寄存器级的数量。非线性输出函数118的输入与实现的NLFSR 112的n个寄存器级中的至少两个耦合。
图2示出了操作生成设备110的方法的流程图。在步骤202中,NLFSR 112根据其反馈函数来操作。在方法200的步骤204中,非线性输出函数118输出密钥流128。
设备110的以下实施例是这类流密码的示例。图3示意性示出了设备110中的NLFSR112的实施例。NLFSR 112包括n个寄存器级302,例如n=256。在附图标记304处示出了寄存器级302的示例性指数i=0...n-1。
任何反馈移位寄存器(FSR)的状态是其状态变量xi的值的向量x。在每个时钟循环中,针对{0,1,...,n-1}中的每个i,通过(例如,同时地)将每个寄存器级i的值更新为相应反馈函数fi的值来根据FSR的当前状态确定FSR的下一状态。
第i个寄存器级302的比特值xi在每个周期中根据平凡移位函数
fi(x)=xi+1
加法被实现为逐比特“异或”运算。乘法“·”被实现为逐比特“与”运算。用于实现NLFSR 112中的反馈和用于定义非线性输出函数118的布尔函数GF(2n)→GF(2)使用代数范式(ANF)(即具有以下类型的伽罗瓦域GF(2)的多项式)来表示
其中ci∈{0,1},(i0,i1,...,in-1)是多指数i的二进制扩展,并且x=(x0,x1,..,xn-1)。
更具体地,实现的NLFSR 112包括以下更新函数:
所有未提及的更新函数都是平凡移位函数。上述更新函数(1.1)和(1.2)中也包括平凡移位函数作为更新函数的第一项。
更新函数(1.1)和(1.2)还包括与反馈函数306、308和310相对应的一个或多个项。反馈函数(1.1)包括由标识的线性部分306和由示识的非线性部分308。例如,更新函数f255包括在附图标记309处所示的非线性部分x41·x70。
线性部分和非线性部分被反馈给引导至接收非线性反馈函数(1.1)的寄存器级n-1至n-b-1中的一些的相加点312至314。反馈(1.1)的寄存器宽度(breadth)在图3所示的实施例中例如等于b=24。
移位的非线性部分被反馈给引导至接收非线性反馈函数(1.2)的寄存器级n-1至n-b-1中的一些的相加点316至318。作为并行移位的结果,反馈(1.2)的寄存器宽度等于反馈(1.1)的寄存器宽度,例如等于b=24。
实现的NLFSR 112包括接收非平凡反馈的14个寄存器级,即NLFSR 112具有伽罗瓦配置(简称为伽罗瓦NLFSR)。此外,反馈函数的组(1.1)和(1.2)中的每一个包括7个非平凡反馈函数,并且因此可以被认为是伽罗瓦子配置。
仅包括一个接收非平凡反馈的寄存器级的反馈移位寄存器被称为斐波纳契配置。对于给定的伽罗瓦NLFSR,伽罗瓦-斐波纳契变换是明确定义的和唯一的。伽罗瓦-斐波纳契变换可以被实现为与E.Dubrova在“A Transformation from the Fibonacci to thGalois NLFSRs”,IEEE Transactions on Information Theory,vol.55,2009,PP.5263-527所描述的斐波纳契-伽罗瓦变换的反过程。
简单地说明伽罗瓦-斐波纳契变换,以提供对技术的透彻理解。用g标识以伽罗瓦配置实现的n比特NLFSR 112的(至少部分非线性的)反馈函数fi的非平凡部分,NLFSR 112包括根据以下各式的反馈函数fi:
…
通过将i<n-1的所有函数gi(x)移动至反馈函数fn-1(x)并将每个gi(x)的所有变量的指数增加(n-1)-i来完成伽罗瓦-斐波纳契变换。令gi(x<<(n-1)-i)标识其中所有变量的指数增加(n-1)-i的函数gi(x)。伽罗瓦-斐波纳契变换的结果是以下NLFSR:
fn-2(x)=xn-1,
…
f1(x)=x2,以及
f0(x)=x1
如果满足以下与具有伽罗瓦配置的函数gi(x)的变量的指数相关的条件,变换结果通常使得在另一NLFSR中在输出级处生成与原始NLFSR相同的序列集合:针对每个i∈{t,t+1,...,n-1},具有伽罗瓦配置的相应函数gi(x)的最大变量指数小于或等于t,其中t是最大指数,使得对于所有j{0,1,...,t-1},gj(x)=0。
NLFSR 112具有可以通过应用伽罗瓦-斐波那契变换为(并且因此特别地可表示为)生成与NLFSR 112的输出级x0的输出序列相同集合的n比特LFSR的属性。该属性也被称为LFSR可表示性。总和中的非线性项
抵消。
伽罗瓦-斐波纳契变换是唯一的并可以很容易地计算它。因此,该变换允许容易地确定包括NLFSR的给定流密码是否是设备110的实现。如果给定的NLFSR可简化为LFSR 116,则给定的NLFSR是实现的NLFSR 112。图5中示出了示例LFSR 116。
此外,NLFSR 112具有可变换为(并且因此具体地可表示为)包括少于实现的NLFSR112中的反馈函数的偶数个非平凡反馈函数的第二n比特NLFSR的属性。换言之,寄存器宽度b可以在第二NLFSR中简化为1。该属性也被称为NLFSR可表示性。图4中示出了示例性第二NLFSR 114。
在针对图3所示的实现的NLFSR 112和表示实现的NLFSR 112的第二NLFSR 114的实施例中,在第二NLFSR 114中接收非线性反馈的寄存器级217和255的数量是2,即大于1且小于在实现的NLFSR 112中接收非线性反馈的14个寄存器级193、197、201、205、209、213、217、231、235、239、243、247、251、255的数量。
可以实现NLFSR可表示性,原因在于实现的NLFSR 112可变换为n比特NLFSR 114,其仅具有如附图标记406和408所示的
fn-1(x0,x1,...,xn-1)=x0+fL(x1,...,xn-1)+fN(x1,...,xn-1),
以及如附图标记410所示的
fn-1-k(x0,x1,...,xn-1)=xn-k+fN(x1-k,...,xn-1-k),
两种类型的非平凡反馈函数,其中“-”是减法模n。例如,伽罗瓦-斐波纳契变换分别应用于反馈函数的组(1.1)和(1.2)。由于数量为2的非平凡反馈函数,所得到的第二NLFSR 114具有伽罗瓦配置。更具体地,第二NLFSR 114可以被称为由k个寄存器级相对于彼此移位的2个斐波纳契配置的级联。
实现的NLFSR 112的寄存器级n-b-1至n-k生成与第二NLFSR 114在寄存器级n-1至n-k处相同的序列集合,并且实现的NLFSR 112的寄存器级n-b-k-1至0生成与第二NLFSR114在寄存器级n-k-1到0处相同的序列集合。
在实现的NLFSR 112和表示实现的NLFSR 112的第二NLFSR 114的实施例中,包括实现的n个寄存器级的指数i=0,...,193和218,...,231的第一子集可由第二NLFSR 114的第二子集i=24,...,217和242,...,255表示。
NLFSR可表示性(实现的NLFSR 112到第二NLFSR 114的变换性)和普通非线性反馈函数的k移位暗示LFSR可表示性(实现的NLFSR 112到LFSR 116的变换性),例如,由于fN(x1-k,...,xn-1-k)可移动至fn-1(x0,x1,...,xn-1)使得非线性反馈函数彼此抵消。
在具体实施例中,从反馈函数组(1.1)开始,应用伽罗瓦-斐波纳契变换生成:
f255(x)的线性部分fL(x)包括6个变量,并与以下次数为256的本原多项式相对应
1+x12+x48+x115+x133+x213+x256 (3)
线性部分fL(x)的6个变量的指数形成全正差集
{012,48,115,133,213}。
非线性部分fN(x)是12个变量的弯曲函数(bent function)。因此,非线性反馈函数f255(x)是平衡的,具有非线性26·(211-25)=129024、弹性5和代数次数4。由于实施的NLFSR 112和第二NLFSR 114是等效的(即,生成第一子集中的相同的序列),实现的NLFSR112的函数f231(x)具有相同的属性。
非线性部分fN(x)的12个变量的指数形成全正差集
。{41,46,52,55,62,70,74,87,110,130,157,183}
类似地,从反馈函数组(1.2)开始,应用伽罗瓦-斐波纳契变换生成f255(x)的非线性部分fN(x)的附图标记410处所示的移位版本fN s(x):
如图4中所示,fN(x)的“移位”版本fN s(x)(其中每个变量xi被xi-k替换)与第二NLFSR 114的寄存器级f217相加以消除非线性影响。结果,第二NLFSR 114的寄存器级n-k-1至0生成由生成多项式(3)导出的线性序列。
已知以这种方式构造的NLFSR具有周期2n-1,其中n是寄存器的大小(E.Dubrova,“A scalable method for constructing Galois NLFSRs with period 2n-1 usingcross-joint pairs”,IEEE Transactions on Information Theory,vol.1,no.59,pp.703-709,2013)。因此,第二NLFSR 114具有周期2256-1。由于实现的NLFSR 112与第二NLFSR 114等效,实现的NLFSR 112也具有周期2256-1。
LFSR可表示性(实现的NLFSR 112至LFSR 116的变换性)暴露了技术限制,原因在于大多数NLFSR不能变换为LFSR。作为示例,NLFSR 112可以通过(例如,随机地)生成指数并快速验证LFSR可表示性来构造,其可以被重复直到满足LFSR可表示性为止。
除要求从实现的NLFSR 112到第二NLFSR 114的变换性的NLFSR可表示性之外,伽罗瓦-斐波纳契变换允许验证LFSR可表示性(即,向LFSR 116的变换性)。
作为说明,假定具有以下反馈函数的4比特NLFSR 112
f1(x)=x2,以及
f0(x)=x1。
伽罗瓦-斐波纳契变换生成
f2(x)=x3
f1(x)=x2
f0(x)=x1。
根据当前技术验证满足生成设备110的条件的示例性方法可以包括:第一步骤,检查是否满足对于伽罗瓦到斐波纳契变换、与函数gi(x)的变量的指数相关的条件。如果满足条件,则该方法进行至第二步骤。否则,候选NLFSR不能被变换为LFSR 116,并且生成的指数例如被丢弃。
在第二步骤中,执行伽罗瓦-斐波纳契变换。如果变换得到LFSR 116,针对NLFSR112选择指数。否则,丢弃指数并且可选地重复该方法。
图6示意性示出了生成设备110中非线性输出函数118的实施例。输出布尔函数118的所有偏差最大的线性近似值应仅从实现的NLFSR 112的寄存器级302中获得输入,该NLFSR 112在变换的第二NLFSR 114中具有等效的寄存器级。
在图6所示的实施例中,非线性输出函数118被指定如下:
非线性输出函数z(x)包括6个变量的线性部分和14个变量的弯曲函数。因此,z(x)是平衡的并具有非线性26·(213-26)=520192、弹性5和代数次数6。
在非线性输出函数118中,变量的20个指数中的15个取自以下全正差集:
{255,247,243,227,222,213,187,181,174,164,137,99,80,44,29}。
在非线性输出函数118的七个双积中,变量的第一和第二指数之间的差取自以下全正差集:
{26,16,22,4,58,130,135}。
独立于非线性输出函数118及其硬件实现的细节,非线性输出函数118的可并行计算步骤的最小数量可以小于或等于3。例如,在图6示意性示出的非线性输出函数118的实现包括两个中间级602和604,分别用于计算级联函数的组z1至z6和z7至z8:
z6(x)=x255x247x243x213x181x174 (5.1),以及
级604的结果与输出值z组合:
因此,如附图标记606所示,可以并行执行引导至级602的逻辑操作(5.1)。类似地,如附图标记608所示,可以并行地执行引导至级604的逻辑操作(5.2)。
作为流水线化的二叉树配置的结果,非线性输出函数118的计算仅延迟两个时钟循环。虽然流水线使面积增加了8个触发器,它允许增加吞吐量1.7倍。在许多应用中,吞吐量的实质增长比面积和等待时间的微小增加更重要。
为进一步减少生成设备110的传播延迟,如下所示,应用De-Morgan规则分别修改实现的NLFSR 112的反馈函数f235和f197的ANF(1.1)和(1.2):
其中x′表示x的布尔互补(定义为),并且“+”表示布尔“或”操作。下表显示在CMOS技术中,NAND操作或NOR操作比AND操作要小得多和快得多。因此,如级606(图6中的底部两个门)中所示,通过替换4输入AND可以进一步减小面积和延迟二者。
初始化设备102对生成设备110(以及因此对密码)进行初始化。令ki标识密钥ki的比特,0≤i≤127,并且初始值IVi标识初始化值IV的比特,0≤i≤95。如下,将密钥和IV比特加载到NLFSR 112中:
xi=ki,0≤i≤127
xi=IVi-128,128≤i≤223
xi=1,224≤i≤254
xi=0,i=255
初始化阶段进一步包括:对生成设备110计时n次,并将密钥流128的生成的输出比特与寄存器级xn-1和xn-k-1(例如,x255和x217)进行异或。因此,在初始化阶段,由下式给出反馈函数f255(x)和f217(x):
如参考图7所解释的,在初始化之后,由于使非线性输出函数118流水线化,并可选地用于在初始化阶段和密钥流生成阶段之间切换所需附加逻辑,对生成设备110计时附加的三个周期。然后,生成密钥流128。
图7示出了用于可以针对f255实现的初始化阶段与密钥流生成阶段之间的切换、而不增加关键路径的逻辑700。函数f217的电路是相似的。非线性输出函数118被多路复用和流水线化。尽管描述常规多路复用器(MUX)的函数是
a·b+a′·c,
其中一个输入固定为0的多路复用器702可以被实现为
a·b+a′·0=a·b。
因此,MUX 702的延迟等于AND的延迟,AND的延迟小于XOR的延迟。因此,修改的切换方案使等待时间增加了仅一个附加时钟循环。
在这些修改之后,NLFSR 112需要12个2输入AND、4个2输入NAND、2个2输入NOR、19个2输入异或和256个触发器。非线性输出函数118需要8个2输入AND、2个3输入AND、13个2输入异或和8个触发器。在初始化和密钥流生成阶段之间切换的附加逻辑需要2个AND、2个异或和2个触发器。
如果使用用于实现该NLFSR 112的90nm CMOS技术(参见上表中的门参数),NLFSR112的面积和传播延迟可以基于以下面积
(22×2个input AND+2×3个input AND+4×2个input NAND+2×2个input NOR+34个XOR+266个触发器)=5540μm2=1497GE
以及以下延迟
(2个XOR+触发器)=451ps来计算。
因此,设备110的实施例在低于1500GE的情况下支持高至2.22G比特/秒的数据速率。其等待时间为232ns(估计为(256+256+3)时钟循环×451ps)。它可以并行化,每个时钟循环产生高达4比特,原因在于使用反馈(1.1)和(1.2)更新的每个级之后的三个比特既不被用作状态变量也不用在输出函数118中。在下表中,k是并行度(即,每一个时钟循环生成的比特数)。
为了比较,流密码Grain-128的面积和传播延迟由(M.Hell等人,“The Grainfamily of stream ciphers″,New Stream Cipher Designs:eSTREAM Finalists,LNCS4986,pp.179-190,2008)给出:
(22个AND+34个XOR+258个触发器)的面积=5352μm2=1446GE
(AND+4个XOR+触发器)的延迟=768ps。
这里,假设与逻辑700类似的逻辑用于在初始化阶段和操作阶段之间切换。否则,Grain-128的延迟相当高。Grain-128可以并行化,以每时钟循环生成产生32比特。针对并行度1,其等待时间为296ns(计算为(128+256+1)时钟循环×768ps)。
流密码Trivium的性能参数包括(C.Cannière和B.Preneel,“Trivium”,NewStream Cipher Designs:The eSTREAM Finalists,LNCS 4986,pp.244-266,2008年):
(3个AND+11个XOR+288个触发器)的面积=5597μm2=1513GE
(AND+2个XOR+触发器)的延迟=538ps。
Trivium可以并行化,以每时钟循环生成高达64比特。针对并行度288,其等待时间为663ns(计算为(80+4×288)时钟循环×538ps)。
上表总结了与并行度1、2和4相比设备110和两个常规密码Grain-128和Trivium的实施例的面积和吞吐量。对于并行度1,设备110的实施例比Grain-128大3.4%且快71%。其等待时间比Grain-128的等待时间少22%。与Trivium相比,设备110的实施例小1.1%、快19%、并且等待时间少65%。
总体来说,设备110的实施例在1500GE下的设计中是最快的。
如下所示,根据本技术的这类密码也是上述三种密码中最安全的。
为此,给出了设备110的实施例的安全性分析。讨论了对运行密钥流128的攻击和对初始化过程的攻击二者。
使用线性近似的攻击成功地对付Grain的初始版本,导致密钥恢复攻击。作为具有非线性输出函数的NLFSR,本技术与Grain具有相似性。因此,确定针对这些攻击的抵抗。
使用实现的NLFSR 112的等效斐波那契配置LFSR 116分析相对于线性攻击的安全性。在配置112和116中均不具有等效的任何移位寄存器级302中都没有线性项,因此分析对于以伽罗瓦配置实现的NLFSR 112也是有效的。
为了表达清楚,将寄存器分为两个分离的部分。非线性部分(图3中的寄存器级n-1至n-k)中的状态变量由b标识,而线性部分(图3中的寄存器级n-k-1至)中的状态变量由s标识。此外,令B和S分别标识移位寄存器的非线性部分和线性部分的大小。因此,
bi=si+S 0≤i<B (6)
线性级si,0≤i<S满足线性递归关系
si+256=si+si+43+si+123+si+141+si+208+si+244
这是由多项式(3)导出的。将近似的偏差ε定义为
ε=2·Pr(A=B)-1,
这被简写为
可以用线性函数来近似非线性输出函数118,使得
输出函数118中的b变量的数量由wb(z)标识,即(7)中的0≤i<wb(z)。
类似地,非线性反馈函数可由s中的比特的线性函数来近似,原因在于反馈中没有b变量以使得sS-1的非线性补偿正常工作。
因此,
组合等式(7)和(8),输出可以写成仅来自移位寄存器的线性部分b的变量之和:
其中堆积引理已被用于对线性近似进行组合。
因此,输出变量可以总是被写为s变量的偏差和,这进而满足线性递归关系。由w(LR)标识该递归关系的权重,区分攻击的具有等于下式的总偏差
因此,很明显,攻击的复杂度依赖于两个近似的偏差以及在输出函数的线性近似中使用的b变量的数量。通过检查:对于所有偏差的线性近似,ε1=2-7且ε2=2-6并且wb(z)=6。
由此得出,近似(10)具有偏差2-43,这使得它低效地对付与由C.BERBAIN等人在“Cryptanalysis of Grain”,Fast Software Encryption 2006[M.Robshaw,ed.],vol.4047 of Lecture Notes in Computer Science,pp.15-29,Springer,2006中所描述的攻击相类似的攻击。
此外,如果使用权重3倍数的线性递归关系,所需的样本数将是在1/ε2 tot=243·3·2=2172的数量级,每个样本中第一和最后的密钥流比特之间距离2218/2=2109(D.Wagner,″Ageneralized birthday problem″,in Advances in Cryptology-CRYPTO 2002[M.Yung,ed.),vol.2442 of Lecture Notes in Computer Science,pp.288-303,Springer,2002以及J.D.Golic,″Computation of low-weight parity check polynomials″,ElectronicLetters,vol.32,no.21,pp.1981-1982,1996)。
已经证明代数攻击对具有或不具有存储器的非线性组合器是非常有效的。攻击的成功是由于移位寄存器的线性度和输出函数是寄存器仅有的非线性部分的事实。总是可以使用初始状态比特写出描述输出比特的等式。由于移位寄存器的线性度,这些等式的代数次数将不会超过输出函数的次数。在具有足够等式的情况下,可以使用线性化或其他更先进的方法来恢复内部状态。此外,零化子(annihilator)可以用于进一步降低函数的次数。由于对部分状态进行了非线性更新,这些攻击不再适用,原因在于在输出函数中使用了若干非线性寄存器级。初始状态比特中等式的次数将会增加,并且不受输出函数的次数限制。
对流密码的时间存储数据折中(TMTO)攻击可以分为两类,即尝试重建内部状态的攻击和尝试恢复密钥的攻击。后一种攻击中使用的算法与前者中的算法相同,仅使用不同的单向函数作为攻击目标。在J.Golic,″Cryptanalysis of alleged A5 stream cipher″in Advances in Cryptology-EUROCRYPT 1997[W.Fumy,ed.],vol.1233 of LectureNotes in Computer Science,pp.239-255,Springer,1997以及S.Babbage,″A space/timetradeoff in exhaustive search attacks on stream ciphers″in EuropeanConvention on Security and Detection,no.408 in IEEE Conference Publication,1995中使用的算法记录输入/输出组合并使用足够的数据以与记录值冲突。折中曲线由TM=N、T=D和P=M=N/D给出。
A.Biryukov和A.Shamir在“Cryptanalytic time/memory/data tradeoffs forstream ciphers″,Advances in Cryptology-ASIACRYPT 2000[T.Okamoto,ed.],vol.1976of Lecture Notes in Computer Science,pp.1-13,Springer,2000中使用的算法相反地创建了与M.Hellman在“A cryptanalytic time-memory trade-off″,IEEE Transactionson Information Theory,vol.IT-26,pp.401-406,July 1980中所使用的表格相类似的表格,并具有由TM2D2=N2,1≤D2≤T和P=N/D给出的折中。
两种算法均使用增加数据量可以降低预计算时间的观察结果。由于内部状态的大小是22k,很明显,使用任何一种算法用T<2k和M<2k都不可能恢复内部状态。另一方面,使用例如T=2112、M=2112和D=256将有可能恢复密钥,但将需要P=2168的预计算时间,如果密钥长度是128比特这无疑过大而不足以引起关注。
还可以考虑对TMTO攻击的ad hoc改进,其中恢复比特的子集也将允许使用输出函数中的代数关系恢复其他比特。这些攻击的成功特定于设计,具体地是设计中选择的输出函数118。该想法由M.J.Mihaljevic等人在″Internal state recovery of Grain-v1employing normality order of the filter function″,IET Information Security,vol.6,no.2,pp.55-64,2012、以及M.J.Mihaljevic等人在“Generic cryptographicweakness of k-normal Boolean functions in certain stream ciphers andcryptanalysis of Grain-128″,Periodica Mathematica Hungarica,vol.65,no.2,pp.205-227,2012中提出,并且在流密码的Grain族上演示,用于标识状态比特的子集,其可以与一些输出比特一起用于确定剩余的状态比特。
使用这种观察,可以通过仅考虑恢复其余部分所需的状态比特的子集来改进TMTO攻击。输出布尔函数的正态性在这里将起重要作用,原因在于它确定多少移位寄存器比特需要是固定的,以恢复剩余状态比特。设计中这个函数的正态性阶数为7,这意味着14-7=7个变量需要是固定的才能得到用于恢复的线性方程。移位寄存器的伽罗瓦配置以及并非所有比特都在斐波纳契等效配置中具有相应比特的事实使该攻击更加复杂。并且即使使用该方法可以对通用的TMTO攻击进行假设改进,这种攻击所需的内存复杂度将远远超过暴风(brute force),并行化的暴风可能会更有效(D.J.Bernstein,″Understanding bruteforce.″eSTREAM,ECRYPT Stream Cipher Project,Report 2005/036,2005)。
初始化函数的复杂度不会影响TMTO攻击中的攻击复杂度。所谓的“选择的IV”攻击包括取决于初始化函数的攻击。在“选择的IV”场景中,对手可以选择初始化步骤中使用的初始化向量。这是“Cube Attack”(I.Dinur等人,″Cube Attacks on Tweakable Black BoxPolynomials″,Advances in Cryptology-EUROCRYPT 2009[A.Joux,ed.],vol.5479 ofLecture Notes in Computer Science,pp.278-299,Springer,2009)和AIDA攻击(M.Vielhaber,″Breaking ONE.FIVIUM by AIDA,an Algebraic IV Differentialattack″,http://eprint.iacr.org/2007/413/)的基础,并且如果没有对初始化进行仔细设计,会导致密钥恢复。
应选择初始化中的迭代次数,使得所有密钥和IV比特以复杂的方式影响密钥流比特。
为确定对这些类型的攻击的抵抗,已经执行了最大次数单项式测试。任何密钥流比特可以写为密钥和IV比特的函数
zi=fi(k0,...,k127,iv0,...,iv95) (12)。
所有密钥比特都固定为零,并且IV比特的子集也是固定的。因此,通过非固定比特的所有可能组合,获得函数fi的真值表,函数fi的真值表可以进而用于计算ANF。这将导致d-单项式测试,其中可以检查次数d的单项式的存在,并与随机布尔函数的预期数进行比较。
直观地,仅当所有比特都被初始化函数适当地混合,最大次数单项式才存在。因此,讨论集中于该单项式上。可使用的比特的总数是96,需要296复杂度以确定单项式iv0,...,iv95的存在。由于这是不可行的,采用这种测试,以找到具有可实现次数、并且将针对尽可能多的初始化循环不存在的单项式。
该算法仅用几个比特开始,并且穷尽地找到针对最大循环数不存在的单项式。然后,它贪婪地向集合再添加一个比特并继续。将所有未使用的密钥和IV比特都设置为零。为了保守估计,还允许算法使用密钥比特。这将使“选择的IV”攻击变成较不强大的非随机检测器,原因在于假设攻击者不能够选择密钥比特。
图8中的示意图800示出了针对单项式使用特定次数(比特集合大小)可以破坏的初始化循环的次数。通过使用专用硬件,可以测试更多数量的IV比特,即较大次数的单项式。然而,根据示意图800中的结果,推导的初始化步骤的数量足以抵抗这些类型的“选择的IV”攻击。在159个循环未通过非随机测试的情况下,提议的256个循环提供足够的安全保障。为了比较,应用于Grain-128的相同测试可以使用23的比特集合大小在约240个初始化循环中发现非随机性。使用40的比特集合大小,使用256的完整Grain-128初始化显示非随机性。
尽管上述讨论集中于设备110的实施例,设备110可实现的安全性通常不在很大程度上取决于包括其反馈函数在内的用于实现的NLFSR 112和非线性输出函数118的指数。相反,选择的指数使得它们形成大体实现了有利水平的保证的全正差集(J.D.Golic,″On thesecurity of nonlinear filter generators″,Fast Software Encryption,LectureNotes in Computer Science,Vol.1039,1996,pp.173-188)。
由于安全性取决于函数的属性,即非线性和弹性(其确定线性近似的攻击复杂度)和代数次数(其确定代数攻击和上述“选择的IV”攻击的复杂度),由设备110的实施例实现的保证级别是可控的。
以上等式(11)给出线性近似的总偏差,其取决于布尔函数的非线性以及输出函数118的弹性。构成设备110的实施例的直接方式包括:随机抽取可使用O(n)门实现的2个布尔函数(一个反馈函数和一个输出函数);并根据等式(11)检查总偏差。如果偏差足够小,可以使用这些函数。可以根据应用选择什么是“足够小”。例如,由于区分器随后将需要2k个样本,合理值为2k/2。也优选一些安全保障余量并被认为是良好做法。如上所述,附加步骤检查密码是否能够对抗“选择的IV”攻击。这些函数然后用于实现设备110,并且可以被攻击的初始化循环的最大数量应该远低于在设备110中使用的循环。因此,抵抗该攻击的抵抗取决于初始化循环数、如何执行初始化和布尔函数(包括函数的次数)。
基本上的TMTO攻击取决于状态大小n。即使一些指标会比其他指标好一些,因此所造成的攻击并不受关注,原因在于所需的存储器将会变得太大,而且改进是微不足道的。
因此,可以容易地改变这些指标而不会对安全性产生很大影响。即使挑选随机指数也很大长度上导致可接受的保证,具体地如果指标使得非线性输出函数118的所有偏差最大的线性近似在寄存器级具有等价于第二NLFSR 114的指数。函数选择通常允许控制保证级别。确定有效地实现布尔函数fN中的所有偏差最大的线性近似,例如,使用布尔函数fN的沃尔什变换。
设备110或系统100可以在图9中示意性示出的集成电路(IC)900中实现,例如作为芯片组的部分902。
备选地或附加地,设备110或系统100可以在图10中示意性示出的移动终端1000中实现。作为示例,IC 900可以包括在移动终端1000中。移动终端1000可以是移动电话、用户设备(UE)、智能电话、平板电脑、计算机或机器对机器(M2M)设备(例如传感器)。
此外,设备110或系统100可以包括在无线电接入网络的接入节点中。接入节点可以是根据IEEE 802.11标准族的无线电基站、BTS、RBS、NodeB、eNodeB或WLAN的接入点。
从上面对示例性实施例的描述已经变得显而易见,提供了(例如,适用于5G无线通信系统)的一类安全流密码。根据上述评估,所提供的密码是1500GE以下密码(包括现有技术算法Grain-128和Trivium在内)中最快、最安全的。该技术的实施例实现2256-1的保证长时段。
该技术允许为小规模和节能的5G系统实施加密系统,例如,以便在新一代产品和应用中满足电池供电移动设备的严格限制。相同或其他实施例为重要的社会服务(例如交通、电子卫生、智能城市管理和环境监测)提供高水平的保证。
流密码的置信度较高,如果它们由可以从形式上分析(例如,如上所述)其安全性的组件构建,则其接受速度更快。反馈函数和输出函数(例如,输入的数量和位置、非线性、弹性、代数次数等)允许控制保证级别,使得所得到的生成设备用足够的安全保障余量来抵抗已知攻击。
流密码的至少一些实施例包括生成设备的1比特/周期版本并占用小于1500GE,实现2.22Gbits/秒的吞吐量和232ns的等待时间。
该技术结合了NLFSR的伽罗瓦配置的优点,例如短路深度(意味着小的传播时间和高吞吐量),以及针对其可以从形式上分析安全性的变换后的NLFSR版本的优点。此外,可以最小化硬件占地面积。
由前述描述,本发明的很多优点将被完全理解,并且将显而易见的是,可以在单元和设备的示例性形式、结构和布置中进行各种修改,而不背离本发明的范围和/或不牺牲其所有优点。因为可以通过很多方式来改变本发明,将意识到,本发明应该仅由所附权利要求的范围来限定。
Claims (60)
1.一种生成用于对数据流进行加密或解密的密钥流的方法,所述方法包括:
操作以伽罗瓦配置实现的包括n个寄存器级的非线性反馈移位寄存器NLFSR,
其中实现的n个寄存器级中的至少一个寄存器级能够由线性反馈移位寄存器LFSR中的至少一个寄存器级表示,以及
其中实现的n个寄存器级的第一子集能够由第二NLFSR的第二子集表示,其中在所述第二NLFSR中接收非线性反馈的寄存器级的数量大于1并且小于在实现的NLFSR中接收非线性反馈的寄存器级的数量;以及
其中实现的NLFSR能够变换为作为n比特NLFSR的第二NLFSR,并且第二NLFSR仅具有如下
fn-1(x0,x1,...,xn-1)=x0+fL(x1,...,xn-1)+fN(x1,...,xn-1),
以及
fn-1-k(x0,x1,...,xn-1)=xn-k+fN(x1-k,...,xn-1-k),
两种类型的非平凡反馈函数,其中,n是大于或等于1的整数并表示NLFSR的寄存器级的数量,k是大于0且小于n的整数并代表将反馈函数fn-1-k(x0,x1,...,xn-1)的非线性部分加以移位的位数,“-”是减法模n,fL表示反馈函数fn-1(x0,x1,...,xn-1)的线性部分且fN表示反馈函数fn-1(x0,x1,...,xn-1)和fn-1-k(x0,x1,...,xn-1)的非线性部分,以及xi表示第i个寄存器级的值,其中i=0,...,n-1;以及
从非线性输出函数输出密钥流,其中非线性输出函数的输入与实现的NLFSR的n个寄存器级中的至少两个相耦合,以及
其中,所述非线性输出函数包括仅取决于所述NLFSR的实现的n个寄存器级的第一子集的线性项。
2.根据权利要求1所述的方法,其中,所述非线性输出函数的所有偏差最大的线性近似仅取决于所述NLFSR的实现的n个寄存器级的第一子集。
3.根据权利要求1所述的方法,其中,在所述第二NLFSR中接收非线性反馈的寄存器级的数量是偶数,并且所述至少一个寄存器级被布置在实现的NLFSR中的非线性反馈的移位方向的下游。
4.根据权利要求1所述的方法,其中,实现的n个寄存器级中的所述至少一个寄存器级还能够由第二NLFSR中的至少一个寄存器级表示。
5.根据权利要求1所述的方法,其中,在所述第二NLFSR中接收所述非线性反馈的寄存器级中的每一个表示实现的NLFSR中的寄存器级。
6.根据权利要求1所述的方法,其中,针对接收非线性反馈的寄存器级中的每一个,根据与相应寄存器级相对应地移位的公共反馈函数计算第二NLFSR中的非线性反馈。
7.根据权利要求6所述的方法,其中,所述公共反馈函数的非线性大于500·n。
8.根据权利要求6或7所述的方法,其中,所述公共反馈函数的弹性等于或大于5。
9.根据权利要求6所述的方法,其中,所述公共反馈函数的代数次数等于或大于4。
10.根据权利要求6所述的方法,其中,所述公共反馈函数包括小于0.15·n的二进制布尔运算。
11.根据权利要求1所述的方法,其中,实现的NLFSR的周期为2n-1。
12.根据权利要求1所述的方法,其中,所述第二NLFSR和所述LFSR中的每一个包括n个寄存器级。
13.根据权利要求1所述的方法,其中,所述第二NLFSR具有伽罗瓦配置。
14.根据权利要求1所述的方法,其中,所述LFSR具有斐波纳契配置。
15.根据权利要求1所述的方法,其中,所述第一子集是实现的n个寄存器级的真子集。
16.根据权利要求1所述的方法,其中,所述第一子集包括实现的NLFSR的两个以上连续的寄存器级。
17.根据权利要求1所述的方法,其中,所述密钥流是比特流并且所述非线性输出函数是平衡布尔函数。
18.根据权利要求1所述的方法,其中,所述非线性输出函数的非线性大于2000·n。
19.根据权利要求1所述的方法,其中,所述非线性输出函数的弹性等于或大于5。
20.根据权利要求1所述的方法,其中,所述非线性输出函数的代数次数等于或大于6。
21.根据权利要求1所述的方法,其中,所述非线性输出函数包括小于0.1·n的二进制布尔运算。
22.根据权利要求1所述的方法,其中,所述非线性输出函数所依赖的寄存器级中的一半以上是从所实现的所述NLFSR的n个寄存器级的全正差集中选择的。
23.根据权利要求1所述的方法,其中,所述非线性输出函数所依赖的所有寄存器级在实现的NLFSR中是不连续的。
24.根据权利要求1所述的方法,其中,所述非线性输出函数以二叉树配置流水线化。
25.根据权利要求24所述的方法,其中,所述二叉树配置的组合电路深度至多为2。
26.根据权利要求1所述的方法,还包括:
对实现的NLFSR的n个寄存器进行初始化,其中实现的n个寄存器级的第一子集由密钥至少部分地初始化。
27.根据权利要求26所述的方法,其中,所述初始化还包括对实现的NLFSR计时n个周期,在所述n个周期期间将非线性输出函数反馈给实现的NLFSR。
28.根据权利要求1所述的方法,还包括:
将数据流和从非线性输出函数输出的密钥流相加,用于对数据流进行加密或解密。
29.一种计算机可读记录媒体,其上存储有计算机程序,所述计算机程序包括程序代码部分,当在一个或更多个计算设备上执行所述计算机程序时,所述程序代码部分用于实现权利要求1至28中任一项所述的方法。
30.一种生成用于对数据流进行加密或解密的密钥流的设备,所述设备包括:
以伽罗瓦配置实现的包括n个寄存器级的非线性反馈移位寄存器NLFSR,
其中实现的n个寄存器级中的至少一个寄存器级能够由线性反馈移位寄存器LFSR中的至少一个寄存器级表示,以及
其中实现的n个寄存器级的第一子集能够由第二NLFSR的第二子集表示,其中在所述第二NLFSR中接收非线性反馈的寄存器级的数量大于1并且小于在实现的NLFSR中接收非线性反馈的寄存器级的数量;以及
其中实现的NLFSR能够变换为作为n比特NLFSR的第二NLFSR,并且第二NLFSR仅具有如下
fn-1(x0,x1,...,xn-1)=x0+fL(x1,...,xn-1)+fN(x1,...,xn-1),
以及
fn-1-k(x0,x1,...,xn-1)=xn-k+fN(x1-k,...,xn-1-k),
两种类型的非平凡反馈函数,其中,n是大于或等于1的整数并表示NLFSR的寄存器级的数量,k是大于0且小于n的整数并代表将反馈函数fn-1-k(x0,x1,...,xn-1)的非线性部分加以移位的位数,“-”是减法模n,fL表示反馈函数fn-1(x0,x1,...,xn-1)的线性部分且fN表示反馈函数fn-1(x0,x1,...,xn-1)和fn-1-k(x0,x1,...,xn-1)的非线性部分,以及xi表示第i个寄存器级的值,其中i=0,...,n-1;以及
用于输出密钥流的非线性输出函数,其中非线性输出函数的输入与实现的NLFSR的n个寄存器级中的至少两个耦合,
其中,所述非线性输出函数包括仅取决于所述NLFSR的实现的n个寄存器级的第一子集的线性项。
31.根据权利要求30所述的设备,其中所述非线性输出函数的所有偏差最大的线性近似仅取决于所述NLFSR的实现的n个寄存器级的第一子集。
32.根据权利要求30所述的设备,其中,在所述第二NLFSR中接收非线性反馈的寄存器级的数量是偶数,并且所述至少一个寄存器级被布置在实现的NLFSR中的非线性反馈的移位方向的下游。
33.根据权利要求30所述的设备,其中,实现的n个寄存器中的所述至少一个寄存器级还能够由第二NLFSR中的至少一个寄存器级表示。
34.根据权利要求30所述的设备,其中,在所述第二NLFSR中接收所述非线性反馈的寄存器级中的每一个表示实现的NLFSR中的寄存器级。
35.根据权利要求30所述的设备,其中,针对接收非线性反馈的寄存器级中的每一个,根据与相应寄存器级相对应地移位的公共反馈函数计算第二NLFSR中的非线性反馈。
36.根据权利要求35所述的设备,其中,所述公共反馈函数的非线性大于500·n。
37.根据权利要求35或36所述的设备,其中,所述公共反馈函数的弹性等于或大于5。
38.根据权利要求35所述的设备,其中,所述公共反馈函数的代数次数等于或大于4。
39.根据权利要求35所述的设备,其中,所述公共反馈函数包括小于0.15·n的二进制布尔运算。
40.根据权利要求30所述的设备,其中,实现的NLFSR的周期为2n-1。
41.根据权利要求30所述的设备,其中,所述第二NLFSR和所述LFSR中的每一个包括n个寄存器级。
42.根据权利要求30所述的设备,其中,所述第二NLFSR具有伽罗瓦配置。
43.根据权利要求30所述的设备,其中,所述LFSR具有斐波纳契配置。
44.根据权利要求30所述的设备,其中,所述第一子集是实现的n个寄存器级的真子集。
45.根据权利要求30所述的设备,其中,所述第一子集包括实现的NLFSR的两个以上连续的寄存器级。
46.根据权利要求30所述的设备,其中,所述密钥流是比特流并且所述非线性输出函数是平衡布尔函数。
47.根据权利要求30所述的设备,其中,所述非线性输出函数的非线性大于2000·n。
48.根据权利要求30所述的设备,其中,所述非线性输出函数的弹性等于或大于5。
49.根据权利要求30所述的设备,其中,所述非线性输出函数的代数次数等于或大于6。
50.根据权利要求30所述的设备,其中,所述非线性输出函数包括小于0.1·n的二进制布尔运算。
51.根据权利要求30所述的设备,其中,所述非线性输出函数所依赖的寄存器级中的一半以上是从所实现的所述NLFSR的n个寄存器级的全正差集中选择的。
52.根据权利要求30所述的设备,其中,所述非线性输出函数所依赖的所有寄存器级在实现的NLFSR中是不连续的。
53.根据权利要求30所述的设备,其中,所述非线性输出函数以二叉树配置流水线化。
54.根据权利要求53所述的设备,其中,所述二叉树配置的组合电路深度至多为2。
55.根据权利要求30所述的设备,还包括:
对NLFSR实现的n个寄存器进行初始化,其中实现的n个寄存器级的第一子集由密钥至少部分地初始化。
56.根据权利要求55所述的设备,其中,所述初始化还包括对实现的NLFSR计时n个周期,在所述n个周期期间将非线性输出函数反馈给实现的NLFSR。
57.根据权利要求30所述的设备,还包括:
将数据流和从非线性输出函数输出的密钥流相加,用于对数据流进行加密或解密。
58.一种用于对数据流进行加密或解密的设备,所述设备包括:
根据权利要求30至57中的任一项所述的生成用于对数据流进行加密或解密的密钥流的设备;
初始化设备,适于对生成用于对数据流进行加密或解密的密钥流的设备进行初始化;以及
相加设备,适于将数据流和由所述生成用于对数据流进行加密或解密的密钥流的设备生成的所述密钥流相加。
59.一种集成电路,包括根据权利要求30至58中的任一项所述的设备。
60.一种移动终端,包括根据权利要求30至58中的任一项所述的设备。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/078312 WO2016096000A1 (en) | 2014-12-17 | 2014-12-17 | Stream ciphering technique |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107113163A CN107113163A (zh) | 2017-08-29 |
CN107113163B true CN107113163B (zh) | 2021-01-22 |
Family
ID=52282711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480084020.XA Active CN107113163B (zh) | 2014-12-17 | 2014-12-17 | 流加密技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10469247B2 (zh) |
EP (1) | EP3235162B1 (zh) |
CN (1) | CN107113163B (zh) |
WO (1) | WO2016096000A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3082290A1 (en) * | 2015-04-17 | 2016-10-19 | Gemalto Sa | Device for managing multiple accesses to a secure module of a system on chip of an apparatus |
US10680810B2 (en) * | 2016-10-26 | 2020-06-09 | Nxp B.V. | Method of generating an elliptic curve cryptographic key pair |
CN108270548B (zh) * | 2017-12-08 | 2020-10-23 | 中国电子科技集团公司第三十研究所 | 一种Grain型流密码的判别方法 |
FR3079989B1 (fr) * | 2018-04-10 | 2020-05-01 | Youssef Ben-Naser | Procédés, dispositifs et programmes d'ordinateur pour le chiffrement et le déchiffrement de données pour la transmission ou le stockage de données |
CN109981249B (zh) * | 2019-02-19 | 2020-09-08 | 吉林大学珠海学院 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
CN110058842B (zh) * | 2019-03-14 | 2021-05-18 | 西安电子科技大学 | 一种结构可变的伪随机数生成方法及装置 |
US11048476B2 (en) | 2019-08-28 | 2021-06-29 | International Business Machines Corporation | Non-linear feedback shift register |
US10977003B2 (en) | 2019-08-28 | 2021-04-13 | International Business Machines Corporation | Linear feedback shift register with near-maximal length sequences |
CN113315625B (zh) * | 2020-02-27 | 2022-07-26 | 华东师范大学 | 一种基于分割属性的密钥恢复分析方法及系统 |
WO2021201780A1 (en) * | 2020-03-31 | 2021-10-07 | Agency For Science, Technology And Research | Method and system for white-box implementation of a stream cipher |
CN112134691B (zh) * | 2020-10-27 | 2023-07-04 | 衡阳师范学院 | 一种部件可重复的nlcs分组密码实现方法、装置及介质 |
CN112437101B (zh) * | 2021-01-28 | 2021-04-09 | 北京电信易通信息技术股份有限公司 | 一种计算机安全登陆的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608829A (zh) * | 2011-01-18 | 2014-02-26 | 舍德Ip有限责任公司 | 用于基于编码完整性进行计算机化协商的系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5054067A (en) * | 1990-02-21 | 1991-10-01 | General Instrument Corporation | Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator |
WO1994016509A1 (en) * | 1992-12-30 | 1994-07-21 | Telstra Corporation Limited | A method and apparatus for generating a cipher stream |
JP3092567B2 (ja) * | 1997-10-31 | 2000-09-25 | 日本電気株式会社 | 暗号鍵の生成方法および装置 |
US6560338B1 (en) * | 1998-08-28 | 2003-05-06 | Qualcomm Incorporated | Limiting delays associated with the generation of encryption stream ciphers |
US6961427B1 (en) * | 1999-11-23 | 2005-11-01 | General Instrument Corporation | Methods and apparatus for keystream generation |
US6804354B1 (en) * | 1999-12-02 | 2004-10-12 | Honeywell International Inc. | Cryptographic isolator using multiplication |
JP3864675B2 (ja) * | 2000-03-09 | 2007-01-10 | 株式会社日立製作所 | 共通鍵暗号装置 |
US7369658B2 (en) * | 2003-04-07 | 2008-05-06 | Optichron, Inc. | Secure modulation and demodulation |
US20120002803A1 (en) * | 2010-07-02 | 2012-01-05 | Wael Adi | Self reconfiguring vlsi architectures for unknown secret physical functions based crypto security systems |
US8879733B2 (en) * | 2012-07-10 | 2014-11-04 | Infineon Technologies Ag | Random bit stream generator with guaranteed minimum period |
-
2014
- 2014-12-17 EP EP14823974.2A patent/EP3235162B1/en active Active
- 2014-12-17 US US15/535,994 patent/US10469247B2/en active Active
- 2014-12-17 WO PCT/EP2014/078312 patent/WO2016096000A1/en active Application Filing
- 2014-12-17 CN CN201480084020.XA patent/CN107113163B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608829A (zh) * | 2011-01-18 | 2014-02-26 | 舍德Ip有限责任公司 | 用于基于编码完整性进行计算机化协商的系统和方法 |
Non-Patent Citations (1)
Title |
---|
A Scalable Method for Constructing Galois NLFSRs With Period2n-1 Using Cross-Join Pairs;Elena Dubrova等;《IEEE TRANSACTIONS ON INFORMATION THEORY》;20130131;摘要,第I-VI部分 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016096000A1 (en) | 2016-06-23 |
EP3235162B1 (en) | 2021-02-17 |
EP3235162A1 (en) | 2017-10-25 |
CN107113163A (zh) | 2017-08-29 |
US20170338946A1 (en) | 2017-11-23 |
US10469247B2 (en) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107113163B (zh) | 流加密技术 | |
Dubrova et al. | Espresso: A stream cipher for 5G wireless communication systems | |
Manifavas et al. | A survey of lightweight stream ciphers for embedded systems | |
KR102616064B1 (ko) | 비트-믹서들로부터 안전한 해시 함수를 구성하는 방법 | |
JP6305642B2 (ja) | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム | |
Huang et al. | A novel structure with dynamic operation mode for symmetric-key block ciphers | |
El Hennawy et al. | LEA: link encryption algorithm proposed stream cipher algorithm | |
Liu et al. | A joint encryption and error correction scheme based on chaos and LDPC | |
Xi et al. | A provably secure strong puf based on lwe: Construction and implementation | |
Oukili et al. | Hardware implementation of AES algorithm with logic S-box | |
Gupta et al. | Correlation power analysis on KASUMI: attack and countermeasure | |
Acharya et al. | FPGA design & implementation of optimized RC5 block cipher | |
Erguler et al. | A modified stream generator for the GSM encryption algorithms A5/1 and A5/2 | |
Madani et al. | Optimized and robust implementation of mobile networks confidentiality and integrity functions | |
August et al. | PudgyTurtle: Using keystream to encode and encrypt | |
Sönmez Turan | On statistical analysis of synchronous stream ciphers | |
An et al. | Slid Pairs of the Fruit-80 Stream Cipher | |
Khalid et al. | Dwarfs of Cryptography | |
Gangadari et al. | FPGA implementation of hybrid linear cellular automata based encryption algorithm | |
Khairallah et al. | Introduction and Background | |
Suwais et al. | New classification of existing stream ciphers | |
Haarman | Analysing countermeasures against fault injection attacks on FPGA based cryptographic implementations | |
Lu | Applied stream ciphers in mobile communications | |
Pandian et al. | FPGA implementation of hash key based stream cipher using nfsr and its security aspects | |
Puthiakulangara | Analysis of (Lightweight) Symmetric-Key Algorithms and Their Software Implementations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |