CN101040474B - 为提高安全性的置换数据变换 - Google Patents
为提高安全性的置换数据变换 Download PDFInfo
- Publication number
- CN101040474B CN101040474B CN2005800346085A CN200580034608A CN101040474B CN 101040474 B CN101040474 B CN 101040474B CN 2005800346085 A CN2005800346085 A CN 2005800346085A CN 200580034608 A CN200580034608 A CN 200580034608A CN 101040474 B CN101040474 B CN 101040474B
- Authority
- CN
- China
- Prior art keywords
- data
- section
- key
- permutation function
- group
- 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.)
- Expired - Fee Related
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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种数据变换,其基于数据输入中的一些比特来置换该数据输入中的另外一些比特。另一种数据变换,其将数据输入的一段自乘至另一段的一个函数的幂次,此幂次与一预先定义的模数的函数互素。随后此模数被应用于此结果,并且变换的数据被汇编。在一种密钥导出应用中,主密钥的一段被打乱。自该主密钥的另一段导出两个数字。通用散列函数应用于该打乱的结果,从中选择比特作为导出密钥。在另一个实施方案中,编码的计数器与该主密钥的段组合。随后此结果被打乱,从中选择比特作为导出密钥。
Description
技术领域
本发明涉及数据安全,特别涉及为提高安全性的置换数据变换。
背景技术
几千年来,人们发现有必要进行保密。但对于历史的大部分时期,保密技术发展的很缓慢。据推测只为Julius Caesar自己使用的凯撒移位密码包括取出一个字母并通过字母表将其向前移动以隐藏消息。这样,“A”变成了“D”,“B”变成了“E”,以此类推。虽然通常认为这种加密算法是一个很弱的加密,但直到最近的几个世纪,几乎没开发出更好的加密算法。
在两次世界大战中,加密成为强力研究的焦点。在开发敌人无法破译的码以及在研究如何读懂敌人的加密信件这两个方面花费了很多力气。设计出了机械设备以帮助加密。这些机器中最著名的一个是德国的恩尼格玛(Enigma)机器,虽然恩尼格玛决不是那个时代唯一的机械加密机器。
计算机的问世大大地改变了加密使用的状况。不再需要复杂的机器或数小时的手工劳动,计算机能够以高速加密和解密信息且成本很低。对计算机依据的数学的理解也引入了新的加密算法。迪菲(Diffie)和赫尔曼(Hellman)的工作导致了一种利用指数算术模素数(exponential arithmeticmodulo primes)来交换密钥的方式,并依赖于这样的事实,即计算给出公共信息的共享密钥在计算上是不可行的。流行的RSA算法(以其发明者R.Rivest、A.Shamir和L.Adleman命名)依赖的事实是,将大数分解为因式同样在计算上不能用来解密被加密的数据。迪菲和赫尔曼的工作以及RSA算法可以在理论上被破译,但破译这些算法依赖于解决待解决的数学问题。(顺便说明,RSA算法也是最早的公钥(public-key)密码系统之一,它利用与加密不同的密钥来解密。这使得公开分配一个密钥而不丧失安全性成为可能)。
然而,没有一种加密算法有无限的寿命跨度。例如,DES(数据加密标准)最初于1976年发布。政府最初估计其寿命为10年。DES持续了远长于最初估计的寿命跨度的时间,但由于其相对短的密钥,DES被认为短于理想寿命。由此AES(高级加密标准)取代了DES作为政府标准,但DES仍被广泛使用。有许多对DES的改进,但这些改进不能保证DES永远安全。最终,DES将通常被认为是不安全的。
仍旧需要一种方法来加强现有加密算法的安全性。
发明内容
在一个实施方案中,本发明是用于置换数据变换的方法和装置。数据被分割成两段。第一段中的比特控制着置换函数对第二段中的比特组的应用。变换的数据包括该第一段,和该第二段的置换的组。
在第二个实施方案中,本发明是用于指数数据变换的方法和装置。数据被分割成两段。将第二段自乘(raise)到第一段的函数的幂次(power)。随后将一模数应用于此结果。变换的数据包括该第一段,和按该模数取模的余数。
在第三个实施方案中,本发明是用于从主密钥执行密钥导出的方法和装置。在一个实施方案中,主密钥的一部分被打乱(hash)。从该主密钥的另一部分中得到两个数字。将使用这两个数字的通用散列函数应用于所述打乱的结果,从中选择比特作为导出密钥。
在第四个实施方案中,将使用编码的计数器的通用散列函数应用到该主密钥的一些部分上,并组合所得结果。组合的结果随后被打乱,从中选择比特作为导出密钥。
参考所附图形,本发明的上述及其他特征、目的和优点将自下面的详细描述中变得更加明显。
附图说明
图1显示了自主密钥生成导出密钥的安全散列算法的一般实现(implementation)。
图2显示了图1的安全散列算法(secure hash algorithm)的典型操作。
图3显示了通用散列算法(universal hash algorithm)的典型操作。
图4显示了按照本发明的一个实施方案的将图1的安全散列算法和通用散列算法相结合以生成更安全的导出密钥的不同方式。
图5显示了按照本发明的一个实施方案的服务器和能够执行数据变换、密钥生成、密钥包装和数据加密的设备。
图6显示了按照本发明的一个实施方案的用于使用数据变换器与密钥包装器、密钥导出器或加密函数的结合来提高安全性的数据安全设备。
图7A-7B显示了按照本发明的一个实施方案的使用图6的数据安全设备的流程图。
图8显示了按照本发明的一个实施方案的图5和6的数据变换器的详细情况。
图9显示了按照本发明的另一个实施方案的图5和6的数据变换器的详细情况。
图10A-10C显示了按照本发明的一个实施方案的使用图8的数据变换器的流程图。
图11显示了按照本发明的一个实施方案的使用图9的数据变换器的流程图。
图12显示了按照本发明的一个实施方案的图5和6的密钥导出功能部件(key derivation function)的细节。
图13显示了按照本发明的另一个实施方案的图5和6的密钥导出功能部件的细节。
图14显示了按照本发明的一个实施方案的使用图12的密钥导出功能部件的流程图。
图15显示了按照本发明的一个实施方案的使用图13的密钥导出功能部件的流程图。
图16显示了按照本发明的一个实施方案的在图5的数据安全设备中使用密钥导出功能部件的流程图。
具体实施方式
图1显示了自主密钥生成导出密钥的安全散列算法的一般实现。总体构思是将主密钥105输入至安全散列算法110。安全散列算法的一个例子是SHA-1(安全散列算法1)。结果是导出密钥115-1。安全散列算法110可以被多次使用。依赖于安全散列算法110的实现,可以经修改或不经修改地重复使用主密钥105作为至安全散列算法110的输入。例如,如果安全散列算法110使用一个时钟控制其输出,则主密钥105可以不经修改地被使用以生成导出密钥115-2和115-3。另外,主密钥105可以以某种方式与计数器组合以充分修改主密钥105从而自导出密钥115-1区分出导出密钥115-2和115-3。如果适当地实现安全散列算法105,则就连主密钥105中小达单个比特的变化也会导致导出密钥115-2和115-3与导出密钥115-1完全不相关。
图2显示了图1的安全散列算法的典型操作。如图所示,散列算法将输入映射到散列值。在图2中,对于某个值n,散列值在0和n之间变化。散列算法的输出可以被称为篮(basket);图2显示了篮205、210、215并以此类推至篮220。
与一般的散列算法(其可以使用任何期望映射以将输入映射到篮),安全散列算法是不可预知的(有时也叫做无碰撞(collision-free)的):知道一个输入产生一个特定输出并不能给出关于如何找到另一个能产生同样输出的输入的任何信息。例如,知道输入“5”映射到篮215并不能帮助我们找到也映射到篮215的任何其他输入值。事实上,对一些特定的散列算法,可以没有映射到篮215的其他输入。这正是使安全散列算法110“安全”的原因:没有简单的方法来找到映射到期望输出的另一个输入。找到映射到特定输出的另一个输入的唯一方式是试验不同的输入,以期望找到映射到期望输出的另一个值。
安全散列算法的缺点是,篮可能不能都被均等地(equally)映射。换句话说,映射到篮215的输入可能只有一个,但映射到篮205的输入可能有100个。且如上所述,一些篮可能没有映射到它们的输入。
通用散列算法提供了安全散列算法缺失的分布特征。如图3所示,通用散列算法305也将输入映射到篮310、315、320直至325。但与图2的安全散列算法不同,通用散列算法305对这些篮均匀(evenly)分配其输入。这样,篮310以与篮315、320、325等一样的频率被映射,并依此类推。
通用散列算法的缺点是,通常容易找到映射到同一个篮的其他输入。例如,考虑这样的通用散列算法,其通过选择与输入的最后一个数位(digit)对应的篮来映射到10个篮,编号从0到9。容易看到,这一散列算法对所有篮均匀分配其输出。但也容易看到如何找到另一个映射到同一篮的输入作为给定输入。例如,1、11、21、31等等都映射到篮315。
因此,显然,安全散列算法和通用散列算法都有优点和缺点。从安全的角度看,最好的解决方式是以某种方式结合安全散列算法和通用散列算法的优点。图4显示了按照本发明的一个实施方案,图1-2的安全散列算法和图3的通用散列算法可以如何结合以生成更安全的导出密钥。在序列405,主密钥105首先传递至安全散列算法110。随后安全散列算法110的结果用作至通用散列算法305的输入,并且自此结果可生成导出密钥115-1。
尽管序列405显示了安全散列算法110在通用散列算法305之前被使用,序列410则颠倒这一顺序。因此,主密钥105用作至通用散列算法305的输入。随后通用散列算法305的结果用作至安全散列算法110的输入,自此结果可生成导出密钥115-1。
安全散列算法110和通用散列算法305可以以任何期望形式来实现。例如,安全散列算法110和通用散列算法305可以以任何种类的只读存储器(RAM)、以固件,或作为存储在存储器中的软件来实现,这些是安全散列算法110和通用散列算法305以通用处理器来实现的几个例子。实现还可以包括专用设备:例如,处理器可以被特殊设计以实现安全散列算法110和通用散列算法305。因此,作为另一个例子,可以设计一个计算器来实现安全散列算法110或通用散列算法305。本领域技术人员会认识到可以实现安全散列算法110和通用散列算法305的其他方式。
图5显示了按照本发明的一个实施方案的服务器和能够执行数据变换、密钥生成、密钥包装和数据加密的设备。在图5中显示了服务器505。服务器505包括数据变换器510、密钥导出功能部件515、密钥包装功能部件520、和加密功能部件525。数据变换器510负责执行数据变换。正如参考图8-9、10A-10C和11在下文所讨论的,当本来就不安全的情况下,数据变换通过打乱数据来增加编码数据的复杂度,因而使密码分析更困难。例如,数据变换能够掩饰存在于被编码的数据中而不存在于已变换的数据中的模式。
密钥导出功能部件515负责导出密钥以用于加密数据。虽然任何密钥都可用于加密数据,但一个特定的密钥用得越多,此密钥就越可能用密码分析来确定。因此,一些系统依靠主密钥来生成导出密钥,随后使用导出密钥来加密数据。正如常常期望的,可以生成新的导出密钥;仅利用导出密钥加密的任何数据对用新的导出密钥加密的信息的破解没有任何价值。现有的密钥导出功能部件是存在的;在下文将参考图12-13和15-16来描述三个新的密钥导出功能部件。
密钥包装功能部件520负责包装用于传输的密钥。密钥包装通常通过加密用于传输的密钥来完成。例如,RSA可用于加密(即包装)密钥。此时经充分保护的密钥即使是通过不安全的连接也可以被传输至其他机器,在此该密钥可以被解包(unwrap)(解密)并用于数据加密/解密。
常常,包装的密钥是与私钥(private key)(或对称)密码系统一起使用的密钥,其被用公钥(或不对称)密码系统包装。私钥密码系统使用相同的密钥来加密和解密,这与使用不同的密钥来加密和解密的公钥密码系统相反。例如,DES和AES是私钥密码系统;RSA是公钥密码系统。虽然公钥密码系统使安全地分发密钥(不用担心密钥被第三方截获并用于解密秘密信息)成为可能,但与私钥密码系统相比,公钥密码系统常常实现起来较慢并导致较长的消息。显然,为了使用公钥密码系统来包装密钥,服务器505需要知道包装的密钥待传递至的设备的公钥。但本领域技术人员应认识到,可使用任何加密算法来包装密钥,且待包装的密钥可用于任何类型的密码系统。
加密功能部件525用于加密数据。通常,使用使用密钥包装功能部件520包装的密钥来加密数据,尽管本领域技术人员应认识到可使用任何密钥来加密数据,而该数据可以是任何期望被加密的数据,并且可使用任何期望的加密功能部件。
图5还显示了按照本发明的一个实施方案的能够执行数据变换、密钥包装和数据加密的设备530。尽管设备530看上去像个人数字助理(PDA),但本领域技术人员应认识到,设备530,以及服务器505,可以是使用安全算法的任何设备。因此,例如,设备530可以是与服务器505(其可以是一台本质上不是服务器的普通计算机)交换文件的一台计算机(例如台式计算机或笔记本计算机)。或者,设备530可以是数字介质设备:例如,向使用者呈现数字内容,该内容由服务器505提供给设备530。替代地,设备530可以接收来自任何合法源头的内容,服务器505根据该内容来指定对设备530授予的权力。或者,设备530可以是软件,以实现存储在与通用机器(诸如计算机)一起使用的一些介质中的一些功能。在此变体中,设备530之所以成为图5所示的系统的一部分,是因为它较少地依赖于设备530的硬件,而更多地依赖于由设备530执行的软件。本领域技术人员应认识到,该软件可以实现任何期望的功能(functionality),而且该软件可以存储在任何合适的介质——诸如软盘、任何种类的压缩盘(CD)或数字视频盘(DVD,有时也叫数字多功能盘)、磁带介质、或通用串行总线(USB)钥匙——上,这里只指出一些较流行的可能性。或者,设备530可以是蜂窝电话并且服务器505可以是基站,其中该蜂窝电话和该基站以加密的方式通信。本领域技术人员应认识到设备530和服务器505的其他变体,还应认识到服务器505和设备530的通信方式可以是任何形式的通信信道:例如,有线、无线,或任何其他通信形式。
设备530与图5中的服务器505的相似之处在于,包括数据变换器510、密钥包装功能部件520和加密功能部件525。注意,设备530不包括密钥导出功能部件515,这与图5中的服务器505不同。这是因为密钥导出通常只在服务器505上是需要的。假设有一种与另一个设备通信的方式,则只有一个设备需要生成导出密钥。当然,如果没有办法安全传递导出密钥但是两个设备都能准确生成相同的导出密钥,则设备530可包括密钥导出功能部件515(虽然设备530则可能不需要密钥包装功能部件520)。
图6显示了按照本发明的一个实施方案的数据安全设备,其用于使用数据变换器与密钥包装器、密钥导出器或加密功能部件的结合来提高安全性。数据安全设备605可以是图5的服务器505或设备530的一部分,可根据需要进行改动添加或去除部件。在数据安全设备605中,输入端口610负责接收数据。该数据可以是主密钥(自该主密钥生成导出密钥)、待包装的密钥或待加密的数据等等。分割器615负责把数据分割成块。正如参考图12-13和14-16在下文讨论的,有时这些功能部件将数据变换应用于该数据的多个部分;分割器615将该数据拆成具有期望大小的块,以使数据变换器510可以应用于每一块。数据变换器510负责执行数据变换,这在下文将参考图12-13和14-16进一步讨论。组合器(combiner)620负责在数据变换后将数据块再组合到一起,用于合适的安全功能部件的应用。可使用的各种安全功能部件包括密钥导出功能部件515、密钥包装功能部件520或加密功能部件525。最后,在变换和/或应用安全功能部件之后,输出端口625输出数据。
值得注意的是,虽然通常分割器615将数据拆成符合数据变换算法的大小的块,但这并不是必须的。因此,分割器615可以将数据拆成比至数据变换器510的期望输入小或大的块。如果分割器615将数据拆成比数据变换器510期望的小的块,则该数据可以被添凑(pad)使其足够大;如果分割器615将数据拆成比数据变换器510期望的大的块,则数据变换器510可以仅将数据变换应用到该数据中的该数据变换器需要的数目的比特。例如,如果如图10的实施方案中所描述的那样来实现数据变换器510,则数据变换器510作用于8字节的输入。如果数据变换器510接收多于8字节的数据,则数据变换器510可以仅应用到该输入的8个字节。这可以是该数据中的任何8个字节:例如,最初的8字节,最后的8字节,或任何其他期望的组合。
值得注意的还有,任何数据都可以被变换。因而,待变换的数据可以是主密钥,其中变换的主密钥待用于生成导出密钥。或者,该数据可以是在传输之前待包装的导出密钥。或者,该数据可以是待使用加密算法的实现来加密的数据。本领域技术人员应认识到可以变换的其他类型的数据。
图7A-7B显示了按照本发明的一个实施方案的使用图6的数据安全设备的流程图。在图7A中,在框705,数据被分割成块。在框710,使用数据变换对每个块进行变换。每个块可以按照期望被独立地进行数据变换或不变换;换言之,一些块可以被变换,而另一些不变换。在框715,这些块可以被重新组装。如虚线720所示,框705-715是可选的,如果不需要可以跳过。
在图7B中,该数据安全设备可以按不同的方式被使用。在框725,密钥包装算法可以应用于数据。在框730,密钥导出算法可以应用于数据。而在框730,数据加密算法可以应用于数据。
图8显示了按照本发明的一个实施方案的图5和6的数据变换器的详细情况。在图8所示的数据变换器510的实施方案中,数据变换器510通过使用置换函数来置换比特组来操作。数据变换器510包括:接收待变换数据的输入端口805、分割器810、添凑器(padder)815、置换器820,和输出变换的数据的输出端口825。分割器810负责将输入数据分割成用于应用置换函数的比特组。事实上,分割器810通过将数据分成两段来开始。第一段包括用于控制置换函数在比特组上的应用的比特,这些比特是从第二段划分出来的。在一个实施方案中,该数据包括64个比特;第一段包括8个比特,而第二段包括8个7比特组。但本领域技术人员应认识到,该数据可以是任何长度的,且该数据可以分割成任何期望长度的组,即使不同的组长度不同。最后,如果个体(individual)组总是要进行置换,则第一段(其包括控制着置换组的应用的比特)可以省略。
如果数据变换器510支持接收不可预知大小的数据(而不是假定数据总是固定大小),则分割器810可能不能适当地把该数据分割成比特组。
可使用添凑器815用额外的比特添凑该数据,以使该数据具有合适的长度以被适当地分割。
在一个实施方案中,置换函数的应用由第一段的比特来控制:如果第一段中的相应比特被置位(set),则使用特定的置换函数来置换比特组。例如,如果相应的比特的值为1,则使用合适的置换函数来置换相应的组;如果相应的比特的值为0,则不置换相应的组。替代地,如果相应的比特的值为0,则相应的比特组可以被视为已使用恒等置换函数(identitypermutation function)进行了置换。置换函数也可以被索引;如果置换函数的数目匹配第二段中的比特组的数目(因此也匹配第一段中的比特的数目),则单个索引可识别三个相应的单元(element):第一段中的一个比特、第二段中的一个比特组,和待应用于这个比特组的一个置换函数。
置换器820负责控制第二段的比特组的置换。在一个实施方案中,置换器820根据下面的表1所示的函数进行置换,虽然本领域技术人员应认识到可使用任何置换函数。
表1
函数 | (abcdefg的)置换 |
P1 | faebdgc |
P2 | gfdabce |
P3 | cgbfaed |
P4 | ecagfdb |
P5 | defcgba |
P6 | bdgecaf |
P7 | ecagfdb |
P8 | cgbfaed |
表1所示的置换有一些有趣的特征。首先,每个置换函数是置换函数P1的幂次。这样,P2=P1○P1,P3=P2○P1(=P1○P1○P1),等等。因为P6○P1将再次导致P1,所以P7和P8被选择以重复先前的P1的幂次。这意味着数据变换器510只需要知道一个置换函数的实现;其余置换函数可得自于该基本置换函数。其次,表1的置换未在该数据中引入类似于在诸如RAS、DES、AES、SHA-1等加密函数中发现的任何结构。
因为置换函数是可逆的,所以由应用使用表1的置换函数而得到的数据变换是容易地可反转的(reversible)。表2显示的置换函数为表1的置换函数的逆(inverses)。
表2
函数 | (abcdefg的)置换 |
P1 -1 | bdgecaf |
P2 -1 | defcgba |
P3 -1 | ecagfdb |
P4 -1 | cgbfaed |
P5 -1 | gfdabce |
P6 -1 | faebdgc |
P7 -1 | cgbfaed |
P8 -1 | ecagfdb |
这样,为了反转应用于表1的置换函数的数据变换,需要做的只是使用表2的置换函数来应用第二数据变换。为了使此反转变换成为可能,输出端口825连同置换的组一起直接输出第一段的比特;否则,变换的数据的接收器将不知道哪个比特组已被置换。
就像表1的置换函数一样,表2中的所有置换函数可得自于单个基本函数:在此情况下是P6 -1。因而,P5 -1=P6 -1○P6 -1,P4 -1=P5 -1○P6 -1(=P6 -1○P6 -1○P6 -1),等等。
图9显示了按照本发明的另一个实施方案的图5和6的数据变换器的详细情况。在图9中,输入端口905和输出端口910的操作类似于图8中的数据变换器510。但图9中的数据变换器510并不使用置换函数来置换数据,而是通过对数据计算指数置换来操作:此计算由计算器915来进行。在一个实施方案中,数据变换器510作用于3字节长的数据输入。第一段用于计算一幂次,最后两个字节自乘至该幂次。随后对结果按一模数取模。例如,一个实施方案将数据变换计算为Y=((B+1)(2A+1)mod 65537)-1,其中A是该数据输入的第一个字节,B是该数据输入的最后两个字节。于是变换的数据包括A和Y,并且为3字节长。但本领域技术人员应认识到,该输入可以有不同的长度,且可应用不同的指数置换函数。
以上所示的指数置换函数有一些优点。首先,抽象代数显示了,当指数与模数(减1)互素时,该函数循环于1和该模数之间的所有可能值,这意味着指数置换函数是一个置换。通过选择65537作为素数,比65537小1的是65536,其为2的幂次。因此,不论A为何值,(2A+1)都是奇数,因此与65536互素。其次,如果A是0,则数据输出是不变的。最后,就像图8的置换数据变换器一样,图9的数据变换器510的结构使用了在诸如RSA、DES、AES、SHA-1等加密算法中没有的结构。
如果数据变换器510支持接收不可预知大小的数据(而非假定数据总是固定大小),则分割器920可能不能将该数据分割成合适大小的段。就像图8的数据变换器中的添凑器815一样,添凑器925可用于以额外的比特来添凑该数据,以使该数据具有合适的长度以被适当地分割。
就像图8的置换数据变换器一样,图9的数据变换器510是可逆的。为了使该数据变换的反转成为可能,输出端口910连同Y一起输出不变的A。然后,为了反转该指数置换,计算器915计算2A+1按65536(即65537-1)取模的逆。如果此逆叫e,则反转的指数置换为((Y+1)emod 65537)-1。此计算的结果恢复了原始字节B。这样,通过应用第二数据变换,改变数据变换器的指数,可以容易地反转指数置换。
既然图8和9的设备已经表示出来,就可以理解它们的使用方法。图10A-10C显示了按照本发明的一个实施方案使用图8的数据变换器的流程图。在图10A中,在框1005接收数据。在框1010,该数据被分割成两段(假定比特组的置换由第一段中的比特来控制)。在框1015,数据变换器检查第二数据段是否能被均匀分割成组。如果不能,则在框1020,该数据被添凑以支持将第二段分割成大小均匀的组。(这假定该数据变换器试图将该数据输入分割成大小均匀的组;如果该数据变换器不需要将该输入数据分割成大小均匀的组,则可省略框1015和1020。)
在框1025(图10B),第二段被分割成比特组。虽然框1025描述了第二段被分割成大小相等的组,但如上所述,如果数据变换器支持,这些组也可以被分割成大小不等的组。在框1030,每个组被与第一段中的一个比特关联。在框1035,定义一基本置换函数。在框1040,将其他置换函数定义为该基本置换函数的幂次。(再次地,不要求置换是基本置换函数的幂次;每个置换函数可以与其他置换函数不相关,在此情况下可改动/省略框1035和1040。)在框1045,索引置换函数。
在框1050(图10C),数据变换器检查第一段(它控制着置换函数对第二段中的比特组的应用)中是否有比特尚待被检查。如果有未检查的比特,则在框1055,数据变换器检查该比特是否被置位。如果该比特被置位,则在框1060,由该比特索引的置换函数被识别,并且在框1065,将识别的置换应用到关联的置换组。然后控制返回到框1050以检查第一段中是否还有任何未检查的比特。在第一段中的所有比特都被检查之后,在框1070,数据变换器自第一段和置换的比特组来构建数据变换。
图11显示了按照本发明的一个实施方案的使用图9的数据变换器的流程图。在框1105,数据变换器接收数据。在框1110,数据变换器将该数据分割成两段。在框1115,第一段用于构建与所选模数互素的幂次。在框1120,将第二段自乘至所计算出的幂次。在框1125,通过对结果按所述模数取模来计算余数。最后,在框1130,自第一段和该余数来构建数据变换。
如以上参考图5所述,现有的密钥导出功能部件是存在的。然而如以上参考图4所述,现有的密钥导出功能部件不能兼提供安全散列函数和通用散列函数二者的优点。图12显示了一种密钥导出功能部件的细节,它结合了安全散列函数和通用散列函数二者的优点。在图12中,密钥导出功能部件515包括输入端口1205和输出端口1210,它们分别用于提供至该密钥导出功能部件的输入和所输出的导出密钥。密钥导出功能部件515还包括分割器1215、组合器1220,散列装置(hash)1225、判定器1230、计算器1235和比特选择器1240。
分割器1215将主密钥分割成两部分。组合器将主密钥的第一部分与一个计数器组合,该计数器可以是输入数据的一部分。将主密钥与计数器组合的一种方式是将主密钥的第一部分与计数器接合(concatenate),该计数器可以是任意大小(如4字节)。此接合可以以任一次序执行:即,主密钥的第一部分或计数器都可在该组合的前部。随后该组合的结果被使用散列函数1225——其可以是安全散列函数——打乱。(在此实施方案中,散列函数1225代替了图4的序列405中的安全散列算法110。)
判定器1230用于自主密钥的第二部分确定两个数字。在一个实施方案中,这两个数字,a和b,被确定为主密钥的第二部分的最初和最后32字节,按素数p取模。以此方式选择a和b要求主密钥具有足够的长度使得主密钥的第二部分能有64字节长。但本领域技术人员应认识到,主密钥不是必须有这么长。例如,如果计算a和b按p取模充分地改变了a和b的比特,则可以以这样的方式选择a和b:即它们的原始比特在主密钥的第二部分内重叠。
对该素数的一个特定选择可以是P192=2192-264-1,虽然本领域技术人员应认识到也可选择其他素数。随后计算器1235可实施通用散列函数ax+bmodp,其中x是散列装置1225的结果。(此通用散列函数代替了图4的序列405中的通用散列算法305)。最后,比特选择器1240为导出密钥自该通用散列函数的结果选择比特,随后这些比特可以被输出。例如,比特选择器1240可选择该通用散列函数的结果的最低有效比特(the leastsignificant bits)作为导出密钥。
图13显示了按照本发明的另一个实施方案的图5和6的密钥导出功能部件的详细情况。与图12所示的本发明的实施方案(其按照图4的序列405来实现密钥导出功能部件)相反,图13的密钥导出功能部件515并不在安全散列算法之后应用通用散列算法。作为替代,图13所示的本发明的实施方案对至安全散列算法的输入应用线性映射。
就像图12的密钥导出功能部件515一样,图13的密钥导出功能部件515包括输入端口1305和输出端口1310,它们分别接收主密钥作为输入并输出导出密钥。图13的密钥导出功能部件515还包括分割器1315、编码器1320、组合器1325、散列装置1330和比特选择器1335。
就像图12的分割器1215一样,分割器1315将主密钥分割成两部分。随后编码器1320对一计数器进行编码。编码器1320可以以任何期望的方式操作。例如,编码器1320可以通过重复该计数器以将其延展至主密钥的第一部分的长度来操作。因此,例如,如果主密钥的第一部分是64字节长的并且该计数器是用4字节表示的,则编码器1320能够重复这些4字节16次以将该计数器延展至64字节长。随后组合器1325可以将编码的计数器与主密钥的每个部分分别结合。例如,组合器1325可以在比特级将主密钥的这些部分与编码的计数器组合。一个实施方案使用XOR二进制函数(binary function)来将主密钥的这些部分与编码的计数器组合。但本领域技术人员应认识到,组合器1325可以使用任何按位二进制函数(bitwise binary function)——或事实上任何函数——来将主密钥的这些部分与编码的计数器组合。随后组合器1325将主密钥的这两部分重新组合在一起(在与编码的计数器组合之后):例如,这两部分可以接合在一起(但本领域技术人员应认识到,组合器1325可以以其他方式重新组合主密钥的这两部分)。组合器1325还可以将主密钥的重新组合的部分与编码的计数器再一次接合。
散列装置1330取组合器1325的输出并将其打乱。散列装置1330可以是安全散列函数。就像图12中的比特选择器1240一样,比特选择器1335随后可自散列装置1330的结果选择比特作为导出密钥。
既然图12和13的设备已经表示出来,就可以理解它们的使用方法。图14显示了按照本发明的一个实施方案的使用图12的密钥导出功能部件的流程图。在框1405,主密钥被分割成段。在框1410,第一段与编码的计数器组合。如以上参考图12所述,此组合可以是第一段与编码的计数器的接合。在框1415,组合的第一段被打乱。
在框1420,自第二段确定两个数字。如以上参考图12所述,可以相对于一模数来确定这两个数字。在框1425,使用所确定的这两个数字和该模数来定义通用散列函数。在框1430,该散列的结果应用于该通用散列函数。在框1435,自该通用散列的结果选择比特作为导出密钥。
图15显示了按照本发明的一个实施方案的使用图13的密钥导出功能部件的流程图。在框1505,主密钥被分割成段。在框1510,每个段与编码的计数器组合。如以上参考图13所述,这可以通过将XOR比特函数应用于各自带有编码的计数器的每一段来实现。在框1515,组合的块被重新组合,并且(如以上参考图13所述)可以与编码的计数器再次组合。在框1520,修改的主密钥被打乱,并且在框1525,自该打乱的结果选择比特作为导出密钥。
图12-15所示的密钥导出功能部件只是两个例子。也可以使用其他将安全散列算法与通用散列算法的优点结合的密钥导出功能部件。图16显示了按照本发明的一个实施方案的用于图5的数据安全设备中的另一个密钥导出功能部件的流程图。在框1605,主密钥被分割成段。在框1610,使用数据变换来变换这些段。因为这些段通常比数据变换器能够使用的大,所以只使用这些段的子集:例如,只使用数据变换需要的最初那些字节。在框1615,变换的段被组合,并与编码的计数器组合:例如,这些段与编码的计数器可以接合在一起。在框1620,该结果被打乱,并且在框1625,自该打乱的结果选择比特作为导出密钥。
虽然图12-13的设备和图14-16的流程图显示了自主密钥生成单个导出密钥,但值得说明的是,本发明的实施方案可以容易地被适应于生成重复的导出密钥。这些额外的导出密钥可以按多种方式生成。例如,图14-16的流程图都包括计数器。对于每个期望的额外导出密钥,该计数器可以累加。因而,为了导出第一密钥,该计数器可使用值1,为了导出第二密钥,该计数器可使用值2,依此类推。
在另一个变体中,并不使用图12的比特选择器1240或图13的比特选择器1335来选择比特用于导出密钥,而是一次生成足够多的结果以为所有导出密钥自组合的结果中选择比特。例如,假定期望u个密钥,每个k比特长,并进一步假定图12-13的设备和/或图14-16的流程图的结果在比特选择前产生l个比特。如果密钥导出功能部件被应用了m次,使得m*l≥u*k,则可以自m*l个结果比特中同时选择u个导出密钥。例如,m*l个结果比特可以都接合在一起;第一个密钥可以被选作最初k个比特,第二个密钥可以被选作次k个比特,依此类推直至所有u个密钥都被选择。
下面的讨论是为了提供对可以实施本发明的一些方面的合适机器的简要的总体描述。通常,该机器包括一条系统总线,附接至它的有:处理器、存储器(诸如随机存取存储器(RAM)、只读存储器(ROM)或其他状态保存介质)、存储设备、视频接口和输入/输出接口端口。该机器可以至少部分地通过以下方式被控制:通过来自传统输入设备(诸如键盘、鼠标等)的输入,以及通过从另一个机器接收的指示,与虚拟现实(VR)环境、生物测定反馈或其他输入信号交互。在此使用的术语“机器”旨在广泛地包括单个机器或由一起工作的机器或设备通信连接而成的系统。机器的实例包括计算设备(诸如个人计算机、工作站、服务器、便携式计算机、手提设备、电话、书写板(tablet)等等),以及运输设备(诸如个人或公共运输设备,例如汽车、火车、出租车等等)。
该机器可包括嵌入式控制器,诸如可编程或不可编程逻辑设备或阵列、专用集成电路、嵌入式计算机、智能卡及类似物。该机器可以利用一个或多个连接抵达一个或多个远程机器,诸如通过网络接口、调制解调器或其他通信连接。机器可以借助于物理和/或逻辑网络(诸如企业内部网(intranet)、互联网、局域网、广域网等等)互连。本领域技术人员应认识到,网络通信可以利用多种有线和/或无线的短程或长程载体和协议,包括射频(RF)、卫星、微波、IEEE(美国电气及电子工程师学会)802.11、蓝牙、光学、红外、电缆、激光等等。
可以参考或结合关联数据(包括函数、进程、数据结构、应用程序等等)来描述本发明,上述内容当被机器访问时使机器执行任务或定义抽象数据类型或低级硬件语境。关联数据可存储在如易失性和/或非易失性存储器(例如RAM、ROM等)中,或存储在其他存储设备及其关联存储介质(包括硬盘、软盘、光存储器、磁带、闪存、内存条、数字视频盘、生物存储器等等)中。关联数据也可以以包(packets)、串行数据、并行数据、传播信号等等形式在传输环境(包括物理和/或逻辑网络)上传送,而且关联数据可以以压缩的或加密的形式被使用。关联数据可用在分布式环境中,并被本地或远程地存储以用于机器访问。
虽然已参考列举出的实施方案描述并说明了本发明的原理,但应认识到,列举出的实施方案可以在设置和细节上进行改动,而不偏离本发明的这些原则。并且虽然上面的讨论集中在特定的实施方式,但也可预期其他配置。尤其是,尽管在此使用了诸如“在一个实施方案中”或类似的表述,这些表述指通常参考实施方案可能性,而不旨在将本发明限制于特定的实施方案的配置。这里使用的这些表述可以指的是相同或不同的实施方案,这些实施方案可与其他实施方案组合。
因而,鉴于在此描述的实施方案的广泛多样的变化,此详细描述和所附材料仅仅旨在是说明性的,而不应被视为对本发明的范围的限制。因此,所要求保护的是所有这些改动,只要它们落入下述权利要求及其等同物的范围和精神内。
Claims (36)
1.一种数据变换器,包括:
一输入端口,用于接收数据;
一分割器,用于将所述数据分割成第一段和第二段并将所述第二段分割成至少两个组;
一置换器,包括至少两个置换函数的实现模块,以按照所述第一段中的对应比特将至少一个所述组置换成置换的组;和
一输出端口,用于将所述第一段和至少所述置换的组作为变换的数据输出,
其中所述至少两个置换函数之一是基本置换函数,且每个余下的置换函数是所述基本置换函数的幂次。
2.如权利要求1所述的数据变换器,其中所述分割器起作用以将所述第二段分割成组,以使所述第二段中的所述组的数目等于所述第一段中的比特的数目。
3.如权利要求1所述的数据变换器,其中所述分割器起作用以将所述第二段分割成所述组,每个所述组有预先确定的大小。
4.如权利要求3所述的数据变换器,其中所述分割器包括一添凑器,用于添凑所述第二段以使每个所述组有所述预先确定的大小。
5.如权利要求1所述的数据变换器,其中置换函数的数目等于所述第二段中的所述组的数目。
6.如权利要求5所述的数据变换器,其中所述置换器起作用以按照所述第一段中的对应比特对每个所述组使用所述置换函数之一进行置换。
7.一种数据安全设备,包括:
一数据变换器,包括:
一输入端口,用于接收数据;
一分割器,用于将所述数据分割成第一段和第二段并将所述第二段分割成至少两个组,每个组有预先确定的大小,以使所述第二段中的组的数目等于所述第一段中的比特的数目;
一置换器,包括至少两个置换函数的实现模块,以按照所述第一段中的对应比特将至少一个所述组置换成置换的组;和
一输出端口,用于将所述第一段和至少所述置换的组作为变换的数据输出;和
一安全算法的实现模块,用于保护所述变换的数据,
其中所述至少两个置换函数之一是基本置换函数,且每个余下的置换函数是所述基本置换函数的幂次。
8.如权利要求7所述的数据安全设备,其中:
所述数据包括一主密钥;和
所述安全算法的实现模块包括密钥导出功能部件的实现模块,以使用所述变换的数据来生成所述主密钥的导出密钥。
9.如权利要求7所述的数据安全设备,其中:
所述数据包括待包装的密钥;和
所述安全算法的实现模块包括密钥包装功能部件的实现模块,以包装所述变换的数据。
10.如权利要求9所述的数据安全设备,其中所述密钥包装功能部件的实现模块包括RSA的实现模块,以包装所述变换的数据。
11.如权利要求7所述的数据安全设备,其中所述安全算法的实现模块包括加密算法的实现模块,以使用所述变换的数据来加密所述数据。
12.如权利要求11所述的数据安全设备,其中所述安全算法的实现模块包括AES的实现模块,以使用所述变换的数据来加密所述数据。
13.如权利要求7所述的数据安全设备,进一步包括一第二分割器,以将输入分割成至少两块,所述数据变换器对每个块分别起作用。
14.如权利要求13所述的数据安全设备,其进一步包括一组合器,以将所述数据变换器对每个块的结果组合成待通过所述安全算法的实现模块来保护的单个变换的数据。
15.如权利要求7所述的数据安全设备,其中所述置换器包括如下数目的置换函数的实现模块,置换函数的数目等于所述第二段中的所述组的数目。
16.如权利要求15所述的数据安全设备,其中所述置换器起作用以按照所述第一段中的对应比特使用所述置换函数之一来置换每个所述组。
17.一种用于生成数据变换的方法,包括:
接收数据;
将所述数据分割成第一段和第二段,所述第一段和第二段中的每一个包括至少一个比特;
将所述第二段分割成至少两个组;
将每个所述组与所述第一段中的一个比特关联;
按照所述第一段中的关联的比特,将置换函数应用于至少一个所述组,其中所述置换函数是从至少两个置换函数中选取的,所述至少两个置换函数之一是基本置换函数,且每个余下的置换函数是所述基本置换函数的幂次;和
自所述第一段和至少所述置换的组构建所述数据变换。
18.如权利要求17所述的方法,其中将所述第二段分割成至少两个组包括:将所述第二段分割成多个组,组的数目等于所述第一段中的比特的数目。
19.如权利要求17所述的方法,其中将所述第二段分割成至少两个组包括:将所述第二段分割成至少两个组,每个组有相同数目的比特。
20.如权利要求19所述的方法,其中将所述第二段分割成至少两个组包括:添凑数据以使所述第二段能被分割成所述组,每个所述组包括相同数目的比特。
21.如权利要求17所述的方法,进一步包括定义所述置换函数。
22.如权利要求21所述的方法,其中定义所述置换函数包括:定义多个置换函数,置换函数的数目等于所述组的数目。
23.如权利要求22所述的方法,其中将置换函数应用于至少一个所述组包括:按照所述第一段中的对应比特,将不同的置换函数应用至每个所述组。
24.如权利要求23所述的方法,其中:
定义多个置换函数包括,为每个所述置换函数分配一个索引;和
将不同的置换函数应用至每个所述组包括,用所述索引来选择置换函数,所述索引对应于一数字,所述数字用于所述第一段中的与所述组关联的比特。
25.一种用于加强数据安全的方法,包括:
生成数据变换,包括:
接收数据;
将所述数据分割成第一段和第二段,所述第一段和第二段中的每一个包括至少一个比特;
将所述第二段分割成多个组,组的数目等于所述第一段中的比特的数目;
将每个所述组与所述第一段中的一个比特关联;
按照所述第一段中的关联的比特,将置换函数应用于至少一个所述组,其中所述置换函数是从至少两个置换函数中选取的,所述至少两个置换函数之一是基本置换函数,且每个余下的置换函数是所述基本置换函数的幂次;和
自所述第一段和至少所述置换的组构建所述数据变换;和将安全算法应用于所述数据变换,以保护所述数据变换。
26.如权利要求25所述的方法,其中:
接收数据包括接收一主密钥,自所述主密钥生成导出密钥;和
将安全算法应用于所述数据变换包括,将密钥导出功能部件应用于所述数据变换以生成所述主密钥的所述导出密钥。
27.如权利要求26所述的方法,其中将密钥导出功能部件应用于所述数据变换包括:
将变换的数据与一编码的计数器组合以产生组合的结果;
安全地打乱所述组合的结果以产生散列;和
在所述散列中选择一子组比特作为所述导出密钥。
28.如权利要求26所述的方法,其中:
生成数据变换进一步包括,将所述主密钥与一计数器组合以产生变换的数据;和
将密钥导出功能部件应用于所述数据变换包括:
安全地打乱所述变换的数据以产生散列;和
在所述散列中选择一子组比特作为所述导出密钥。
29.如权利要求25所述的方法,其中:
接收数据包括接收待包装的密钥作为所述数据;和
将安全算法应用于所述数据变换包括,将密钥包装功能部件应用于所述数据变换,以包装所述密钥。
30.如权利要求29所述的方法,其中将密钥包装功能部件应用于所述数据变换包括,将RSA应用于所述数据变换,以包装所述密钥。
31.如权利要求25所述的方法,其中将安全算法应用于所述数据变换包括,将加密算法应用于所述数据变换,以使用所述数据变换作为密钥以加密所述数据。
32.如权利要求31所述的方法,其中将加密算法应用于所述数据变换包括,将AES应用于所述数据变换,以使用所述数据变换作为所述密钥以加密所述数据。
33.如权利要求25所述的方法,其中将所述第二段分割成多个组包括:将所述第二段分割成这样的多个组,组的数目等于所述第一段中的比特的数目,每个组有相同数目的比特。
34.如权利要求25所述的方法,其进一步包括定义所述置换函数。
35.如权利要求34所述的方法,其中定义所述置换函数包括定义多个置换函数,置换函数的数目等于所述组的数目。
36.如权利要求25所述的方法,进一步包括:
将输入分割成至少两块,分别变换每个块;和
将对每个块的数据变换的结果组合成待通过应用所述安全算法来保护的单个变换的数据。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/918,717 | 2004-08-12 | ||
US10/918,103 US7564970B2 (en) | 2004-08-12 | 2004-08-12 | Exponential data transform to enhance security |
US10/918,718 | 2004-08-12 | ||
US10/918,718 US7577250B2 (en) | 2004-08-12 | 2004-08-12 | Key derivation functions to enhance security |
US10/918,717 US8077861B2 (en) | 2004-08-12 | 2004-08-12 | Permutation data transform to enhance security |
US10/918,103 | 2004-08-12 | ||
PCT/US2005/028316 WO2006023334A2 (en) | 2004-08-12 | 2005-08-09 | Permutation data transform to enhance security |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012102836305A Division CN102857337A (zh) | 2004-08-12 | 2005-08-09 | 为提高安全性的置换数据变换 |
CN2012102846379A Division CN102868518A (zh) | 2004-08-12 | 2005-08-09 | 为提高安全性的置换数据变换 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101040474A CN101040474A (zh) | 2007-09-19 |
CN101040474B true CN101040474B (zh) | 2013-08-14 |
Family
ID=35799981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800346085A Expired - Fee Related CN101040474B (zh) | 2004-08-12 | 2005-08-09 | 为提高安全性的置换数据变换 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8077861B2 (zh) |
CN (1) | CN101040474B (zh) |
TN (1) | TNSN07055A1 (zh) |
TW (1) | TWI386005B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007127468A2 (en) * | 2006-04-28 | 2007-11-08 | Barclays Capital Inc. | Method and system for implementing portal |
CN101882192B (zh) * | 2009-05-08 | 2012-08-22 | 晨星软件研发(深圳)有限公司 | 电路保护装置、电路保护方法及电路保护层 |
US9218349B2 (en) * | 2009-07-27 | 2015-12-22 | International Business Machines Corporation | Method and system for transformation of logical data objects for storage |
US8644500B2 (en) * | 2010-08-20 | 2014-02-04 | Apple Inc. | Apparatus and method for block cipher process for insecure environments |
US8538939B2 (en) | 2011-05-31 | 2013-09-17 | International Business Machines Corporation | Parsing optional block data |
US20120311324A1 (en) * | 2011-05-31 | 2012-12-06 | International Business Machines Corporation | Method of mapping key information |
US20120307998A1 (en) * | 2011-05-31 | 2012-12-06 | International Business Machines Corporation | Building optional blocks |
WO2013192110A2 (en) * | 2012-06-17 | 2013-12-27 | Openeye Scientific Software, Inc. | Secure molecular similarity calculations |
US10057250B2 (en) | 2013-05-14 | 2018-08-21 | Kara Partners Llc | Technologies for enhancing computer security |
US10594687B2 (en) | 2013-05-14 | 2020-03-17 | Kara Partners Llc | Technologies for enhancing computer security |
US9270647B2 (en) | 2013-12-06 | 2016-02-23 | Shape Security, Inc. | Client/server security by an intermediary rendering modified in-memory objects |
US8954583B1 (en) | 2014-01-20 | 2015-02-10 | Shape Security, Inc. | Intercepting and supervising calls to transformed operations and objects |
US9858440B1 (en) * | 2014-05-23 | 2018-01-02 | Shape Security, Inc. | Encoding of sensitive data |
US9003511B1 (en) | 2014-07-22 | 2015-04-07 | Shape Security, Inc. | Polymorphic security policy action |
US9602543B2 (en) | 2014-09-09 | 2017-03-21 | Shape Security, Inc. | Client/server polymorphism using polymorphic hooks |
US9438625B1 (en) | 2014-09-09 | 2016-09-06 | Shape Security, Inc. | Mitigating scripted attacks using dynamic polymorphism |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334951A (zh) * | 1999-01-28 | 2002-02-06 | 保仓丰 | 确保电子信息安全的方法 |
CN1455541A (zh) * | 2002-05-02 | 2003-11-12 | 富士施乐株式会社 | 数据传送方法及系统 |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4316055A (en) | 1976-12-30 | 1982-02-16 | International Business Machines Corporation | Stream/block cipher crytographic system |
US4310720A (en) | 1978-03-31 | 1982-01-12 | Pitney Bowes Inc. | Computer accessing system |
US4814943A (en) * | 1986-06-04 | 1989-03-21 | Oki Electric Industry Co., Ltd. | Printed circuit devices using thermoplastic resin cover plate |
US4841570A (en) | 1987-05-11 | 1989-06-20 | The United States Of America As Represented By The United States Department Of Energy | One-way transformation of information |
JPH0227389A (ja) | 1988-07-15 | 1990-01-30 | Sony Corp | 暗号化方法及び該暗号方法を用いた暗号化装置/復号化装置 |
US5003596A (en) * | 1989-08-17 | 1991-03-26 | Cryptech, Inc. | Method of cryptographically transforming electronic digital data from one form to another |
US5123045A (en) * | 1989-08-18 | 1992-06-16 | Massachusetts Institute Of Technology | Comprehensive software protection system |
RU2091983C1 (ru) | 1993-02-09 | 1997-09-27 | Геннадий Николаевич Чижухин | Способ шифрования двоичной информации и устройство для его осуществления |
NZ336414A (en) | 1993-12-01 | 2000-01-28 | Rpk Nz Ltd | Method of combining serial keystream output to produce encrypted bit stream using pseudorandom permutation and replacing byte(s) of serial keystream |
US5481613A (en) | 1994-04-15 | 1996-01-02 | Northern Telecom Limited | Computer network cryptographic key distribution system |
CA2149067A1 (en) | 1994-06-22 | 1995-12-23 | Joseph Anton Bednar Jr. | User-identification and verification of data integrity in a wireless communication system |
US6125182A (en) | 1994-11-09 | 2000-09-26 | Channel One Communications, Inc. | Cryptographic engine using logic and base conversions |
US5796839A (en) | 1995-10-16 | 1998-08-18 | Sony Corporation | Encryption method, encryption apparatus, recording method, decoding method, decoding apparatus and recording medium |
US5699431A (en) | 1995-11-13 | 1997-12-16 | Northern Telecom Limited | Method for efficient management of certificate revocation lists and update information |
US5608801A (en) | 1995-11-16 | 1997-03-04 | Bell Communications Research, Inc. | Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions |
US5838794A (en) * | 1996-01-11 | 1998-11-17 | Teledyne Electronic Technologies | Method and apparatus for inter-round mixing in iterated block substitution systems |
US5949884A (en) | 1996-11-07 | 1999-09-07 | Entrust Technologies, Ltd. | Design principles of the shade cipher |
JPH10171350A (ja) | 1996-12-10 | 1998-06-26 | Hitachi Ltd | ハッシュ値生成方法および装置 |
US6226629B1 (en) | 1997-02-28 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus determining and using hash functions and hash values |
WO1998047258A2 (en) | 1997-03-10 | 1998-10-22 | Fielder Guy L | Bilateral authentication and encryption system |
EP0966810A2 (en) | 1997-03-10 | 1999-12-29 | Guy L. Fielder | Secure deterministic encryption key generator system and method |
US5995624A (en) | 1997-03-10 | 1999-11-30 | The Pacid Group | Bilateral authentication and information encryption token system and method |
WO1998047259A2 (en) | 1997-03-10 | 1998-10-22 | Fielder Guy L | File encryption method and system |
JPH10271104A (ja) | 1997-03-24 | 1998-10-09 | Hitachi Inf Syst Ltd | 暗号化方法及び復号化方法 |
US6182216B1 (en) | 1997-09-17 | 2001-01-30 | Frank C. Luyster | Block cipher method |
US6012160A (en) | 1997-10-03 | 2000-01-04 | Ericsson Inc. | Method for protecting important data bits using less important data bits |
JPH11122240A (ja) | 1997-10-17 | 1999-04-30 | Fuji Xerox Co Ltd | 復号装置および方法ならびにアクセス資格認証装置および方法 |
US5935200A (en) | 1997-11-21 | 1999-08-10 | Unisys Corporation | Exponential functional relationship generator method and system for implementation in digital logic |
RU2141729C1 (ru) | 1998-01-19 | 1999-11-20 | Государственное унитарное предприятие Специализированный центр программных систем "Спектр" | Способ криптографического преобразования блоков двоичных данных |
US6304890B1 (en) | 1998-02-04 | 2001-10-16 | Matsushita Electric Industrial Co., Ltd. | Exponential calculation device and decoding device |
US6567914B1 (en) * | 1998-07-22 | 2003-05-20 | Entrust Technologies Limited | Apparatus and method for reducing transmission bandwidth and storage requirements in a cryptographic security system |
JP3679936B2 (ja) | 1998-11-27 | 2005-08-03 | 東芝ソリューション株式会社 | 暗復号装置及び記憶媒体 |
CN1109423C (zh) | 1999-02-10 | 2003-05-21 | 河北工业大学 | 排列码加密解密方法及其排列码加密解密器 |
US7743412B1 (en) | 1999-02-26 | 2010-06-22 | Intel Corporation | Computer system identification |
US6609223B1 (en) * | 1999-04-06 | 2003-08-19 | Kencast, Inc. | Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter |
EP1063811B1 (en) | 1999-06-22 | 2008-08-06 | Hitachi, Ltd. | Cryptographic apparatus and method |
TW556111B (en) | 1999-08-31 | 2003-10-01 | Toshiba Corp | Extended key generator, encryption/decryption unit, extended key generation method, and storage medium |
AU2610701A (en) * | 2000-01-03 | 2001-07-16 | Efeckta Technologies Corporation | Efficient and lossless conversion for transmission or storage of data |
US20010031050A1 (en) | 2000-02-14 | 2001-10-18 | Lateca Computer Inc. N.V. | Key generator |
WO2001082524A1 (en) | 2000-04-20 | 2001-11-01 | Matchett Noel D | Cryptographic system for data encryption standard |
US7174014B2 (en) * | 2000-05-05 | 2007-02-06 | Teleputers, Llc | Method and system for performing permutations with bit permutation instructions |
CN1193537C (zh) * | 2000-07-04 | 2005-03-16 | 皇家菲利浦电子有限公司 | 将输入数据块加密转换成输出数据块的方法和系统 |
JP2002185443A (ja) | 2000-12-11 | 2002-06-28 | Hitachi Ltd | 秘密鍵管理方法 |
DE60133266T2 (de) | 2001-05-03 | 2009-04-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Verfahren und Vorrichtung zum Schutz der Datenintegrität |
ATE465571T1 (de) | 2001-08-13 | 2010-05-15 | Univ Leland Stanford Junior | Systeme und verfahren zur verschlüsselung auf identitätsbasis und damit zusammenhängende kryptografische techniken |
JP2003143120A (ja) | 2001-11-07 | 2003-05-16 | Matsushita Electric Ind Co Ltd | データ攪拌回路とデータ攪拌方法 |
JP2003187190A (ja) * | 2001-12-19 | 2003-07-04 | Hitachi Ltd | Icカード管理システム |
US7236592B2 (en) * | 2002-02-01 | 2007-06-26 | International Business Machines Corporation | Efficient stream cipher system and method |
US7464265B2 (en) | 2002-05-03 | 2008-12-09 | Microsoft Corporation | Methods for iteratively deriving security keys for communications sessions |
US7131003B2 (en) * | 2003-02-20 | 2006-10-31 | America Online, Inc. | Secure instant messaging system |
KR20040068499A (ko) | 2003-01-24 | 2004-07-31 | 마쯔시다덴기산교 가부시키가이샤 | 공유키 교환방법과 통신기기 |
JP2005004048A (ja) | 2003-06-13 | 2005-01-06 | Oki Electric Ind Co Ltd | 鍵拡張装置、鍵拡張方法および鍵拡張プログラム |
US20050147244A1 (en) | 2003-12-30 | 2005-07-07 | Alexander Moldovyan | Method for cryptographic transformation of binary data blocks |
US7447233B2 (en) * | 2004-09-29 | 2008-11-04 | Intel Corporation | Packet aggregation protocol for advanced switching |
-
2004
- 2004-08-12 US US10/918,717 patent/US8077861B2/en not_active Expired - Fee Related
-
2005
- 2005-08-09 CN CN2005800346085A patent/CN101040474B/zh not_active Expired - Fee Related
- 2005-08-10 TW TW094127160A patent/TWI386005B/zh not_active IP Right Cessation
-
2007
- 2007-02-12 TN TNP2007000055A patent/TNSN07055A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334951A (zh) * | 1999-01-28 | 2002-02-06 | 保仓丰 | 确保电子信息安全的方法 |
CN1455541A (zh) * | 2002-05-02 | 2003-11-12 | 富士施乐株式会社 | 数据传送方法及系统 |
Non-Patent Citations (2)
Title |
---|
A.A.Moldovyan etc.A Cipher Based on Data-Dependent Permutations.《Journal of CRYPTOLOGY》.2002,第15卷(第1期),第61-72页. * |
M.Kwan.The Design of the ICE Encryption Algorithm.《Fast Software Encryption》.1997,第69-82页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101040474A (zh) | 2007-09-19 |
US20060034455A1 (en) | 2006-02-16 |
TNSN07055A1 (en) | 2008-06-02 |
TW200620943A (en) | 2006-06-16 |
US8077861B2 (en) | 2011-12-13 |
TWI386005B (zh) | 2013-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101040474B (zh) | 为提高安全性的置换数据变换 | |
CN102868518A (zh) | 为提高安全性的置换数据变换 | |
AU702766B2 (en) | A non-deterministic public key encryption system | |
US8180048B2 (en) | Method and system for computational transformation | |
WO2004032098A1 (ja) | 疑似乱数発生方法及び疑似乱数発生器 | |
US20160013933A1 (en) | Order-preserving encryption system, device, method, and program | |
US8090097B2 (en) | Device, system and method for cryptographic key exchange | |
Agrawal et al. | Elliptic curve cryptography with hill cipher generation for secure text cryptosystem | |
Saarinen | The BlueJay ultra-lightweight hybrid cryptosystem | |
RU2411666C1 (ru) | Способ шифрования | |
CN102246456A (zh) | 用于对抗对基于循环群的加密的侧通道攻击的系统和方法 | |
US8098815B2 (en) | Device, system and method for cryptographic key exchange | |
US20220417012A1 (en) | Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product | |
WO2018011825A1 (en) | Encryption and decryption of messages | |
Back | The RSA Algorithm and PGP | |
Almeida | SHADOW NUMBERS PUBLIC KEY ENCRYPTION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1108984 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1108984 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130814 Termination date: 20170809 |