将输入数据块加密转换成输出数据块的方法和系统技术方案

技术编号:3531040 阅读:181 留言:0更新日期:2012-04-11 18:40
一个输入数据块被加密转换成一个输出数据块;通过使用一个基于排列的S盒对输入数据块执行一个非线性操作。该S盒与一组至少两个排列相关。在每次使用S盒之前,一个排列被(伪)随机地从该组排列组中选择出,并用于该转换。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及基于一组排列以替换盒(S盒)的形式使用非线性操作将一个输入数据块加密转换成一个输出数据块。加密在数字音频和/或视频的版权保护领域的应用变得尤为重要。这些应用包括内容加密/解密和访问管理功能。对于这些应用,可以使用公知的分组密码DES。DES是一个包含16个循环的Feistel密码。在每一循环中,数据右半部的前32个比特被扩展成48个比特。使用调度算法从一个56比特的DES密钥计算出的一个48比特循环密钥被逐比特地与上述48比特模2相加。然后,S盒层对数据执行一个非线性操作。在DES中,S盒层包括八个并行6至4比特S盒,即每个S盒使用它的一个固定映射表将一个6比特的输入块转换成一个4比特的输出块。S盒层的输出是一个32比特的数据块,对其执行一个比特排列。S盒替换是DES中唯一的非线性操作,对其安全性产生很大贡献。DES的缺点在于其56比特的短密钥长度,现在认为它不足以提供更高的安全性。然而,通过使用与用于计算16个48比特循环密钥的一个不同的密钥调度算法相组合的一个更长的密钥,可以避免穷尽密钥搜索。在所公布的公开文献中对DES最强大的两种攻击是差分和线性密码分析,它们是可广泛应用于分组密码的普通攻击。已经表明不能通过修改密钥长度和/或密钥调度算法来增强DES对抗这些攻击的能力。然而,改变算法的循环函数(例如在S盒中)能够明显影响其对抗这些攻击的强度。一个目的是设计具有优良加密特性的S盒。进一步的目的是这种S盒可以通过硬件和软件被有效地实现,允许在用户电子应用中的广泛使用。为了满足本专利技术的目的,用于S盒的排列被从一组预定的排列中动态地选择。该组中的每一排列最好被选择以提供对抗已知攻击,尤其是差分和线性密码分析的最佳抵抗力。通过(伪)随机地选择排列,系统的加密性可以强于每个S盒仅包含一个固定排列的系统。可以快速有效地执行从一组中选择一个排列。如在从属权利要求2中定义的方法,并且在从属权利要求3和6中被进一步地描述,一个排列的加密弱点通过该组中至少一个其它排列的相应强度来补偿。弱点例如可以通过具有一个预定最大概率的非普通差分和/或线性特性来反映。这种方法的优点在于在不对未知(循环)密钥进行假设的情况下,对手不能基于这些特性的差分或线性攻击。如从属权利要求4中所定义的方法,弱点被完全补偿。如从属权利要求10中所定义的方法,最好在一个循环密钥的控制下执行排列的选择。生成循环密钥的算法(即密钥调度算法)可以被选择以获得所需要的伪随机度。使用循环密钥进行选择的优点在于在计算循环密钥的过程中从组中选择排列。为了效率,通常并最好为每个密钥和必须使用这个密码处理(例如加密)的所有数据执行一次操作。以这种方式,该加密/解密算法可以与基于S盒的仅包括用于每个S盒的一个固定排列的系统同样有效。参考附图中图示的实施例,本专利技术的这些和其它特征将很明显。附图说明图1图示结合非线性操作的密码的一个循环;图2图示循环函数的步骤;和图3提供循环函数的S盒层的细节。为了解释本专利技术,加密系统被描述为电子密码本(ECB)模式中的一个分组密码。本领域的技术人员将能够在其它模式中使用该系统。这些模式包括用于DES操作的标准FIPS模式,即操作的密码块链接(CBC)、密码反馈(CFB)和输出反馈(OFB)模式。另外,该系统也可以在用于伪随机数发生器、消息鉴别码(MAC)和操作检测码(MDC)的公知结构中使用。该加密设备包括一个输入,用于获得一个数字输入块。数字输入块M可以是任意合适的长度。该设备还包括一个加密处理器,用于将数字输入块转换成一个数字输出块。有利地,数字输出块的长度与数字输入块基本相同。该设备包括一个输出,用于输出数字输出块。在一个优选实施例中,加密处理器通过合并数字输入块和密钥比特,生成非线性地取决于输入块和密钥的输出块,将数字输入块转换成数字输出块。为了获得密钥(或输入密钥调度器的一个初始密钥),该加密设备包括第二输入。显然,该加密设备可以使用常规计算机,例如PC,或使用一个专用加密/解密设备来实现。数字输入块可以通过各种方式来获得。例如通过通信网络,从数据存储介质,例如硬盘或软盘,或者由用户直接输入。类似地,数据输出块可以以各种方式被输出,例如通过一个通信网络、存储在一个数据存储介质上、或者显示给用户。为此,最好使用安全装置。加密处理器可以是一个常规处理器,例如在个人计算机中使用,但是也可以是一个专用加密处理器。处理器通常在一个合适程序(固件)的控制下操作以执行根据本专利技术的算法的步骤。这个计算机程序产品通常从一个后台存储器,例如硬盘或ROM加载。在已经在诸如CD-ROM的存储介质上或者通过诸如公共互联网的网络被分布之后,计算机程序产品可以被存储在后台存储器上。敏感信息,例如加密密钥最好以一种安全的方式被分布和存储。这些技术是公知的,不进行进一步的描述。加密设备可以部分或全部地在一个智能卡上实现。由加密处理器执行的根据本专利技术的S盒的非线性操作将以作为一个示例性应用的分组密码中的循环函数f的形式被描述。本领域的技术人员完全能够使用其它加密系统和除了下面详细描述的密码之外的其它密码中的非线性函数。标记和定义下述标记在示例性算法的描述中被使用。假设Z2n是长度为n(n≥1)的所有二进制向量的组,和相加Z2n×Z2n→Z2n,它被定义为模2的坐标方式相加(也被称作异或,或XOR)。例如,(1,0,1,0)和(0,1,1,0)是Z24的元素,(1,0,1,0)(0,1,1,0)=(1,1,0,0)。如果n为7和x∈Z2n,则x(L)∈Z2n/2和x(R)∈Z2n/2被分别定义为x的左半部和右半部。例如,如果x=(1,0,1,1,0,0,1,0)∈Z28,则x(L)=(1,0,1,1)∈Z24和x(R)=(0,0,1,0)∈Z24。符号‖被用于标识向量的级联,例如x=(x(L)‖x(R))。向量x∈Z2n的元素(也称作比特)被从左到右从0到n-1排序,即x=(X0,X1,X2,...,Xn-1)。内积*Z2n×Z2n→Z2被定义为x*y=∑i=0,1,...,n-1xiyi∈Z2,所有的x,y∈Z2n。分组密码结构示例性的分组密码是一个Feistel密码并包括16个循环(类似于DES)。分组长度等于64比特和密钥长度等于128比特。在密钥K∈Z2128期间将明文X∈Z264以电子密码本(ECB)模式加密成密文C∈Z264用C=E(K,X)表示。循环函数用f表示并且是从Z240×Z232到Z232的一个映射。这个循环函数结合本专利技术的非线性S盒操作,下面将详细描述。循环函数的第一输入变量是循环密钥Ki∈Z240(其中i表示循环数,i=1,2,...,16)。这些循环密钥使用所谓的密钥调度算法根据128比特的密钥K计算出。可以使用任意合适的密钥调度算法,不详细描述。第二输入变量是循环i之后的中间结果的右半部。这个中间结果被表示为Xi∈Z264(i=0,1,...,16),X=(x0(R)‖x0(L))。使用这些标记,密文C∈Z264的计算包括下述步骤,如图1所示1.计算Xi(R)=Xi-1(L)⊕f(Ki,Xi-1(R)),]]>并设置Xi(L)=Xi-1(R),]]>i=1本文档来自技高网...

【技术保护点】
一种用于将一个输入数据块加密转换成一个输出数据块的方法,该方法包括使用基于一个排列的一个S盒在输入数据块上执行非线性操作,其中该方法包括在每次使用S盒之前,(伪)随机地从与该S盒相关的一组预定的至少两个排列选择排列。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:PLA雷尔斯
申请(专利权)人:皇家菲利浦电子有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1