CN101040474A - 为提高安全性的置换数据变换 - Google Patents

为提高安全性的置换数据变换 Download PDF

Info

Publication number
CN101040474A
CN101040474A CNA2005800346085A CN200580034608A CN101040474A CN 101040474 A CN101040474 A CN 101040474A CN A2005800346085 A CNA2005800346085 A CN A2005800346085A CN 200580034608 A CN200580034608 A CN 200580034608A CN 101040474 A CN101040474 A CN 101040474A
Authority
CN
China
Prior art keywords
section
data
key
bit
result
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
Application number
CNA2005800346085A
Other languages
English (en)
Other versions
CN101040474B (zh
Inventor
伊凡·布杰勒·戴姆格德
托本·普莱德·佩得森
文森特·瑞吉门
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CMLA LLC
Original Assignee
CMLA LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US10/918,103 external-priority patent/US7564970B2/en
Priority claimed from US10/918,718 external-priority patent/US7577250B2/en
Application filed by CMLA LLC filed Critical CMLA LLC
Priority claimed from PCT/US2005/028316 external-priority patent/WO2006023334A2/en
Publication of CN101040474A publication Critical patent/CN101040474A/zh
Application granted granted Critical
Publication of CN101040474B publication Critical patent/CN101040474B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating 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

基于数据输入(1030)中的另外一些比特,数据变换置换了数据输入(1005)中的一些比特。另一个数据变换自乘数据输入(1120)的一段至另一段的一个函数的幂次,此幂次与预先定义的模数(1115)的函数互素。随后此模数应用于结果(1125),汇编(113)变换了的数据。在密钥导出应用中,主密钥的一段被打乱成散列(1145)。两个数字自主密钥(1420)的另一段导出。通用散列函数应用于打乱成散列的结果(1430),自其中选择比特作为导出密钥(1435)。在另一个实施方式中,编码的计数器与主密钥的段(1510)组合。随后结果被打乱成散列(1520),自其中选择比特作为导出密钥(1525)。

Description

为提高安全性的置换数据变换
技术领域
本发明涉及数据安全,特别涉及置换数据变换以提高安全性。
背景技术
几千年来,人们发现有必要进行保密。但对于历史的大部分时期,保密技术发展的很缓慢。据推测只为Julius Caesar自己使用的凯撒移位密码包括取出一个字母并通过字母表将其向前移动以隐藏消息。这样,“A”变成了“D”,“B”变成了“E”,以此类推。虽然通常认为这种加密算法是一个很弱的加密,但直到最近的几个世纪,几乎没开发出更好的加密算法。
在两次世界大战中,加密成为强力研究的焦点。在开发敌人无法破译的码以及在研究如何读懂敌人的加密信件这两个方面花费了很多力气。设计出了机械设备以帮助加密。这些机器中最著名的一个是德国的恩尼格玛(Enigma)机器,虽然恩尼格玛决不是那个时代唯一的机械加密机器。
计算机的问世大大地改变了加密使用的状况。不再需要复杂的机器或数小时的手工劳动,计算机能够以高速加密和解密信息且成本很低。依据计算机的数学的理解也引入了新的加密算法。迪菲(Diffie)和赫尔曼(Hellman)的工作导致了一种利用指数算术的模素数来交换密钥的方式,并依赖于这样的事实,即计算给定公共信息的共享密钥在计算上是不可行的。流行的RSA算法(以其发明者:R.Rivest、A.Shamir、和L.Adleman命名)依赖的事实是将大数分解为因式同样在计算上是不可行的,不能解密被加密的数据。迪菲和赫尔曼的工作以及RSA算法可以在理论上被破译,但破译这些算法依赖于解决待解决的数学问题。(顺便说明,RSA算法也是最早的公开密钥的密码系统之一,它利用不同的密钥解密而不是用密钥加密。这使得公开分配密钥而不丧失安全性成为可能)。
然而,没有一种加密算法有无限的生命跨度。例如,DES(数据加密标准)最初于1976年发布。政府最初估计其寿命为10年。DES持续了长于最初估计的寿命跨度的时间,但由于其相对短的密钥,认为DES短于理想寿命。由此DES被AES(高级加密标准)取代并作为政府标准,但DES仍广泛使用。有许多对DES的改进,但这些改进不能保证DES永远安全。最终,DES将被认为是不可靠的。
仍旧需要一种方法来加强现有加密算法的安全性。
发明内容
在一个实施方式中,本发明是用于置换数据变换的方法和装置。数据被分割成两段。在第一段中的比特控制对第二段中的比特组的置换函数的应用。变换的数据包括第一段、和第二段的置换的组。
在第二个实施方式中,本发明是用于指数数据变换的方法和装置。数据被分为两段。自乘第二段到第一段的函数的次幂。将一模数应用于此结果。变换的数据包括第一段和按该模数取模的余数。
在第三个实施方式中,本发明是用于从主密钥形成密钥导出的方法和装置。在一个实施方式中,主密钥的一部分被打乱成散列。从主密钥的另一部分中得到两个数字。使用这两个数字,将通用散列函数应用于所述散列的结果,从中选择比特作为导出密钥。
在第四个实施方式中,使用编码的计数器,将通用散列函数应用到部分主密钥上,并组合所得结果。所组合的结果随即被打乱成散列,从中选择比特作为导出密钥。
参考所附图形,本发明的上述及其它特征、目的和优点将自下面的详细描述中变得更加明显。
附图说明
图1显示了自主密钥匙生成导出密钥的安全散列算法的总体实施方案。
图2显示了图1的安全散列算法的典型操作。
图3显示了通用散列算法的典型操作。
图4显示了按照本发明的一个实施方式的将安全散列算法和图1的通用散列算法相结合以生成更安全的导出密钥的不同方式。
图5显示了按照本发明的一个实施方式的一台服务器和一个能够执行数据变换、密钥生成、密钥包装和数据加密的设备。
图6显示了按照本发明的一个实施方式的通过利用数据变换器并结合密钥包装器、密钥导出器、或加密函数来提高安全性的数据安全设备。
图7A-7B显示了按照本发明的一个实施方式的使用图6的数据安全设备的流程图。
图8显示了按照本发明的一个实施方式的图5和6的数据变换器的详细情况。
图9显示了按照本发明的一个实施方式的图5和6的数据变换器的详细情况。
图10A-10C显示了按照本发明的一个实施方式的使用图8的数据变换器的流程图。
图11显示了按照本发明的一个实施方式的使用图9的数据变换器的流程图。
图12显示了按照本发明的一个实施方式的图5和6的密钥导出功能的细节。
图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。
与一般的散列算法不同,一般的散列算法可使用任何希望的映射以映射输入至篮,安全散列算法是不可预知的(有时也叫做无碰撞的):已知一个输入产生一个特定输出,这不能给出关于如何找到另一个能产生同样输出的输入的任何信息。例如,知道输入“5”映射到篮215不能帮助我们找到也映射篮215的任何输入值。事实上,对一些特定的散列算法,没有映射篮215的其它输入。这正是使安全散列算法110“安全”的原因:没有简单的方法可找到映射希望输出的另一个输入。找到映射到特定输出的另一个输入的唯一方式是试验不同的输入,以期望找到映射到希望输出的另一个值。
安全散列算法的缺点是篮不能都被相等地映射。换句话说,可能只有一个映射到篮215的输入,但映射到篮205的输入可能有100个。且如上所述,一些篮可能没有映射到它们的输入。
通用的散列算法提供了分布特征,这些分布特征是安全散列算法缺失的。如图3所示,通用散列算法305也映射输入至篮310、315、320直至325。但与图2的安全散列算法不同,通用的散列算法305分配其输入均匀穿过篮。这样,篮310以与篮315、320、325等一样的频率被映射,并依此类推。
通用散列算法的缺点是很容易找到映射到同一个篮的其他输入。例如,考虑通用散列算法,其映射到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可用于加密(即包装)密钥。即使是通过不安全的连接,此时经充分保护的密钥也可以被传输至其它的机器,其中,密钥可以是未包装的(解密的)并用于数据加密/解密。
通常,包装的密钥是与秘密密钥、或对称的、密码系统一起使用的密钥,其用公开密钥或不对称的、密码系统包装。在秘密密钥密码系统中,同样的密钥用于加密和解密,这与使用不同的密钥来加密和解密的公开密钥密码系统相反。例如,DES和AES是秘密密钥密码系统;RSA是公开密钥密码系统。公开密钥密码系统使安全地分布密钥(不用担心密钥被截取并为第三方用于解密秘密信息)成为可能,但与秘密密钥密码系统相比,公开密钥密码系统通常实施起来比较慢并导致较长的信息。显然,为使用公开密钥密码系统包装密钥,服务器505需要知道包装的密钥要传递至哪个设备的公开密钥。但本领域技术人员应认识到,可使用任何加密算法来包装密钥,待包装的密钥可用于任何类型的密码系统。
加密功能部件525用于加密数据。通常,使用密钥来加密数据,而使用密钥包装功能部件520来包装密钥,当然,本领域技术人员应认识到,可使用任何密钥来加密数据,数据可以是任何希望被加密的数据,并且可使用任何希望的加密功能部件。
图5还显示了按照本发明的一个实施方式能够完成数据变换、密钥包装、和数据加密的设备530。尽管设备530看上去象个人数字助理(PDA),本领域技术人员应认识到,设备530和服务器550一样可以是使用安全算法的任何设备。因此,例如设备530可以是与服务器505(可以是一台本质上不是服务器的普通计算机)交换文件的一台计算机(比如台式计算机或笔记本计算机)。或者,设备530可以是数字介质设备:比如,为使用者呈现数字内容,通过服务器505提供内容给设备530。可替代地,设备530可以接收来自任何合法源头的内容,服务器505规定了关于所说内容对设备530授予的权力。或者,设备530可以是软件,可完成存储在一些介质中并为如计算机的通用机器所使用的一些功能。在此变化中,使设备530成为图5所示的系统的一部分比较少地依赖于设备530的硬件,而更多地依赖于由设备530执行的软件。本领域的技术人员应认识到,软件可以完成任何期望的功能,而且软件可以存储在任何合适的介质上,比如软盘、任何种类的压缩盘(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进一步讨论。合成器620负责合成数据块,在数据变换后,一起送回用于合适的安全功能的应用。可使用的各种的安全功能部件,包括密钥导出功能部件51 5、密钥包装功能部件520、或加密功能部件525。最后,在变换和/或应用安全功能之后,输出端口625输出数据。
值得注意的是,虽然一般分割器615可将数据拆成块使其符合数据变换算法的大小,但这并不是必要的。因此,分割器615将数据拆成的块可以小于或大于对数据变换器510的期望的输入。如果分割器615将数据拆成的块比数据变换器510期望的小,则添加数据使其足够大;如果分割器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比特组。但本领域的技术人员应认识到,数据可以是任何长度,且数据可以分割成任何期望长度的组,即使不同的组长度不同。最后,如果单个组总是要进行置换,则包括控制置换组应用的比特的第一段可以省略。
如果数据变换器510支持接收不可预知大小的数据(而不是假定数据总是固定大小),则分割器810可以不能把数据划分成合适的比特组。可使用微调器815用额外的比特添凑所说数据,以使数据具有可适当分割的合适长度。
在一个实施方式中,置换函数的应用由第一段的比特来控制:如果在第一段中的相应比特置位,则使用特定的置换函数来置换比特组。例如,如果相应的比特的值为1,则利用合适的置换函数置换相应的组;如果相应的比特的值为0,则不置换相应组。可选择地,如果相应比特的值为0,则相应比特组可看成已利用恒等置换函数已置换了。置换函数也可以做成索引;如果置换函数的号码匹配第二段中比特组的数目(并因此匹配第一段中的比特的数目),则单个索引可识别三个相应的单元:在第一段中的一个比特、在第二段中的一个比特组、和应用于这个比特组的置换函数。
置换器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的置换函数而得到的数据变换容易反向。表2显示的置换函数为表1置换函数的逆。
表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,散列装置1225、判定器1230、计算器1235、和比特选择器1240。
分割器1215将主密钥分割成两部分。组合器组合主密钥的第一部分与一个计数器,其可以是输入数据的一部分。将主密钥和计数器结合的一种方式是将主密钥的第一部分与计数器接合(concatenate),其可以是任意大小(如4字节)。此接合可以以任一次序执行:即,主密钥的第一部分或计数器都可在组合的前部。组合的结果随即使用散列函数1225被打乱成散列,其可以是安全散列函数。(在此实施方式中,散列函数1225代替了图4的序列405中的安全散列算法110。)
判定器1230用于确定来自主密钥第二部分的两个数字。在一个实施方式中,这两个数字,a和b,确定作为主密钥第二部分的第一和最后32字节,模素数p。以此方式选择a和b要求主密钥对于主密钥64字节长的第二部分来说具备足够大的长度。但本领域的技术人员应认识到,主密钥不是必须有这么长。例如,如果计算a和模p的b充分地改变了a和b的比特,a和b可以这样的方式选择:即它们的原始比特在主密钥的第二部分内重叠。
对于素数的一个特定选择可以是p192=2192-264-1,虽然本领域技术人员应认识到也可选择其它素数。计算器1235可实施(ax+b)mod p的通用散列函数,其中x是散列装置1225的结果。(此通用散列函数代替了图4的序列405中的通用散列算法305)。最后,比特选择器1240为导出密钥自通用散列函数的结果选择比特,这些比特可作为输出。例如,比特选择器1240可选择通用散列函数的结果的最低有效比特(the least significantbits)作为导出密钥。
图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,则u个导出密钥都可以自m*l个结果比特中同时选择。例如,m*l个结果比特可以都接合在一起;第一个密钥可选作头k个比特,第二个密钥可选作第二k个比特,依此类推直至所有u个密钥被选择。
下面的讨论是为了提供对合适机器的简要的总体描述,其中将实施本发明的一些方面。通常,该机器包括一条系统总线,它连接于处理器、诸如随机存取存储器(RAM)、只读存储器(ROM)或其它状态保存介质的存储器、存储设备、视频接口、和输入/输出端口。通过来自传统输入设备如键盘、鼠标等的输入,也可以通过自另一个机器接收的指示、与虚拟现实(VR)环境、生物测定反馈、或其它输入信号的交互作用,可以至少部分地控制该机器。在此使用的术语“机器”广泛地包括单个机器、或与共同操作的机器或设备通信连接的系统。机器的实例包括计算设备,如个人计算机、工作站、服务器、便携式计算机、手提设备、电话、图形输入板等等,还包括运输设备,如个人或公共运输设备象汽车、火车、出租车等等。
该机器可包括嵌入式控制器,如可编程或不可编程逻辑设备或阵列、专用集成电路、嵌入式计算机、智能卡及类似物。该机器可使用一个或多个连接与一个或多个远端机器相连,如通过网络接口、调制解调器、或其它通信连接。借助于物理的和/或逻辑的网络,如企业内部互联网、互联网、局域网、广域网等等,机器可以互连。本领域技术人员应认识到网络通信可使用多种有线和/或无线短程或远程载波和协议,包括射频(RF)、卫星、微波、IEEE(美国电气及电子工程师学会)802.11、蓝牙、光学的、红外线、电缆、激光等等。
通过参考或结合相关数据如函数、程序、数据结构、应用程序等等可描述本发明,上述内容由机器访问时使机器完成任务或定义抽象数据类型或低级硬件语境。相关数据可存储在如易失性和/或非易失性存储器象RAM、ROM等中,或存储在其它存储设备和其相关存储介质中,包括硬盘、软盘、光存储器、磁带、闪存、内存条、数字视频盘、生物存储器等等。相关数据也可以在传输环境上传送,包括物理和/或逻辑网络,形式为信息包、串行数据、并行数据、传输信号等等,而且数据可以按压缩的或加密的形式使用。相关数据可用于分布式环境,并可为机器的访问进行本地或远端存储。
虽然参考列举出的实施方式已描述并说明了本发明的原理,但应认识到,对于列举出的实施方式可以在设置和细节上进行改动,而未偏离本发明的这些原则。虽然上面的讨论集中在特定的实施方式,但也可预期其它的配置。具体来说,即使在此使用了诸如“在一个实施方式中”或类似的表述,这些词语指通常参考实施方式的可能性,而不意味着将本发明限制于特定的实施方式的配置。这里使用的这些词语可参考相同或不同的实施方式,这些实施方式可与其它实施方式组合。
因而,从在此描述的实施方式的广泛多样的变化的角度看,此详细描述和所附材料仅仅是说明性的,而不应看作是对本发明的范围的限制。因此,本发明所要求的权利是所有这些改动,它们都包含在下述权利要求及其等同物的范围和精神内。

Claims (144)

1.一种数据变换器,包括:
一输入端口,用于接收数据;
一分割器,用于将所述数据分割成第一段和第二段并将所述第二段分割成至少一个组;
一置换器,包括置换函数的实现部分,按照在所述第一段中的对应比特将至少一个所述组置换成置换的组;和
一输出端口,用于将所述第一段和至少所述置换的组作为变换的数据输出。
2.如权利要求1所述的数据变换器,其中,所述分割器可操作分割所述第二段成组,以使在所述第二段中的所述组的数目等于在所述第一段中的比特的数目。
3.如权利要求1所述的数据变换器,其中,所述分割器可操作分割所述第二段成所述组,每个所述组有预先确定的大小。
4.如权利要求3所述的数据变换器,其中所述分割器包括一个用于添凑所述第二段的微调器,以便每个所述组有所述预先确定的大小。
5.如权利要求1所述的数据变换器,其中所述置换器包括至少两个置换函数的实现部分。
6.如权利要求5所述的数据变换器,其中置换函数的数目等于在所述第二段中的所述组的数目。
7.如权利要求6所述的数据变换器,其中所述置换器可操作按照在所述第一段中的所述对应比特对每个所述组利用所述置换函数之一进行置换。
8.如权利要求5所述的数据变换器,其中所述置换函数的实现部分包括:
基本置换函数的实现部分;和
所述基本置换函数的幂次的实现部分。
9.一数据安全设备,包括:
一数据变换器,包括:
一输入端口,用于接收数据;
一分割器,用于将所述数据分割成第一段和第二段并将所述第二段分割成至少两个组,每个组有预先确定的大小,以便在所述第二段中的组的数目等于在所述第一段中的比特的数目;
一置换器,包括置换函数的实现部分,按照在所述第一段中的对应比特将至少一个所述组置换成置换的组;和
一输出端口,用于将所述第一段和至少所述置换的组作为变换数据输出;和
一安全算法的实现部分,用于保护所述变换的数据。
10.如权利要求9所述的数据安全设备,其中:
所述数据包括一个主密钥;和
所述安全算法的实现部分包括密钥导出功能的实现部分,以利用所述变换的数据来生成所述主密钥的导出密钥。
11.如权利要求9所述的数据安全设备,其中:
所述数据包括待包装的密钥;和
所述安全算法的实现部分包括密钥包装功能的实现部分,以包装所述变换的数据。
12.如权利要求11所述的数据安全设备,其中所述密钥包装功能的实现部分包括RSA的实现部分,以包装所述变换的数据。
13.如权利要求9所述的数据安全设备,其中所述安全算法的实现部分包括加密算法的实现部分,以使用所述变换的数据来加密所述数据。
14.如权利要求13所述的数据安全设备,其中所述安全算法的实现部分包括AES的实现部分,以使用所述变换的数据来加密所述数据。
15.如权利要求9所述的数据安全设备,进一步包括一第二分割器,所述第二分割器将输入分割成至少两块,所述数据变换器可在每个块上分别操作。
16.如权利要求15所述的数据安全设备,其进一步包括一组合器,以将每块上的数据变换器的结果组合成待通过所述安全算法的实现部分来保护的单个的变换的数据。
17.如权利要求9所述的数据安全设备,其中所述置换器包括至少两个置换函数的实现部分,置换函数的数目等于所述第二段中的所述组的数目。
18.如权利要求17所述的数据安全设备,其中所述置换器可操作按照在所述第一段中的所述对应比特利用所述置换函数之一来置换每个所述组。
19.如权利要求17所述的数据安全设备,其中所述置换函数的实现部分包括:
基本置换函数的实现部分;和
所述基本置换函数的幂次的实现部分。
20.一种用于生成数据变换的方法,包括:
接收数据;
将所述数据分割成第一段和第二段,所述第一段和第二段的每一个包括至少一个比特;
组织在所述第二段中的比特成至少一个组;
关联每个所述组与所述第一段中的一个比特;
按照所述第一段中的所述关联的比特,应用置换函数于所述组中的至少一个;和
自所述第一段和至少所述置换的组构建所述数据变换。
21.如权利要求20所述的方法,其中所述组织在所述第二段中的所述比特的步骤包括组织所述第二段中的所述比特成多个组,组的数目等于所述第一段中的比特的数目。
22.如权利要求20所述的方法,其中所述组织所述比特的步骤包括组织所述第二段中的所述比特成至少两个组,每个组有同样数目的比特。
23.如权利要求22所述的方法,其中所述组织所述比特的步骤包括添凑数据以便所述第二段可以被组织成所述组,每个所述组包括相同数目的比特。
24.如权利要求20所述的方法,进一步包括定义所述置换函数。
25.如权利要求24所述的方法,其中所述定义所述置换函数的步骤包括定义多个置换函数,所述置换函数的数目等于所述组的数目。
26.如权利要求25所述的方法,其中所述应用置换函数的步骤包括按照所述第一段中的所述对应比特,应用不同的置换函数至每个所述组。
27.如权利要求26所述的方法,其中:
所述定义多个置换函数的步骤包括为每个所述置换函数分配一个索引;和
所述应用不同的置换函数的步骤包括用所述索引来选择所述置换函数,所述索引对应于与所述组关联的所述第一段中的比特的数字。
28.如权利要求25所述的方法,其中所述定义多个置换函数的步骤包括:
定义一个基本置换函数;和
定义各余下的置换函数作为所述基本置换函数的幂次。
29.一种用于加强数据安全的方法,包括:
变换所述数据,包括:
接收数据;
将所述数据分割成第一段和第二段,所述第一段和第二段的每一个包括至少一个比特;
组织在所述第二段中的比特成多个组,组的数目等于所述第一段中比特的数目;
关联每个所述组与所述第一段中的一个比特;
按照所述第一段中的所述关联的比特,应用置换函数于所述组中的至少一个;和
自所述第一段和至少所述置换的组构建所述数据变换;和应用安全算法的实现过程于所述数据变换以保护所述数据变换。
30.如权利要求29所述的方法,其中:
所述接收所述数据的步骤包括接收主密钥,自所述主密钥生成导出密钥;和
所述应用安全算法的实现过程的步骤包括应用密钥导出功能的实现过程于所述数据变换以生成所述主密钥的所述导出密钥。
31.如权利要求30所述的方法,其中所述应用密钥导出功能的实现过程的步骤包括:
组合所述变换数据和编码的计数器以生成组合的结果;
安全地打乱所述组合的结果以产生散列;和
在所述散列中选择比特的一子集作为所述导出密钥。
32.如权利要求30所述的方法,其中:
所述变换所述数据的步骤进一步包括组合所述主密钥和计数器以产生所述数据;和
所述应用密钥导出功能的实现过程的步骤包括:
安全地打乱所述变换数据以产生一散列;和
在所述散列中选择比特的一子集作为所述导出密钥。
33.如权利要求29所述的方法,其中:
所述接收所述数据的步骤包括接收待包装的密钥作为所述数据;和
所述应用安全算法的实现过程的步骤包括应用密钥包装功能的实现过程至所述数据变换以包装所述密钥。
34.如权利要求33所述的方法,其中所述应用密钥包装功能的实现过程的步骤包括将RSA的实现过程应用于所述数据变换以包装所述密钥。
35.如权利要求29所述的方法,其中所述应用安全算法的实现过程的步骤包括应用加密算法的实现过程利用所述数据变换作为密钥以加密所述数据。
36.如权利要求35所述的方法,其中所述应用加密算法的实现过程的步骤包括应用AES的实现过程利用所述数据变换作为所述密钥以加密所述数据。
37.如权利要求29所述的方法,其中所述组织所述比特的步骤包括组织所述第二段中的所述比特成多个组,组的数目等于所述第一段中的比特数目,每组有同样数目的比特。
38.如权利要求29所述的方法,其进一步包括定义所述置换函数。
39.如权利要求38所述的方法,其中所述定义所述置换函数的步骤包括定义多个置换函数,所述置换函数的数目等于所述组的数目。
40.如权利要求39所述的方法,其中所述定义多个置换函数的步骤包括:
定义一个基本置换函数;和
定义各余下的置换函数作为所述基本置换函数的幂次。
41.如权利要求29所述的方法,进一步包括:
将输入分割成至少两块,分别变换各块;和
组合每块上的所述数据变换的结果成待通过应用所述安全算法的实现过程来保护的单个的变换的数据。
42.一数据变换器,包括:
一输入端口,用于接收包含多个比特的数据;
一分割器,用于将所述数据分割成第一段和第二段;
一计算器,用于利用所述第一段、所述第二段、和预先定义的模数来计算所述数据的指数置换;和
一输出端口,用于将所述第一段和所述指数置换作为变换的数据输出。
43.如权利要求42所述的数据变换器,其中所述计算器包括第一公式的实现部分,以计算幂次作为所述第一段的函数,所述幂次与所述预先定义的模数的函数互素。
44.如权利要求43所述的数据变换器,其中所述计算器进一步包括第二公式的实现部分,以计算自乘所述第二段的函数至所述幂次的结果。
45.如权利要求44所述的数据变换器,其中所述计算器进一步包括第三公式的实现部分,以所述结果按所述预先定义的模数取模的方式,计算所述指数置换。
46.一种数据安全设备,包括:
一数据变换器,包括:
一输入端口,用于接收包含多个比特的数据;
一分割器,用于将所述数据分割成第一段和第二段;
一计算器,用于利用所述第一段、所述第二段、和预先定义的模数来计算所述数据的指数置换,包括:
第一公式的实现部分,用于计算幂次作为所述第一段的函数,所述幂次与所述预先定义的模数的函数互素;
第二公式的实现部分,用于计算自乘所述第二段的函数至所述幂次的结果;和
第三公式的实现部分,用于以所述结果按所述预先定义的模数取模的方式,计算所述指数置换;和
一输出端口,用于将所述第一段和所述指数置换作为变换的数据输出;和
安全算法的实现部分,用于保护所述变换的数据。
47.如权利要求46所述的数据安全设备,其中:
所述数据包括一个主密钥;和
所述安全算法的实现部分包括密钥导出功能的实现部分,以利用所述变换的数据来生成所述主密钥的导出密钥。
48.如权利要求46所述的数据安全设备,其中:
所述数据包括一个待包装的密钥;和
所述安全算法的实现部分包括密钥包装功能的实现部分,以包装所述变换的数据。
49.如权利要求48所述的数据安全设备,其中所述密钥包装功能的实现部分包括RSA的实现部分,以包装所述变换的数据。
50.如权利要求46所述的数据安全设备,其中所述安全算法的实现部分包括加密算法的实现部分,以使用所述变换的数据作为密钥来加密所述数据。
51.如权利要求50所述的数据安全设备,其中所述安全算法的实现部分包括AES的实现部分,以使用所述密钥来加密所述数据。
52.如权利要求46所述的数据安全设备,进一步包括一个第二分割器,所述第二分割器将输入分割成至少两块,所述数据变换器可在每个块上分别操作。
53.如权利要求52所述的数据安全设备,进一步包括一组合器,以将每块上的数据变换器的结果组合成待通过所述安全算法的实现部分来保护的单个的变换的数据。
54.一种用于生成数据变换的方法,包括:
接收数据,所述数据包括多个比特;
将所述数据分割成第一段和第二段,所述第一段和所述第二段的每一个包括至少一个比特;
利用所述第一段、所述第二段、和预先定义的模数来计算指数置换;和
自所述第一段和所述指数置换构建所述数据变换。
55.如权利要求54所述的方法,其中所述计算指数置换的步骤包括计算幂次作为所述第一段的函数,所述幂次与所述预先定义的模数的函数互素。
56.如权利要求55所述的方法,其中所述计算指数置换的步骤进一步包括计算自乘所述第二段的函数至所述幂次的结果。
57.如权利要求56所述的方法,其中所述计算指数置换的步骤进一步包括以所述结果按所述预先定义的模数取模的方式,计算所述指数置换。
58.一种用于加强数据安全的方法,包括:
变换所述数据,包括:
接收数据,所述数据包括多个比特;
将所述数据分割成第一段和第二段,第一段和第二段的每一个包括至少一个比特;
计算幂次,作为所述第一段的函数,所述幂次与预先定义的模数的函数互素;
计算自乘所述第二段的函数至所述幂次的结果;
以所述结果按所述预先定义的模数取模的方式,计算指数置换;和
自所述第一段和所述计算的指数置换构建所述数据变换;和
应用安全算法的实现过程于所述数据变换以保护所述数据变换。
59.如权利要求58所述的方法,其中:
所述接收所述数据的步骤包括接收主密钥,自所述主密钥会生成导出密钥;和
所述应用安全算法的实现过程的步骤包括应用密钥导出功能的实现过程于所述数据变换以生成所述主密钥的所述导出密钥。
60.如权利要求59所述的方法,其中所述应用密钥导出功能的实现过程的步骤包括:
组合所述变换的数据和编码的计数器以生成组合的结果;
安全地打乱所述组合的结果以产生散列;和
在所述散列中选择比特的一子集作为所述导出密钥。
61.如权利要求58所述的方法,其中:
所述接收所述数据的步骤包括接收待包装的密钥作为所述数据;和
所述应用安全算法的实现过程的步骤包括应用密钥包装功能的实现过程以包装所述数据变换。
62.如权利要求61所述的方法,其中所述应用密钥包装功能的实现过程的步骤包括应用RSA的实现过程以包装所述数据变换。
63.如权利要求58所述的方法,其中所述应用安全算法的实现过程的步骤包括应用加密算法的实现过程利用所述数据变换作为密钥以加密所述数据。
64.如权利要求63所述的方法,其中所述应用加密算法的实现过程的步骤包括应用RSA的实现过程利用所述数据变换作为所述密钥以加密所述数据。
65.如权利要求63所述的方法,进一步包括:
将输入分割成至少两块,分别变换每块;和
组合每块上的所述数据变换的结果成待通过应用所述安全算法的实现过程来保护的单个的变换的数据。
66.一种设备,包括:
一接收主密钥的输入端口;
一通用散列算法的实现部分;
一散列算法的实现部分;
一利用所述通用散列算法和所述散列算法的实现部分自所述主密钥生成导出密钥的生成装置;和
一输出所述导出密钥的输出端口。
67.如权利要求66所述的设备,其中所述通用散列算法的实现部分包括:
一分割器,用于将所述主密钥分割成第一段和第二段;
一重复器,用于重复所述计数器以形成编码的计数器作为较长的比特模式;
一第一按位操作的二进制函数的实现部分,其可在所述第一段和所述编码的计数器上操作以生成第一结果;
一第二按位操作的二进制函数的实现部分,其可在所述第二段和所述编码的计数器上操作以生成第二结果;和
一组合器,用于组合所述第一结果、所述第二结果、和所述编码的计数器以产生所述结果。
68.如权利要求66所述的设备,其中:
所述设备进一步包括一个用于将所述主密钥分割成第一段和第二段的分割器;
所述散列算法的实现部分包括:
一组合器,用于将所述第一段与所述计数器组合以生成一个修改的第一段;和
一散列形成装置,用于利用所述散列算法的实现部分来打乱所述修改的第一段成为一散列值;和
所述通用散列算法的实现部分包括:
一判定器,用于自所述第二段确定一个第一数字和一个第二数字;
一计算器,其包括数学公式的实现部分以利用所述散列值、所述第一数字、和所述第二数字计算结果;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥。
69.如权利要求66所述的设备,其中所述生成装置包括:
利用所述主密钥使用所述通用散列算法的实现部分来产生结果的结果产生装置;和
利用所述结果和计数器使用所述散列算法的实现部分来产生所述导出密钥的导出密钥产生装置。
70.如权利要求69所述的设备,其中所述通用散列算法的实现部分包括:
一分割器,用于将所述主密钥分割成第一段和第二段;
一重复器,用于重复所述计数器以形成编码的计数器作为较长的比特模式;
一第一按位操作的二进制函数的实现部分,其可在所述第一段和所述编码的计数器上操作以生成第一结果;
一第二按位操作的二进制函数的实现部分,其可在所述第二段和所述编码的计数器上操作以生成第二结果;和
一组合器,用于组合所述第一结果、所述第二结果、和所述编码的计数器以产生所述结果。
71.如权利要求66所述的设备,其中所述生成装置包括:
利用所述主密钥和计数器使用所述散列算法的实现部分来产生结果的结果产生装置;和
利用所述结果使用所述通用散列算法的实现部分来产生所述导出密钥的导出密钥产生装置。
72.如权利要求71所述的设备,其中:
所述设备进一步包括一个用于将所述主密钥分割成第一段和第二段的分割器;
使用所述散列算法的实现部分的所述结果产生装置包括:
一组合器,用于将所述第一段与所述计数器结合以生成一个修改的第一段;和
一散列形成装置,用于使用所述散列算法的实现部分来打乱所述修改的第一段成散列值;和
使用所述通用散列算法的实现部分的所述导出密钥产生装置包括:
一判定器,用于自所述第二段确定一个第一数字和一个第二数字;
一计算器,包括数学公式的实现部分以利用所述散列值、所述第一数字、和所述第二数字计算结果;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥。
73.一种设备,包括:
一输入端口,用于接收主密钥;
一第一计算器,用于实现通用散列算法;
一第二计算器,用于实现散列算法;
一密钥导出器,用于利用所述第一计算器和所述第二计算器自所述主密钥生成导出密钥;和
一输出端口,用于输出所述导出密钥。
74.如权利要求73所述的设备,其中所述密钥导出器包括:
一分割器,用于将所述主密钥分割成第一段和第二段;
一重复器,用于重复所述计数器以形成编码的计数器作为较长的比特模式;
一第三计算器,用于实现第一按位操作的二进制函数,其可在所述第一段和所述编码计数器上操作以生成第一结果;
一第四计算器,用于实现第二按位操作的二进制函数,其可在所述第二段和所述编码计数器上操作以生成第二结果;
一组合器,用于组合所述第一结果、所述第二结果、和所述编码计数器以产生所述结果。
75.如权利要求73所述的设备,其中:
所述设备进一步包括一个用于将所述主密钥分割成第一段和第二段的分割器;
所述第二计算器包括:
一组合器,用于将所述第一段与所述计数器组合以生成一个修改的第一段;和
一第五计算器,用于实现散列算法以打乱所述修改的第一段成一散列值;和
所述第一计算器包括:
一判定器,用于自所述第二段确定一个第一数字和一个第二数字;
一第六计算器,用于实现数学公式以利用所述散列值、所述第一数字、和所述第二数字计算结果;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥。
76.如权利要求73所述的设备,其中所述密钥导出器包括:
一第三计算器,用于利用所述主密钥实现所述通用散列算法以产生结果;和
一第四计算器,用于利用所述结果和计数器实现所述散列算法以产生所述导出密钥。
77.如权利要求76所述的设备,其中所述第一计算器包括:
一分割器,用于将所述主密钥分割成第一段和第二段;
一重复器,用于重复所述计数器以形成编码的计数器作为较长的比特模式;
一第五计算器,用于实现第一按位操作的二进制函数,其可在所述第一段和所述编码计数器上操作以生成第一结果;一第六计算器,用于实现第二按位操作的二进制函数,其可在所述第二段和所述编码计数器上操作以生成第二结果;
一组合器,用于组合所述第一结果、所述第二结果、和所述编码计数器以产生所述结果。
78.如权利要求73所述的设备,其中所述密钥导出器包括:
一第三计算器,用于利用所述主密钥和计数器实现所述散列算法以产生结果;和
一第四计算器,用于利用所述结果实现所述通用散列算法以产生所述导出密钥。
79.如权利要求78所述的设备,其中:
所述设备进一步包括一个用于将所述主密钥分割成第一段和第二段的分割器;
所述第三计算器包括:
一组合器,用于组合所述第一段与所述计数器以生成修改的第一段;和
一第三计算器,用于实现散列算法以打乱所述修改的第一段成一散列值;和
所述第四计算器包括:
一判定器,用于自所述第二段确定一个第一数字和一个第二数字;
一第五计算器,包括一个数学公式的实现部分以利用所述散列值、所述第一数字、和所述第二数字计算结果;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥。
80.一种设备,包括:
一输入端口,用于接收主密钥;
一分割器,用于将所述主密钥分割成第一段和第二段;
一接合器,用于接合所述第一段和计数器以产生修改的第一段;
一散列装置,用于打乱所述修改的第一段使之成为一散列值;
一判定器,用于自所述第二段确定一个第一数字和一个第二数字;
一计算器,包括数学公式的实现部分以利用所述散列值、所述第一数字、和所述第二数字计算结果;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥。
81.如权利要求80所述的设备,进一步包括用于输出所述导出密钥的输出端口。
82.如权利要求80所述的设备,其中所述计算器包括:
第一功能的实现部分,用于计算所述散列值和所述第一数字的乘积;
第二功能的实现部分,用于计算所述乘积和所述第二数字的和;和
第三功能的实现部分,用于计算所述和按一模数取模的所述结果。
83.如权利要求82所述的设备,其中所述判定器可操作确定所述第一数字和所述第二数字,其是按所述模数取模确定的。
84.如权利要求82所述的设备,其中所述第三功能的实现部分包括所述第三功能的实现部分,以计算所述和按一素数模数取模的所述结果。
85.如权利要求80所述的设备,其中所述比特选择器可操作从所述结果中选择一组最低有效比特作为所述导出密钥。
86.一种数据安全设备,包括:
一密钥导出器,包括:
一输入端口,用于接收主密钥;
一分割器,用于将所述主密钥分割成第一段和第二段;
一接合器,用于接合所述第一段和计数器以产生修改的第一段;
一散列装置,用于打乱所述修改的第一段成一散列值;
一判定器,用于自所述第二段按一模数取模来确定一个第一数字和一个第二数字;
一计算器,包括数学公式的实现部分以利用所述散列值、所述第一数字、和所述第二数字计算结果;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥;和一加密器,用于利用所述导出密钥加密数据。
87.如权利要求86所述的数据安全设备,进一步包括数据变换器。
88.如权利要求87所述的数据安全设备,其中所述数据变换器可操作变换原始主密钥为所述主密钥。
89.如权利要求87所述的数据安全设备,其中所述数据变换器可操作变换所述导出密钥为变换的导出密钥。
90.如权利要求86所述的数据安全设备,其中所述计算器包括:
第一功能的实现部分,用于计算所述散列值和所述第一数字的乘积;
第二功能的实现部分,用于计算所述乘积和所述第二数字的和;和
第三功能的实现部分,用于从所述和按所述模数取模计算所述结果。
91.如权利要求86所述的数据安全设备,其中所述第三功能的实现部分包括所述第三功能的实现部分,以从所述和按一素数模数取模计算所述结果。
92.一种用于进行密钥导出的方法,包括:
打乱主密钥以产生一散列值;
自所述主密钥确定第一数字和第二数字;
计算所述散列值、所述第一数字、和所述第二数字的通用散列函数以产生结果;和
自所述结果的比特中选择导出密钥。
93.如权利要求92所述的方法,其中:
所述方法进一步包括将所述主密钥分割成第一段和第二段;
所述打乱主密钥的步骤包括打乱所述第一段以产生所述散列值;和
所述确定第一数字和第二数字的步骤包括自所述第二段确定所述第一数字和所述第二数字。
94.如权利要求93所述的方法,其中:
所述方法进一步包括确定一计数器;和
所述打乱所述第一段的步骤包括组合所述第一段和所述计数器。
95.如权利要求92所述的方法,其中所述确定第一数字和第二数字的步骤包括:
自所述主密钥导出第三数字和第四数字;
以所述第三数字按一模数取模的方式,计算所述第一数字;及
以所述第四数字按所述模数取模的方式,计算所述第二数字。
96.如权利要求92所述的方法,其中所述计算所述散列值、所述第一数字、和所述第二数字的通用散列函数的步骤包括:
计算所述第一数字和所述散列值的乘积;
计算所述乘积和所述第二数字的和;和
以所述和按一模数取模的方式,计算结果。
97.如权利要求96所述的方法,其中所述计算结果的步骤包括以所述和按一素除子取模的方式计算结果。
98.如权利要求96所述的方法,其中所述选择导出密钥的步骤包括从所述结果中的一组最低有效比特选择所述导出密钥。
99.一种用于加密导出密钥的方法,包括:
生成所述导出密钥,包括:
将所述主密钥分割成第一段和第二段;
打乱所述第一段以产生散列值;
自所述第二段确定第一数字和第二数字;
计算所述第一数字和所述散列值的乘积;
计算所述乘积和所述第二数字的和;和
以所述和按一模数取模的方式计算结果;和
自所述结果中的比特选择所述导出密钥;和
利用所述导出密钥加密数据。
100.如权利要求99所述的方法,进一步包括在生成所述导出密钥之前对所述主密钥应用数据变换。
101.如权利要求100所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
组织在所述第四段中的比特成多个组,组的数目等于所述第三段中比特的数目;每组有相同数目的比特;
关联每个所述组与所述第三段中的一个比特;
按照所述第三段中的所述关联的比特,将置换函数应用于至少一个所述组;和
自所述第三段和所述置换的组构建变换的主密钥。
102.如权利要求100所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
计算幂次作为所述第三段的函数,所述幂次与第二模数的函数互素;
计算自乘所述第四段的函数至所述幂次的结果;
以所述结果按所述第二模数取模的方式,计算指数置换;和
自所述第三段和所述计算的指数置换构建变换的主密钥。
103.如权利要求99所述的方法,进一步包括对所述导出密钥应用数据变换。
104.如权利要求99所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
组织在所述第四段中的比特成多个组,组的数目等于所述第三段中比特的数目;每组有相同数目的比特;
关联每个所述组与所述第三段中的一个比特;
按照所述第三段中的所述关联的比特,将置换函数应用于至少一个所述组;和
自所述第三段和所述置换的组构建变换的主密钥。
105.如权利要求103所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
计算幂次作为所述第三段的函数,所述幂次与第二模数的函数互素;
计算自乘所述第四段的函数至所述幂次的结果;
以所述结果按所述第二模数取模的方式,计算指数置换;和
自所述第三段和所述计算的指数置换构建变换的主密钥。
106.如权利要求99所述的方法,进一步包括加密所述导出密钥。
107.如权利要求106所述的方法,进一步包括传输所述加密的导出密钥。
108.如权利要求99所述的方法,其进一步包括传输所述加密数据。
109.如权利要求99所述的方法,其中:
所述方法进一步包括确定一计数器;和
所述打乱所述第一段的步骤包括组合所述第一段和所述计数器。
110.如权利要求99所述的方法,其中所述确定第一数字和第二数字的步骤包括:
自所述第二段导出第三数字和第四数字;
以所述第三数字按一模数取模的方式,计算所述第一数字;
以所述第四数字按所述模数取模的方式,计算所述第二数字。
111.如权利要求99所述的方法,其中所述选择导出密钥的步骤包括从所述结果中的一组最低有效比特选择所述导出密钥。
112.一种设备,包括:
一输入端口,用于接收主密钥;
一组合器,用于组合所述主密钥和一个值以产生修改的主密钥;
一散列装置,用于打乱所述修改的主密钥成一散列值;和
一比特选择器,用于自所述散列值选择一组比特作为导出密钥。
113.如权利要求112所述的设备,其中:
所述设备进一步包括一重复器,以重复所述值从而形成编码的值,其为较长的比特模式;和
所述组合器可操作以组合所述主密钥和所述编码的值以产生修改的主密钥。
114.如权利要求112所述的设备,其中:
所述组合器包括一分割器,以将所述主密钥分割成第一段和第二段;和
所述组合器可操作以组合所述编码的值、所述第一段、和所述第二段来产生修改的主密钥。
115.如权利要求114所述的设备,其中所述组合器进一步包括:
第一按位操作的二进制函数的实现部分,其可在所述第一段和所述编码值上操作以生成第一结果;
第二按位操作的二进制函数的实现部分,其可在所述第二段和所述编码值上操作以生成第二结果;和
一组合器,用于组合所述第一结果和所述第二结果以产生所述修改的主密钥。
116.如权利要求115所述的设备,其中所述组合器包括一接合器以接合所述第一结果和所述第二结果来产生所述修改的主密钥。
117.如权利要求112所述的设备,其中所述比特选择器可操作以自所述散列值选择一组最低有效比特作为所述所述导出密钥。
118.如权利要求112所述的设备,其中所述组合器可操作所述主密钥和计数器来产生所述修改的主密钥。
119.一种数据安全设备,包括:
一密钥导出器,包括:
一输入端口,用于接收主密钥;
一分割器,用于将所述主密钥分割成第一段和第二段;
一重复器,用于重复一值以形成一个编码的值,其为较长的比特模式;
第一按位操作的二进制函数的实现部分,其可在所述第一段和所述编码的值上操作以生成第一结果;
第二按位操作的二进制函数的实现部分,其可在所述第二段和所述编码值上操作以生成第二结果;和
一组合器,用于组合所述第一结果、所述第二结果、和所述编码的值以产生所述修改的主密钥;
一散列装置,用于打乱所述修改的主密钥成一散列值;和
一比特选择器,用于自所述结果选择一组比特作为导出密钥;和
一加密器,用于利用所述导出密钥加密数据。
120.如权利要求119所述的数据安全设备,进一步包括一数据变换器。
121.如权利要求120所述的数据安全设备,其中所述数据变换器可操作以将原始主密钥变换为所述主密钥。
122.如权利要求120所述的数据安全设备,其中所述数据变换器可操作以将所述导出密钥变换为变换的导出密钥。
123.如权利要求119所述的数据安全设备,其中所述重复器可操作以重复计数器从而形成所述编码的值,其为较长的比特模式。
124.一种用于进行密钥导出的方法,包括:
将主密钥与一值组合以产生修改的主密钥;
打乱所述修改的主密钥以产生一散列值;和
自所述散列值中的比特中选择导出密钥。
125.如权利要求124所述的方法,进一步包括重复在所述值中的比特模式以形成较长的比特模式。
126.如权利要求124所述的方法,其中所述将主密钥与一值组合的步骤包括利用所述主密钥和所述值计算按位操作的二进制函数。
127.如权利要求124所述的方法,其中所述将主密钥与一值组合的步骤包括:
将主密钥分割成第一段和第二段;
将所述第一段与所述值组合以产生第一结果;
将所述第二段与所述值组合以产生第二结果;和
将所述第一结果和所述第二结果组合以产生所述修改的主密钥。
128.如权利要求127所述的方法,其中所述将所述第一结果和所述第二结果组合的步骤包括接合所述第一结果和所述第二结果以生成所述修改的主密钥。
129.如权利要求124所述的方法,其中所述选择导出密钥的步骤包括从所述散列值中的一组最低有效比特中选择所述导出密钥。
130.如权利要求124所述的方法,其中所述将主密钥与一值组合以产生修改的主密钥的步骤包括将所述主密钥与一计数器组合以产生所述修改的主密钥。
131.一种用于加密导出密钥的方法,包括:
将主密钥与一值组合以产生修改的主密钥;
打乱所述修改的主密钥以产生一散列值;
自所述散列值中的比特选择一导出密钥;和
使用所述导出密钥加密数据。
132.如权利要求131所述的方法,进一步包括在生成所述导出密钥之前应用数据变换于所述主密钥。
133.如权利要求132所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
将在所述第四段中的比特组织成多个组,组的数目等于所述第三段中比特的数目;每组有相同数目的比特;
关联每个所述组与所述第三段中的一个比特;
按照所述第三段中的所述关联的比特,应用置换函数于至少一个所述组;和
自所述第三段和所述置换的组构建所述变换的主密钥。
134.如权利要求132所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
计算幂次作为所述第三段的函数,所述幂次与预先确定的模数的函数互素;
计算自乘所述第四段的函数至所述幂次的结果;
以所述结果按预先确定的模数取模的方式,计算指数置换;和
自所述第三段和所述计算的指数置换构建所述变换的主密钥。
135.如权利要求131所述的方法,进一步包括应用数据变换于所述导出密钥。
136.如权利要求135所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
将在所述第四段中的比特组织成多个组,组的数目等于所述第三段中比特的数目;每组有相同数目的比特;
关联每个所述组与所述第三段中的一个比特;
按照所述第三段中的所述关联的比特,应用置换函数于至少一个所述组;和
自所述第三段和所述置换的组构建所述变换的主密钥。
137.如权利要求135所述的方法,其中所述应用数据变换的步骤包括:
将所述主密钥分割成第三段和第四段,所述第三段和所述第四段的每一个包括至少一个比特;
计算幂次作为所述第三段的函数,所述幂次与预先定义的模数的函数互素;
计算自乘所述第四段的函数至所述幂次的结果;
以所述结果按所述预先定义的模数取模的方式,计算指数置换;和
自所述第三段和所述计算的指数置换构建所述变换的主密钥。
138.如权利要求131所述的方法,进一步包括加密所述导出密钥。
139.如权利要求138所述的方法,进一步包括传输所述加密的导出密钥。
140.如权利要求131所述的方法,进一步包括传输所述加密的数据。
141.如权利要求131所述的方法,其中所述将主密钥与一值组合的步骤包括:
将所述主密钥分割成第一段和第二段;
将所述第一段与所述值组合以产生第一结果;
将所述第二段与所述值组合以产生第二结果;和
将所述第一结果和所述第二结果组合以产生所述修改的主密钥。
142.如权利要求141所述的方法,其中所述将所述第一结果和所述第二结果组合的步骤包括接合所述第一结果和所述第二结果以生成所述修改的主密钥。
143.如权利要求131所述的方法,其中所述将主密钥与一值组合的步骤包括:
将主密钥分割成第一段和第二段;
将所述第一段与所述值组合以产生第一结果;和
将所述第一结果和所述第二段组合以产生所述修改的主密钥。
144.如权利要求131所述的方法,其中所述将主密钥与一值组合以产生修改的主密钥的步骤包括将所述主密钥与一计数器组合以产生修改的主密钥。
CN2005800346085A 2004-08-12 2005-08-09 为提高安全性的置换数据变换 Expired - Fee Related CN101040474B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US10/918,718 2004-08-12
US10/918,103 US7564970B2 (en) 2004-08-12 2004-08-12 Exponential data transform to enhance security
US10/918,718 US7577250B2 (en) 2004-08-12 2004-08-12 Key derivation functions to enhance security
US10/918,717 2004-08-12
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 true CN101040474A (zh) 2007-09-19
CN101040474B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882192B (zh) * 2009-05-08 2012-08-22 晨星软件研发(深圳)有限公司 电路保护装置、电路保护方法及电路保护层
CN103119888A (zh) * 2010-08-20 2013-05-22 苹果公司 用于不安全环境中的块密码处理的装置和方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282673A1 (en) * 2006-04-28 2007-12-06 Lehman Brothers Inc. Method and system for implementing portal
CN102473188B (zh) * 2009-07-27 2015-02-11 国际商业机器公司 用于转换存储的逻辑数据对象的方法和系统
US20120311324A1 (en) * 2011-05-31 2012-12-06 International Business Machines Corporation Method of mapping key information
US8538939B2 (en) 2011-05-31 2013-09-17 International Business Machines Corporation Parsing optional block data
US20120307998A1 (en) * 2011-05-31 2012-12-06 International Business Machines Corporation Building optional blocks
US20140156679A1 (en) * 2012-06-17 2014-06-05 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
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks

Family Cites Families (56)

* Cited by examiner, † Cited by third party
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 Геннадий Николаевич Чижухин Способ шифрования двоичной информации и устройство для его осуществления
US5799088A (en) 1993-12-01 1998-08-25 Raike; William Michael Non-deterministic public key encrypton system
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
KR970024712A (ko) 1995-10-16 1997-05-30 이데이 노부유키 암호화 방법 및 암호화 장치 및 기록 방법 및 복호 방법 및 복호 장치 및 기록 매체
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
WO1998047259A2 (en) 1997-03-10 1998-10-22 Fielder Guy L File encryption method and system
JP2001514834A (ja) 1997-03-10 2001-09-11 ガイ・エル・フィールダー 安全決定性暗号鍵発生システムおよび方法
CA2294170A1 (en) 1997-03-10 1998-10-22 Paul N. Alito Bilateral authentication and encryption system
US5995624A (en) 1997-03-10 1999-11-30 The Pacid Group Bilateral authentication and information encryption token system and method
JPH10271104A (ja) 1997-03-24 1998-10-09 Hitachi Inf Syst Ltd 暗号化方法及び復号化方法
CA2302784A1 (en) 1997-09-17 1999-03-25 Frank C. Luyster Improved 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 Государственное унитарное предприятие Специализированный центр программных систем "Спектр" Способ криптографического преобразования блоков двоичных данных
EP0935203A3 (en) 1998-02-04 2000-05-24 Matsushita Electric Industrial Co., Ltd. Exponential calculation 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 東芝ソリューション株式会社 暗復号装置及び記憶媒体
WO2000045358A1 (fr) * 1999-01-28 2000-08-03 Yutaka Yasukura Procede pour assurer la securite d'informations electroniques
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
DE69939254D1 (de) 1999-06-22 2008-09-18 Hitachi Ltd Kryptografisches Gerät und Verfahren
TW556111B (en) 1999-08-31 2003-10-01 Toshiba Corp Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
CN1437738A (zh) * 2000-01-03 2003-08-20 埃菲克塔技术股份有限公司 数据发送和存储的有效且无损耗转换
US20010031050A1 (en) 2000-02-14 2001-10-18 Lateca Computer Inc. N.V. Key generator
EP1281254A4 (en) 2000-04-20 2003-06-04 Noel D Matchett 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 秘密鍵管理方法
ATE389987T1 (de) 2001-05-03 2008-04-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zum schutz der datenintegrität
EP1425874B1 (en) 2001-08-13 2010-04-21 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
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
JP4218256B2 (ja) * 2002-05-02 2009-02-04 富士ゼロックス株式会社 データ転送方法及びシステム
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882192B (zh) * 2009-05-08 2012-08-22 晨星软件研发(深圳)有限公司 电路保护装置、电路保护方法及电路保护层
CN103119888A (zh) * 2010-08-20 2013-05-22 苹果公司 用于不安全环境中的块密码处理的装置和方法

Also Published As

Publication number Publication date
TNSN07055A1 (en) 2008-06-02
US20060034455A1 (en) 2006-02-16
TW200620943A (en) 2006-06-16
TWI386005B (zh) 2013-02-11
US8077861B2 (en) 2011-12-13
CN101040474B (zh) 2013-08-14

Similar Documents

Publication Publication Date Title
CN101040474A (zh) 为提高安全性的置换数据变换
CN102868518A (zh) 为提高安全性的置换数据变换
CN104488218B (zh) 加密装置、解密装置、加密方法、解密方法
US8180048B2 (en) Method and system for computational transformation
CN1282323C (zh) 用于有效密钥长度控制的方法和设备
CN107425968A (zh) 一种二进制域F2m下的SM2椭圆曲线公钥加密算法的实现系统
US20140317407A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
CN1551559A (zh) 密码系统中基于用户定义识别码编制公用密钥的方法及装置
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
CN1241352C (zh) 加密二进制编码信息的方法
CN104396182A (zh) 加密数据的方法
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN1251444A (zh) 高效块加密方法
CN102246456A (zh) 用于对抗对基于循环群的加密的侧通道攻击的系统和方法
JP5586758B1 (ja) 動的暗号化鍵生成システム
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
CN1240318A (zh) 产生伪随机数的方法
CN114124354A (zh) 确定性鉴别加解密装置及方法
Singhal IMAGE ENCRYPTION USING DNA AND BLOCK BASED CIPHER

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