CN101019367A - 用于计算变换的方法和系统 - Google Patents
用于计算变换的方法和系统 Download PDFInfo
- Publication number
- CN101019367A CN101019367A CNA2004800439761A CN200480043976A CN101019367A CN 101019367 A CN101019367 A CN 101019367A CN A2004800439761 A CNA2004800439761 A CN A2004800439761A CN 200480043976 A CN200480043976 A CN 200480043976A CN 101019367 A CN101019367 A CN 101019367A
- Authority
- CN
- China
- Prior art keywords
- row
- input data
- dateout
- position piece
- conversion
- 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.)
- Pending
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
-
- 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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明总体上涉及计算变换过程,其可应用于密码学、随机数生成、散列码生成等。计算变换模块使用密钥集,该密钥集被使用两维数组设计。由于本发明中使用的正向变换过程是对称加密过程,并且如果用来通过通信网络安全地发送数据,则相同的密钥集需要存在于发送计算机处以加密数据,并且存在于接收计算机处以经历反向变换并解密数据。当输入数据的第一‘n’位块变换为输出数据的第一‘m’位块时,基于对密钥集的非线性或单向变换将密钥集变换为不同的密钥集。使用变换的密钥集对下一输入块加密,因此满足完全保密的香农理论。其使用具有附加参数的同一逻辑以及运算来创建随机数和唯一的散列码。计算变换过程是单向过程,其基于以下原理:给定输入值‘x’,使用函数F’(即,F(x)=y)将‘x’变换为‘y’是很容易的。然而,在F范围内给定‘y’,难以找到x使得F(x)=y。在该系统中,对加密和解密使用只有常量改变的相同的变换函数和相同的密钥集。
Description
技术领域
本发明总的来说涉及密码学领域。特别地,本发明涉及使用真正的单向函数的用于对称加密和解密、随机数生成、和散列码发生器的方法和系统。
背景技术
本发明关于用于提供通过通信信道进行的安全通信、并将数据安全地存储在计算系统上的密码通信和方法。随着计算机技术和信息技术中联网方法的出现,在一会儿时间内就能获得在全球范围内的信息。存在各种在信息技术方面已经发展并且兴旺的信息密集的商业。
在各种商业领域、银行业、电子邮件、数据处理和战略咨询(仅列举几个)都非常需要快速的正确信息通信。安全的电子通信几乎是存在于这个信息技术时代的所有商业形式和商业单位的中心。虽然通过现存的电子通信信道的信息流动一天比一天快,但是该数据易受到电子窃听者(eavesdropper)的监控。此外,也需要解决诸如通过通信信道发送的电子数据源的鉴别及其验证的问题,以控制可能伪造电子签名,伪造电子签名会对诸如银行汇票或证券存款的交易造成不利影响,其中,不得不验证签名以确保文档来自于指定的签字人并且不是伪造的。这使得拥有能够提供使通信数据免于电子窃听者窃听的安全性以及作为对交易文档的电子签名的准确鉴别的需要更加突出。
已存在用于通过通信信道发送的电子数据的安全传输、鉴别、和验证的密码系统,但是应用至今的它们中的每一种都具有一定缺陷。已存在非对称的以及对称的加密系统。所有这些密码编码和解码的方法都确保一定程度的保护和隐私。
对称加密使用其中相同的密钥集(keyset)既用于加密又用于解密过程的算法。生成的密钥必须保密,并由消息发送者和接收者共享。例如,在微软Word文档中使用的口令使用对称加密技术,其中,用于加密和解密文件的口令相同,并被用于确保文件不会遭到窃听者的窃听。用口令加密文件的人必须物理地或通过任一其他方式将口令通知接收者,以使接收者能够解密文件。
对称密钥加密可被分为流密码和块密码。流密码每次加密一个消息位,而块密码取许多位并将其作为单个单元进行加密。通常,使用64位的块。通常,对称密钥算法执行起来比非对称加密算法快得多。然而,对称密钥算法确实有一定的缺陷。一个缺陷在于需要在发送者端和接收者端具有一个副本的共享的秘密密钥。由于密钥容易被密码对手发现,所以在分配和服务期间它们需要经常改变并保持安全。对此的另一种选择是使用非对称加密来加密数据或传递口令然后执行对称加密。
将使用的第一密码通信方法中的一种是国家标准局FederalRegister的1975年3月17日第40卷第52号和1975年8月1日第40卷第149号所采用的数据加密标准工具。
密码通信信道通常包括连接至通信信道的加密系统和解密系统。在通信信道的一端使用加密系统来加密消息,并通过通信信道来发送它,在信道的另一端解密信道将其解码。对于数字系统,将消息定义为由数字字符表示的数字消息,这些字符通常为0和1的二进制记数法字符。所使用的密码系统主要着重于对将被编码的数字消息M使用编码密钥或运算符K,并且将消息M编码为编码的版本E,其中,K和E也是以与M相同的记数法表示的数字字符的数字序列。因此,加密装置将M和K作为输入,然后使用K对M进行运算并将其加密为E。
另一方面,加密装置将E和解密密钥或运算符K’作为输入,使用K’对E进行运算并将其解密为解密的文本M’。其中,K’和M’也是以与M相同的记数法表示的数字字符的数字序列。这里,选择加密和解密密钥或运算符(即,K和K’)的数字序列,使得M’=M。
在关于密码系统的可获得的文献中,例如,Diffie和Hellman在IEEE信息理论学报(1976年11月)的“New directions incryptography”中所描述的公钥密码系统论述了使用公钥和私钥来加密将要传递的数据并且也对其解密。出现在上述Diffie和Hellman所写的文献中的密码学方法着重于使用公钥(KP)来加密消息M。为了解密来自加密文本E的消息,使用私钥KPr。
选择公钥和私钥,使得M’=M。公钥(KP)可在用户的公开文件系统上得到,而私钥(KPr)由用户保留。当用户B不得不将加密消息发送给用户A时,使用用户A的公钥加密消息M。然后,用户A使用只有用户A知道的私钥来对加密的消息进行解密。该方法还用于作为对电子签名的鉴别。为了成功地实施上述Diffie和Hellman方法,绝对有必要明智地选择私钥,这是由于该选择将确定加密的消息对窃听者的脆弱性。选取的密钥应该在计算上难以计算。然而,总存在强力的方法来计算用户的私钥,一种这样的方法是列出所有可能的消息M,直到KP(M)=E的一个M出现,然后可使用KPr(E)=M来计算KPr。
RSA专利,美国专利第4,405,829号采用一种方案来基于质数因式分解来为用户生成私钥,以使通过窃听者计算私钥在计算上更加困难(计算上花费多的过程)。加密和解密的RSA方法采用与Diffie和Hellman系统中提及的相同的公钥和私钥概念来加密和解密消息。对消息执行将消息加密为加密文本的运算包括将消息表示为等效数字,其中,等效数字是小于具有两个质数因子的合数n(即,n=p.q,其中p和q是质数)的非负数。
然而,这些现有的系统,没有提供防止窃听者的完全安全性,尽管它们包括对加密的消息进行解密所需的私钥的计算,该计算是极其困难的,这是由于它涉及不同级(stage)的质数的计算,并且随着其素因数被找到的数的大小增加,过程变得越来越复杂。然而,随着超级计算机以及高速计算的出现,可以很快地执行寻找质数的算法,因此,加密的消息可被其窃听者解密、堵塞和伪造。此外,这些加密-解密模块包括所有用户均可用的公钥,任务是生成只有用户所有的私钥。
而且,按照香农(Shannon)的完全保密或未知条件的理论,为了使得密码不可破解,加密消息所需的密钥集应当对于每个消息都是唯一的,并且密钥集的长度应该大于或等于将要被传送的消息的长度。没有加密通信的方法会是完全安全的,直到它采用上述方案。
所提议的系统和方法希望克服现存技术的所有缺陷,以提供全面验证的不可破解的对称密钥加密。该系统和方法也用于解决生成随机数和唯一散列码的需求。
附图说明
在查看以下详细描述和附图之后,本发明的许多目的和优点对于相关领域的普通技术人员来说将变得显而易见,其中:
图1示出了通信信道的框图;
图2示出了根据本发明实施例的系统结构的框图。
图3示出了密钥集结构实施例的框图。
图4示出了在根据本发明实施例的正向变换期间执行的步骤的流程图。
图5示出了根据本发明实施例的对密钥集执行的正向变换阶段和将输入数据变换为输出数据的过程的框图。
图6示出了在根据本发明实施例的反向变换期间执行的步骤的流程图。
图7示出了根据本发明实施例的对密钥集执行的反向变换阶段和将输出数据变换为输入数据的过程的方框图。
图8示出了在根据本发明一个实施例的正向变换过程期间计算变换处理模块的启动的屏幕截图。
图9示出了在根据本发明一个实施例的正向变换过程期间计算变换处理模块的初始条件的屏幕截图。
图10示出了在根据本发明一个实施例的正向变换过程期间进入到计算变换处理模块中的输入数据内容的屏幕截图。
图11示出了在根据本发明一个实施例的正向变换过程期间来自计算变换处理模块的输出数据内容的屏幕截图。
图12示出了在根据本发明一个实施例的反向变换过程期间计算变换处理模块的启动的屏幕截图。
图13示出了在根据本发明一个实施例的反向变换过程期间计算变换处理模块的初始条件的屏幕截图。
图14示出了在根据本发明一个实施例的反向变换过程期间进入到计算变换处理模块中的输出数据内容的屏幕截图。
图15示出了在根据本发明一个实施例的反向变换过程期间来自计算变换处理模块的输入数据内容的屏幕截图。
具体实施方式
可以多种形式、结构和方式来实现本发明。下面提供的描述和附图示出了本发明的示例性实施例。本领域技术人员应当理解,可以下面未示出的其他形式、结构和方式来实现本发明。本发明应具有权利要求的全部范围并不限于下面所示出的实施例。
正向变换和反向变换的一个实施例分别是加密和解密过程。加密和解密是通过通信信道安全地传输数据所不可避免的过程,并且也用于将数据或信息安全地存储在计算系统上。在本发明的背景技术中描述了用于加密和解密的几种现有技术。然而,本发明解决和克服了在早期和当前的加密机制和技术中的核心问题。
本发明使用真正的单向过程,用于正向变换以及反向变换,即,在本发明的实施例中加密以及解密数据。真正的单向函数是这样的:给定输入‘x’,很容易计算F(x)并且获得‘y’,其中,F(x)=y,并且F是单向函数。然而,尽管知道F的性质/描述(description)并且知道‘y’,仍然很难获得‘x’。这意味着可以在一个方向上计算函数的输出,但是尽管知道输出以及函数,也很难取回函数的原始输入。本发明的核心功能解释如下:
通常,本发明的变换函数被表示为
f(x,k,0)=y,k’
其中‘y’是输出数据,‘x’是输入数据,以及常数0,表示正向变换。然而,在反向变换期间,将常数设为1,并且输出‘y’作为函数的输入。该过程反转正向变换的过程并生成原始输入数据,即,f(y,k,1)=x,k’
如从上面所看到的,同一函数‘f’被用在正向变换以及反向变换的过程中,并且在两种情况下使用的密钥集相同,唯一的改变是指示符值的改变,其中,指示符表示将执行的变换的种类。并且在正向和反向变换中,函数‘f’仅在一个方向进行,也就是说,从k到k’,即,初级密钥集(k)到次级密钥集(k’)。并且k到k’的变换是真正的单向过程,与正向变换和反向变换相同。
情况1:给定输入数据‘x’,输出数据‘y’,次级密钥集k’、和函数‘f’,理论上极难并且实际上不可能获得初级密钥集k。
情况2:给定输出数据‘y’和函数‘f’,由于不可能从生成的组合中选取输入数据的正确模式(pattern),所以理论上和实际上都不可能找到输入数据‘x’和初级密钥集k。下面,更详细地解释本发明的该实施例。
图1示出了通信信道110以及连接至该信道的两个计算终端105和115。通信信道可包括例如,诸如互联网的广域网、局域网、或包括基站和移动台的无线网络。计算终端可包括例如,计算机或者诸如移动电话或个人数字助理(PDA)的手持装置。在本发明的一个实施例中,本发明中实施的技术可用于通过使用上面列出的任一装置通过通信信道安全地发送数据。
图2示出了在计算终端205上的本发明的结构。本发明可用于通过通信信道安全地发送数据,以及将数据安全地存储到独立计算机上。每个计算终端均包括处理器可读的或短期存储器210、处理器215、长期存储器220和收发器,其中每一个都与其他装置通信。计算变换模块225存储在计算终端205的长期存储器220上。收发器用于从一个计算终端接收数据并将数据传送到另一计算终端。在该实施例中,由任一应用程序所创建的数据(例如,word文件或excel电子表格)或者来自其他应用程序的任何数据均采取输入数据的‘n’位块的形式。在计算终端205上该数据表现为位和字节的形式。在本发明的该实施例中,计算变换模块225负责将输入数据转换为输出数据。输出数据是当输入数据通过计算变换模块225时所接收的输出。输出数据是输入数据的一种形式,其中,该输入数据通过执行正向变换而被加密为表面上看似无意义的数据。在一个实施例中,该加密数据也能够存储到计算终端205上以防止数据受到任何滥用或维护用户隐私。在另一实施例中,可将加密数据发送到另一计算终端。以加密的形式发送该数据以防止窃听者或其他第三方访问原始数据。可根据反向变换处理来执行输出数据,即,通过使其通过在接收计算终端上的计算变换模块而在另一计算终端上对其解密以取回原始输入数据。由于作为加密和解密过程的本发明实施例是对称过程,并且如果用于通过通信网络110安全地发送数据,则相同的密钥集需要存在于发送计算机105处以加密数据,并且存在于接收计算机115处以解密数据。
在一个实施例中,计算变换模块225包括用于加密输入数据块的密钥集。本发明是‘n’位块变换方法,其中,‘n’是长度至少为一位。随着‘n’的大小的增加,所需的诸如内存和处理器速度的计算资源将会更多,因此,使变换处理变慢。在现有的系统中,‘n’的理想大小为8位。本发明能够使用不同的唯一密钥集来变换输入数据的每一位。可选地,也可以一次加密预定数量的位,即,块。输入数据的输入块被称作‘n’位块,输出数据的输出块被称作‘m’位块。例如,可将输入数据转换为3位的‘n’位块,并且能够使用唯一的密钥集来加密每个‘n’位块以获得输出数据的‘m’位块。密钥集的设计基于用于加密输入数据的输入数据‘n’位块的大小。图3示出了密钥集的一个实施例,其中,密钥集为具有两列并且行数等于2n的两维数组,其中‘n’表示输入数据的输入块位数的大小,该密钥集被称作‘n’位块。如图3所示,两维数组的行号从0到(2n-1)。例如,如图3所示,为了加密3位块,将存在23行,即,8行。两维数组的第一列305将包括唯一的‘n’位数并被称作参考列1(“Ref1”)。由于图3所示的密钥集用于加密输入数据的3位块,所以Ref1包含任意顺序的从零到七的数字。两维数组的第二列310包括随机数并被称作能量值列(“E-Val”)。随机数可具有‘v’位的任意预定大小,其中,‘v’表示E-Val列的位大小。例如,图3中所示密钥集的第二列310的大小是8位。在缺省状态下,这些随机数包含从0到2v的数字范围。即,E-Val列可包含的最大数字是2v,即,28=256,其中,v=8位。然后,使用任意排序算法(sort algorithm)对密钥集的E-Val列进行排序。在一个实施例中,以降序或升序或者任意预定顺序对第二列310中的数字排序。在如图3所示的具有两列的密钥集结构中,唯一的并按顺序(即,0到7)的数组的行号在变换过程中被用作另一隐藏参考列。该结构表示密钥集结构的一个实施例。
在另一实施例中,使用并在图3中示出了具有3列和2n行的两维数组,其中,‘n’表示输入数据的输入块中位数的大小。数组的第一列315和第二列320将包括唯一的2n位数并且分别被称作参考列1(“Ref1”)和参考列2(“Ref2”),并且第三列325包括随机数并被称作能量值列(“E-Val”)。随机数可具有‘v’位的任意预定大小,其中,‘v’表示E-Val列的位大小。Ref1和Ref2列中的数字可按任意顺序排列,当与具有两列密钥集结构的两维数组相比时,这为变换的输出数据增加了更多的复杂性。通过输入数据的‘n’位块的大小来确定数组中的行数,其在图3所示的实施例中是23等于8,这是因为3是输入数据的‘n’位的大小。因此密钥集包括8行。
在另一实施例中,在变换过程中,将输入数据的‘n’位块和具有值为0或1的指示符输入计算变换模块225。使用初级密钥集将输入数据的‘n’位块变换为输出数据的‘m’位块。当完成该过程时,则初级密钥集被变换为次级密钥集,并且次级密钥集用于输入数据的下一‘n’位块的变换,直到输入数据的所有块被变换为输出数据的输出块。具有值为0或1的指示符表示计算变换模块225是需要执行正向变换还是需要执行反向变换。下面,详细解释正向或反向变换的过程。
图4示出了根据本发明实施例的用于将输入数据转换为输出数据的加密过程的流程图。根据本发明的一个实施例,使用三个基本步骤对密钥集执行正向变换和反向变换过程。指示符指示需要执行的变换的类型。例如,值为0的指示符表示正向变换,并且值为1的指示符表示反向变换。当正向变换过程完成并且输出数据传输到接收计算机时,接收计算机将需要反转指示符以执行反向变换并且取回原始输入数据。在一个实施例中,可以对输入数据的每个‘n’位块动态地改变指示符。例如,可以使用在正向变换过程中说明的过程来变换输入数据的第一‘n’块,而使用在反向变换过程中说明的过程来变换输入数据的第二‘n’位块。然而,在接收计算机处,需要反转相同步骤以取回输入数据,即,使用反向变换来变换输出数据的第一‘m’位块,而使用正向变换来变换输出数据的第二‘m’位块。变换中涉及的步骤包括排序、替换、和无序化。可以任何顺序(例如,替换、无序化、排序)来执行这些步骤。然而,应当注意,相同的过程必须在正向变换结束并且反向变换结束时接着进行以取回原始数据。下面,详细解释每个步骤。在本发明中描述的实施例使用替换、无序化、和排序。
图4中示出了描述密钥集的变换410、420、425以及输入数据到输出数据的转换405、415、430的流程图。在第一步骤405中,将输入数据的等效二进制数(binary equivalent)分解为‘n’位块。基于优选的‘n’位块的大小在下一步骤410中创建密钥集。例如,如果希望逐位加密,则密钥集将需要21(等于2)行,即行0和行1。由于至少使用8位来表示数据或信息,所以可以将密钥集结构形成为具有28(等于256)行(即0行到255行)以及2或3列。图3示出了两列数组和三列数组的结构。然而,在图中所示的实施例中,将输入块选为3位,因此创建具有8行和两列的密钥集。创建的第一密钥集被称作缺省密钥集并且可以是用于每个计算终端的唯一密钥集。
在图5中所示的实施例中,将被加密的输入数据为100101。一旦输入数据被分离或划分为‘n’位块,则选择第一‘n’位块用于加密。替换过程如下。在图5中所描绘的实施例中,将输入数据的第一‘n’位块转换为其等效十进制数,并且遍历密钥集的Ref1列505到等于‘n’位块的等效十进制数的行号。例如,在所描绘的实例中,将被加密的输入数据的第一‘n’位块是100。输入数据的‘n’位块的等效十进制数等于4。密钥集被遍历到行号4(即,Ref1列505的第五行),并选择Ref1列的行号4处的值。如图5中所示,在Ref1的行号4处的数为001。输入数据的‘n’位块(即,100)被替换为001,001为输出数据的‘m’位块。在该过程中,使用缺省密钥集将输入数据的第一‘n’位块变换为输出数据的‘m’位块。
根据“香农的完全保密或未知条件的理论”,为了使密码不可破解,所需的密钥集应当对于每个消息都是唯一的,并且密钥集长度应该等于或大于消息的长度。因此,现在遵循香农理论,使用作为本发明的一个实施例的单向过程将密钥集变换为不同的密钥集。变换的密钥集被称作次级密钥集。
无序化和排序的过程如下。在本发明的一个实施例中,计算((2n/2)-2)的值,其中,‘n’表示输入数据的‘n’位块的大小。在图5中所示的实例中,((23/2)-2)的值等于2。在另一实施例中,可以用任意动态数(例如,输入数据的前一‘n’位块、输出数据的‘m’位块、或者输入数据的‘n’位块与输出数据的‘m’位块间的异或的等效十进制数)来替换((2n/2)-2)。由于输入数据的‘n’位块和输出数据的‘m’位块的等效十进制数可以在每次变换后发生变化,所以这为更动态的处理做准备。遍历初级密钥集的E-Val列510到行号2。因此,如图5所示,获取在行号2(即,第三行)处的值。根据图5,值128变为除数并存储在临时列515中。将存储在Ref1列505的每行中的数字与存储在E-Val列510的相应行中的数字相加,并且总和被称作被除数。例如,将在Ref1列的行号2处的数(即,3)与存储在E-Val列的行号2中的数(即,128)相加,并计算被称作被除数的总和。在本发明的一个实施例中,计算被除数和除数之间的模数,即,被除数对除数取模,在上面所示的实例中为(3+128)对128取模,其等于3,并且用该数(即,被除数对除数取模)来替换E-Val列525每一行中的数。最终结果3替换E-Val列525的行号2处的数。在变换期间,Ref1列520未改变。在另一实施例中,也可以使用异或或者XOR函数或者任一其他类似的非线性函数。非线性函数可为算术和逻辑运算(例如,加法、乘法、或者异或函数)中的一个或其组合。例如,可以使用通过计算除数与被除数之间的异或而获得的数值来替换存储在E-Val列525每一行中的数,该过程被称作无序化运算。一旦替换了E-Val列525每一行中的数,则使用任意排序算法来对整个E-Val列535排序。排序表示一种排列模式,并且该过程对E-Val列生成排序。该过程称作排序运算。也可以使用其他排序方式。在优选实施例中,对列以降序或升序进行排序。当执行该排序运算时,也基于E-Val列535来排序Ref1列530。这意味着根据E-Val列525中每个数移动到的位置,也移动在相应的Ref1列520处的数。例如,在图5中,以降序排序E-Val列525,因此存储在E-Val列525的行号2中的数向上移动到行号1处。在该过程中,存储在Ref1列520的行号2中的数(即,5)也移动到第一行。以此方式对Ref1列执行非线性排序。本领域技术人员应当理解存在能够以非线性或使用任何数学运算对Ref1列进行排序的方式,并且这些非线性排序的其他形式在本发明的范围内。通过执行这些变换而形成的新密钥集是唯一的密钥集,并被称作次级密钥集530、535。将给定密钥集变换为新密钥集的过程是真正单向的。
该次级密钥集被用作输入数据的下一‘n’位块的初级密钥集。在本发明中,根据本发明的实施例,输入数据的第二‘n’位块是101。输入数据的‘n’位块被转换为其等效十进制数,并且遍历密钥集的Ref1到对应于等效十进制数的行号。例如,在描述的实例中,将要被加密的输入数据的第二‘n’位块是101。输入数据的‘n’位块的等效十进制数等于5。遍历密钥集到Ref1列530的行号5(即,标记为5的行号),并选择在Ref1的行号5处的值。如图5中所示,Ref1 530的行号5处的数是111。输入数据的‘n’位块(即,101)被111替换,111为输出数据的‘m’位块。在该过程中,使用初级密钥集加密输入数据的‘n’位块。
使用上述操作将密钥集再次变换为新次级密钥集,并且将该密钥集再次用作初级密钥集以加密输入数据的下一‘n’位块。持续该过程,直至整个输入数据转换为输出数据。在输入数据的最后块中的位数小于输入数据前一‘n’位块的大小的情况下,在位前加0以补足剩余位。例如,在图5所示的实例中,输入数据‘n’位块的大小为3位。然而,如果输入数据的最后‘n’位块只包含2位,则在位前加0以补足缺少的位。
现在,可将输出数据存储在计算终端205上以防止并保护用户信息,或者以安全的方式将输出数据传送到另一个计算终端。任何试图非法获取数据的窃听者或第三方将只接收到输出数据。然而,没有密钥集,他不能计算和取回原始输入数据。在传输数据的情况下,接收计算机终端也必须具有用于加密数据的相同密钥集,来解密数据。
图6示出了根据本发明实施例的用于将输出数据的‘m’位块转换为输入数据的‘n’位块605、615、630以及对初级密钥集执行变换以将其转换为次级密钥集610、620、625的反向变换过程的流程图。图7示出了对密钥集的变换处理以及输出数据的‘m’位块到输入数据的‘n’位块的转换的说明。在一个实施例中,通过收发器经由通信信道110传输输出数据的‘m’位块。接收计算机还装配有用于正向变换过程的相同缺省密钥集。
在图7所示的实例中,将要被变换的输出数据是001111。一旦输出数据被分隔成输出数据的‘m’位块(其中,输出数据的‘m’位块与用于正向变换过程的输入数据的‘n’位块大小相同),则选择输出数据的‘m’位块用于反向变换。例如,在正向变换过程中输入数据的‘n’位块的大小为3,因此在反向变换过程中输出数据的‘m’位块的大小应该也为3。
在Ref1列705中搜索‘m’位块(即,001)。例如,在图7中,‘m’位块001位于行号4处。返回四的等效二进制数(即,100)作为对应于输出数据第一‘m’位块的输入数据的‘n’位块。该第一步骤为输出数据的第一‘m’位块确定输入数据的‘n’位块。
在解密或变换输出数据的下一‘m’位块之前,再次执行在正向变换过程期间对密钥集执行的变换的相同变换。在变换过程中,在本发明的一个实施例中,计算((2n/2)-2)的值,其中,‘n’表示输入数据‘n’位块的大小。在图7所示的实例中,((23/2)-2)的值等于2。在另一实施例中,可以用任一动态数(例如,输入数据的前一‘n’位块、输出数据的‘m’位块、或者输入数据的‘n’位块和输出数据的‘m’位块之间的异或的等效十进制数)来替换‘((2n/2)-2)’。因为在每次变换之后输入数据的‘n’位块和输出数据的‘m’位块的等效十进制数都会改变,所以这为更动态的处理做好了准备。遍历初级密钥集的E-Val列710到行号((23/2)-2),即,行号2。因此,如图7所示,获得行号2处的值,并且将其存储到临时列715中。根据图7,该值128变为除数。将存储在Ref1 705每一行中的数与存储在E-Val列710的相应行中的数相加,并且总和被称作被除数。例如,将在Ref1列705的行号2处的数(即,3)与存储在E-Val列710的行号2中的数(即,128)相加,并计算被称作被除数的总和。在本发明的一个实施例中,计算在被除数和除数之间的模数,即,被除数对除数取模,在上面所示的实例中为(3+128)对128取模,其等于3,并且用该数(即,被除数对除数取模)来替换E-Val列725每一行中的数。最终结果3替换E-Val列725的行号2处的数。在该步骤期间,Ref1列720保持不变。在另一实施例中,也可以使用异或或者XOR或者任一其他类似函数。非线性函数可为算术和逻辑运算(例如,加法、乘法、或者异或函数)中的一个或其组合。例如,可以使用通过计算除数与被除数之间的异或而获得的数来替换存储在E-Val列725的每一行中的数。该过程称作无序化。无序化运算与在正向变换中执行的运算相同。一旦替换了E-Val列每一行中的数,则使用任意排序算法来对整个E-Val列725进行排序。排序表示一种排列模式,并且该过程对E-Val列生成排序。也可以使用其他排序方式。在优选实施例中,以降序或升序排序该列。在优选实施例中,以降序或升序排序该列。将执行与在正向变换过程中执行的运算相同的排序运算。当执行该排序运算时,也基于E-Val列725来排序Ref1列720。这意味着根据E-Val列725中每个数移动到的位置,也移动在相应的Ref1 720处的数。例如,在图7中,以降序排列E-Val列735,因此存储在E-Val列735的行号2中的数向下移动到行号6。在该过程中,存储在Ref1 720中的数(即,3)也移动到行号6。以此方式,对Ref1 730执行非线性排序。本领域技术人员应当理解存在能够非线性排序Ref1列的方式,并且这些非线性排列运算的其他形式在本发明的范围内。通过执行这些变换而形成的新密钥集是唯一的密钥集,并且被称作次级密钥集。
该次级密钥集被用作输出数据的下一‘m’位块的初级密钥集。在本发明中,根据本发明的实施例,输出数据的第二‘m’位块是111。在Ref1 730中执行对输出数据的该‘m’位块的搜索。例如,在图7中,输出数据111的‘m’位块位于行号5处。5的等效二进制数(即,101)是输入数据的‘n’位块。因此,一旦完成该过程,则在接收计算机处,使用与正向变换过程中所使用的算法和密钥集相同的算法和密钥集将输出数据001111变换为原始输入数据100101。这示出了分别如图5和图7中所示的在加密和解密过程中使用相同过程的伴随指示符值改变的机制。
使用上述运算将密钥集再次变换到新的次级密钥集,并将该密钥集再次用作初级密钥集以加密输出数据的下一‘m’位块。持续该过程,直至整个输出数据转换为输入数据,并且取回原始信息。在输出数据最后块中的位数小于输出数据前一‘m’位块的大小的情况下,在位前加0以补足剩余位。
图8到图11描绘了本发明实施例的屏幕截图,其描绘了计算变换模块的实施。图8中的第一屏幕截图805示出了正向变换或加密过程的启动。图9示出了初始条件的设置。可以设置屏幕截图中所示的参数905以进一步增加正向变换过程的复杂性。可添加的复杂性的一些实例包括:将预定数量的随机数添加到输入数据,对输入数据的每个‘n’位块执行多次迭代等。可使用缺省密钥集或者基于上述条件的用户定义的密钥集。如图10所示,计算变换模块接收输入数据字符。根据图10并且为了测试正向变换过程的运行,输入一串相同的字符(图10中为‘g’)作为输入数据1005,并且计算变换模块执行如图5所示的正向变换,并且生成如图11所示的输出数据1105的输出。尽管输入字符相同(即,重复模式),作为输出数据的输出是无意义的或随机的字符串。这表明对每个变换都使用新密钥集。然后,将输出数据发送到接收计算机。
图12到图15描绘了本发明实施例的屏幕截图,其描绘了反向变换过程中计算变换模块的实施。图12示出了反向变换或解密过程1205的启动。图13示出了初始条件1305的设置。指定的初始条件必须与在正向变换过程中所使用的条件相同,并且密钥集也必须相同。
存在几种可被设置并更改以增加复杂性的初始条件。然而,必须注意,接收计算机也必须知道初始条件以反转该过程来恢复原始信息。根据本发明的实施例,如图13所示的初始条件的实例是根据前面所述的加密程序使用系统缺省内置密钥集作为初级密钥集而被加密的用户特定口令。在加密用户特定口令之后生成的后续次级密钥集被用作初级密钥集来加密输入数据的‘n’位块,以使其转换为输出数据的‘m’位块。口令可以是用户定义的口令,或者可选地也可以从存储在用于通过选择特定选项来执行计算变换系统的系统的长期存储器中的任一文件而取得。在加密期间用于输入数据的第一块的密钥集和在解密期间用于输出数据的第一块的密钥集必须相同,为了获得这一点,在加密和解密中使用相同的指示符值来执行使用缺省密钥集的用户特定口令的变换。
在另一实施例中,可使用第三方随机数发生器或使用本发明中描述的过程来生成用户定义数量的随机数,并将随机数添加到输入数据。可使用系统缺省密钥集作为初级密钥集来加密口令。这增强了变换的输出数据的复杂性。为了加密口令和生成实际初级密钥,也可以改变计算变换系统的迭代次数。可在输入数据的每个块转换为输出数据块之前执行对密钥集的变换的多次迭代。对口令执行的计算变换的迭代可潜在地用作用于加密输入数据的‘n’位块的实际初级密钥。在指定数量的迭代结束时接收的输出数据的‘m’位块可被用作将发送给接收者的最终输出数据。
在另一实施例中,基于动态数据(即,输入数据的前一‘n’位块、或输出数据值的‘m’位块、或者两者)或者在加密和解密过程期间可获得的任意动态值,可使用混排(shuffling)机制(即,对数组的第一列中的数进行混排(即,交换))来实现初级密钥集到次级密钥集的变换。在具有3列结构的密钥集的情况下,混排机制可应用于两列,即‘Ref1’和‘Ref2’。该过程增加了输入数据到输出数据的变换的复杂性。
在本系统的另一实施例中,为了对用户特定口令执行计算变换系统,并使其更复杂,用户也可以将来自随机系统文件(例如,可执行文件或随机数据文件、或者存储在系统的长期存储器中的任意文件)的数据附加到口令。通过指定位置(即,由用户指定的初始位置和最终位置)可从随机系统文件中获得特定数据块。在另一实施例中,可由用户指定行为级(behavior level)数,并且可对口令执行与用户指定的行为级数一样次数的计算变换。该过程将从初始系统缺省密钥中生成数量上等于用户指定的行为级数的口令特定密钥集。然后,使用从计算变换系统对用户特定口令的运算所获得的第一次级密钥来加密输入数据的第一‘n’位块,然后使用从计算变换系统对用户特定口令的后续运算所获得的第二次级密钥来加密此处提及的根据该运算获得的输出数据的‘m’位块,该过程进行与用户指定的行为级数一样次数的迭代,并且将在所有这些迭代之后获得的最终输出数据发送给接收者。用户可以在上述一个或多个初始条件之间进行选择,执行以增加变换过程的复杂性,并且使得对输入数据的正向变换不可破解。然而,也必须在接收计算机处模拟在变换中指定的条件,以反转变换过程并且获得原始输入数据信息。
在另一实施例中,可在执行输入数据的每个‘n’位块的计算变换之后变换预定数量的块。例如,可保存使用缺省密钥集对口令执行的变换,并且将该变换口令再次变换为新的变换口令,在输入数据的第一‘n’位块的变换之后重写先前变换,从而将密钥集变为新的密钥集。可以在输入数据的每个‘n’位块的变换之后重复将口令变换为新的变换口令从而改变密钥集的过程。接收计算机也必须具有口令的副本,并且使用在变换输出数据的‘m’位块与变换口令以改变密钥集之间交替的相同过程,来取回原始输入数据。
在另一实施例中,可将输入数据扩展到用户期望的输出数据的大小。例如,将输出数据的八位块转换为其等效十进制数。以八位格式进一步表示等效十进制数的每位数字,从而将输出数据的每个八位块的大小增大了三倍。增加的输出数据被用作变换过程的输入数据,预定运算被用于每次迭代中以生成期望大小的输出数据,在接收端反转预定运算以取回原始输入数据。这通过将每个八位块转换为其等效十进制数然后将获得的整个数表示为输出数据的八位块来实现。该过程增加了变换过程的复杂性并使窃听者极难获得传输的信息。
在本发明的另一实施例中,为常量分配一个为‘0’或‘1’的值以将变换过程分别标识为正向变换或反向变换。根据常量值,系统将要执行的变换识别为正向变换或反向变换。
在使用用户定义的密钥集的情况下,需要通过物理地亲自会面或通过诸如非对称加密的其他加密过程来交换密钥集。如图14所示,计算变换模块接收输出数据1405并且计算变换模块执行如图7所示的反向变换并且生成如图15所示的输入数据1505。输出数据与在正向变换过程中使用的原始输入数据相同。
作为实施例,计算变换模块使用真正的单向过程来执行正向变换和反向变换过程。即使输出数据和次级密钥集是已知的,但窃听者也不能获得输入数据或者第一块输入数据的初级密钥集。在一个实施例中,可使用诸如RSA算法的已存在于可用的技术中的非对称加密技术或者物理地亲自交换密钥集,将初级密钥集传送到接收计算机。
存在计算变换模块的若干其他应用。下面,更详细地描述示出各种其他应用的模块的一些实施例。
例如,在本发明的另一实施例中,计算变换模块被用于使用在正向变换和反向变换实施例中采用的单向过程来生成作为随机数的输出数据。用于生成随机数的计算变换模块和在正向变换和反向变换过程中使用的计算变换模块的差别在于与在正向变换和反向变换过程中使用的可逆型计算变换模块相比使用了用于随机数生成的不可逆型计算变换模块。
该实施例使用在前一实施例中被称作初级密钥集的缺省密钥集来对执行计算变换的计算装置的动态参数执行不可逆的计算变换。系统参数是动态参数,其中,一些偶尔变化,一些周期地变化。这有助于真正随机地生成随机数。例如,系统参数是以秒计的当前时间数值、系统日期、处理器时钟速度、和其他类似的参数。
每次启动用于生成随机数的过程时,系统参数的组合产生值,该值然后被用作计算变换模块的输入数据,基于动态参数对该输入数据执行多次迭代。例如,在一特定时刻,每次可将所有系统参数加到一起以获得输入数据。基于输入数据的大小(即,位数)生成随机数。
在图5中示出了使用密钥集从输入数据生成随机数的过程。在第一步骤中,基于密钥集的设计,将输入数据的等效二进制数分解为输入数据的‘n’位块。基于优选的输入数据的‘n’位块的大小来创建密钥集。例如,如果需要逐位创建随机数,则密钥集将需要21(其为2)行。然而,在图中所示的实施例中,选择3位的‘n’位块,因此创建具有8行的密钥集。创建的第一密钥集被称作缺省密钥集,并且可以为对于每个计算终端都不同的唯一密钥集。
一旦将输入数据分隔为输入数据的‘n’位块,则选择输入数据的第一‘n’位块。在图5所描绘的实施例中,将输入数据的第一‘n’位块转换为其等效十进制数,并且遍历密钥集的Ref1到对应于等效十进制数的行号。例如,在描绘的实施例中,输入数据的第一‘n’位块是100。子输入块的等效十进制数等于4。遍历密钥集到Ref1列的行号4,并选择Ref1列505的行号4处的值。如图5所示,在Ref1的行号4处的数是001。用001替换子输入块(即,100),其中,001表示输出数据的中间‘m’位块。下一步骤包括执行输入数据的‘n’位块和在密钥集的行中出现的值之间的模运算。例如,在上述情况下100对001取模。获得结果(即,0或000)并将其作为临时值存储。在下一步骤中,随机数发生器遍历到Ref1列的行号0并在临时值和输出数据的中间‘m’位块之间执行异或运算或XOR运算(即000 XOR 111),其产生000作为最终输出数据。持续该过程,直至输入数据的整个块被转换为输出数据的随机块。输出数据被称作随机数或数据,并基于作为输入数据的系统参数组合而被生成。
在另一应用中,本发明被用作散列码发生器,其中可将计算变换模块以与前面实施例中所述相同的方式应用于输入数据,并获得的最终输出数据可用作散列码。根据本发明的一个实施例,需要生成散列码的内容被转换为输入数据的‘n’位块,并且接着进行上述相同的过程来生成输出数据的‘m’位块。在位字符串是偶数长度的情况下,将输出数据的‘m’位块分成相等的两半,或者如果输入数据是由奇数块构成,则附加预定的块。在两半之间执行异或或者XOR运算,直至达到预定位数。当将块分成相等的两半时在每个XOR运算之后,块数减少,从而可以设置预定值,该过程在预定值处终止。最终输出数据是输入数据的散列码。
在另一个实施例中,将需要生成散列码的内容转换为输入数据块,并且接着进行上述相同的过程来生成输出数据的‘m’位块。然而,在该实施例中的区别在于将异或运算的结果作为中间输出,并且使用计算变换模块将该结果变换为输出数据。然后,在位字符串是偶数长度的情况下,将输出数据的‘m’位块分成相等的两半,或者如果输入数据由奇数位构成,则附加预定的块。在两半之间执行异或或者XOR运算,直至达到预定位数。异或运算的结果生成中间输出,其可用作变换的输入数据,然后它又被分成相等的两半,并对输出数据执行异或运算。在每次变换后将位分成相等的两半,然后使用计算变换模块将块变换为输出数据的每个阶段中,位数都减小,从而可以设置预定值,在该值处迭代过程终止。输出数据是输入数据的散列码。该过程比先前的实施例慢,然而,与先前的实施例相比生成唯一散列码的精确性高。
Claims (53)
1.一种变换方法,所述方法包括:
a.接收输入数据的第一‘n’位块;
b.基于初级密钥集和表示正向变换的第一指示符或表示反向变换的第二指示符,用输出数据的相应‘m’位块替换输入数据的所述‘n’位块,所述输出块的大小等于或大于所述输入块,所述第一初级密钥集是缺省密钥集;
c.基于对初级密钥集的预定组运算,将所述初级密钥集变换为次级密钥集,所述次级密钥集被用作下一个输入块的初级密钥集;以及
d.对每个后续‘n’位块重复步骤a到c,直至所述输入数据的所有块都已被所述输出数据的相应块替换;
由此,使用不同的动态生成的密钥集,将输入数据的每个‘n’位块变换为输出数据的‘m’位块。
2.根据权利要求1所述的方法,其中,所述缺省密钥集可由用户改变并且可对于每个用户都不同。
3.根据权利要求1所述的方法,其中,在变换每个‘n’位块之后,所述指示符可以预定方式动态地改变,当变换回‘n’位块时执行相同的预定方式。
4.根据权利要求1所述的方法,其中,一种加密或解密的所述变换方法可用于通过通信网络安全地发送变换的数据,在接收端将所述变换的数据变换回去以取回所述原始输入数据,所述接收端配备有与发送端相同的缺省密钥集,并且对所述缺省密钥集执行与所述发送端相同的变换。
5.根据权利要求1所述的方法,其中,所述密钥集包括一种两维数组的数据结构,至少具有行号从0至(2n-1)的2n行,以及至少两列,所述两维数组的第一列包括任意顺序的唯一的‘n’位数,第二列与所述第一列耦合,所述第二列包括随机数。
6.根据权利要求5所述的方法,其中,所述第二列中的所述随机数的位可具有任意预定大小。
7.根据权利要求5所述的方法,其中,所述替换步骤进一步包括:
a.遍历所述初级密钥集的所述第一列到等于所述‘n’位块的等效十进制数的行号;
b.读取存储在所述第一列的所述行中的所述‘m’位;以及
c.用所述‘m’位块替换所述‘n’位块
在正向变换的情况下执行步骤a到c;以及
d.在所述初级密钥集的所述第一列中搜索所述‘m’位块;
e.在所述初级密钥集的所述第一列中的行中定位所述‘m’位块;
f.读取所述行号并且以‘n’位表示所述行号,所述‘n’位为所述‘n’位块;以及
g.用所述‘n’位块替换所述‘m’位块
在反向变换的情况下,执行步骤d到g。
8.根据权利要求7所述的方法,其中,在生成的多个中间输出块被用作后续迭代的输入块的情况下,所述步骤a到c或d到g可被执行预定次数,直到达到所述预定次数。
9.根据权利要求7所述的方法,其中,用于正向变换和反向变换执行的所述步骤可以交替地运行。
10.根据权利要求7所述的方法,其中,将所述初级密钥集变换为次级密钥集的所述步骤,所述方法进一步包括:
对所述密钥集的所述第二列执行至少一种预定数学运算;以及
以预定顺序排列所述第二列并且在所述过程中,对应于对所述第二列执行的所述排列来排列所述第一列;由此实现所述初级密钥集到次级密钥集的单向变换。
11.根据权利要求7所述的方法,其中,将所述初级密钥集变换为次级密钥集的所述步骤,进一步包括:
基于预定的运算,混排所述第一列中的数。
12.根据权利要求10所述的方法,其中,在接收下一块之前,可通过不同组的数学运算和不同组的排列将执行所述数学运算和排列所述第二列的所述步骤重复预定的次数。
13.根据权利要求10所述的方法,其中,所述数学运算可为诸如模运算、异或运算、加法运算、或乘法运算的算术或逻辑运算中的一个或组合。
14.根据权利要求10所述的方法,其中,所述排列运算可包括以升序、降序、或任何预定次序进行排序。
15.根据权利要求1所述的方法,进一步包括使用所述缺省密钥集执行任意长度和格式的用户定义的口令的第一变换,并且在所述过程中将所述缺省密钥集转换为口令特定的密钥集,并且将口令特定的密钥集用作输入数据的所述第一‘n’位块的所述初级密钥集。
16.根据权利要求15所述的方法,其中,可通过多次迭代来执行所述用户定义的口令的所述变换。
17.根据权利要求15所述的方法,其中,对所述用户定义的口令执行用户定义的行为级数的变换,其中,用户定义的行为级数生成所述口令特定的密钥集,所述口令特定的密钥集被存储在存储器中。
18.根据权利要求17所述的方法,其中,使用所述口令特定的密钥集以预定顺序执行输入数据到输出数据的所述变换。
19.根据权利要求18所述的方法,其中,所述预定顺序是生成和存储所述口令特定的密钥集的顺序。
20.根据权利要求1所述的方法,其中,可使用一个或多个密钥集对所述输入数据的每个‘n’位块执行变换的多次迭代。
21.根据权利要求1所述的方法,其中,可对所述输出数据执行预定运算,以增加所述输出数据位的大小,增加的输出数据被用作所述变换过程的输入数据,在每次迭代中使用所述预定运算以生成期望大小的所述输出数据,在所述接收端反转所述预定运算以取回所述原始输入数据。
22.根据权利要求1所述的方法,其中,可将预定数量的随机数添加到所述输入数据。
23.根据权利要求1所述的方法,其中,可将来自于预定文件的从第一位置到第二位置的数据附加到所述口令,所述预定文件的副本存在于所述接收计算机处。
24.根据权利要求1所述的方法,其中,可执行所述正向或反向变换过程以生成散列码数,所述过程进一步包括:
a.将所述输出数据分成两半,第一半和第二半;
b.在所述第一半和所述第二半之间执行异或运算,所述异或运算生成中间输出;以及
c.执行步骤a到b,直至达到预定位字符串长度从而最终结果是唯一的散列码。
25.根据权利要求1所述的方法,其中,可执行所述正向或反向变换过程以生成散列码数,所述过程进一步包括:
a.将所述输出数据分成两半,第一半和第二半;
b.在所述第一半和所述第二半之间执行异或运算,所述异或运算生成中间输出;
c.将所述中间输出用作所述变换过程的输入数据以生成所述输出数据;以及
d.执行步骤a到c,直至达到预定位字符串长度由此最终结果是所述唯一的散列码。
26.根据权利要求1所述的方法,其中,可在输入数据的每个‘n’位块的所述变换之后对预定数量的块执行正向变换以获得用于输入数据的下一个‘n’位块的所述变换的不同次级密钥集,在输出数据的每个‘m’位块的所述变换之后,所述接收端对相同预定数量的块执行所述反向变换以取回所述原始输入数据。
27.一种变换系统,包括:
计算系统,包括彼此通信的长期存储器、处理器可读存储器和处理器,所述长期存储器包括计算变换模块,与处理器和所述处理器可读存储器通信的所述计算变换模块被配置为用于基于初级密钥集以及表示正向变换的第一指示符和表示反向变换的第二指示符,接收输入数据的第一‘n’位块,用输出数据的相应‘m’位块替换输入数据的所述‘n’位块,输出数据的所述‘m’位块大小等于输入数据的所述‘n’位块,所述第一初级密钥集为缺省密钥集,基于预定组运算,用次级密钥集替换所述初级密钥集,所述次级密钥集被用作所述初级密钥集,此后,被配置为用于重复将输入数据的每个后续‘n’位块替换为输出数据的所述相应‘m’位块的过程,每个替换基于不同的动态生成的密钥集,直至所述输入数据的所有块都被输出数据的相应块替换。
28.根据权利要求27所述的系统,其中,所述一种加密和解密的所述变换可用于通过通信网络安全地发送变换的数据,在接收端将所述变换的数据变换回去以取回所述原始信息,所述接收端配备有与发送端相同的缺省密钥集并且对所述缺省密钥集执行与所述发送端相同的变换。
29.根据权利要求28所述的系统,其中,所述指示符可以预定方式变化,在所述接收端执行所述相同的预定方式。
30.根据权利要求27所述的系统,其中,所述密钥集包括一种两维数组的数据结构,至少具有行号从0开始至(2n-1)的2n行,以及至少两列,所述两维数组的第一列包括唯一的‘n’位数,第二列与所述第一列耦合,所述第二列包括随机排序的数。
31.根据权利要求30所述的系统,其中,所述第二列中的随机数可具有预定大小。
32.根据权利要求30所述的系统,其中,使用所述计算变换模块实现所述替换,其中,所述计算变换模块被进一步配置为用于在正向变换的情况下遍历所述初级密钥集的所述第一列到等于输入数据的所述‘n’位块的等效十进制数的行号,读取存储在所述行中的‘m’位块,此后用输出数据的所述‘m’位块替换输入数据的所述‘n’位块;或者在反向变换的情况下,在所述初级密钥集的所述第一列中搜索输出数据的所述‘m’位块,在所述初级密钥集的所述第一列中的行中定位所述‘m’位块,读取所述行号并且以‘n’位表示所述行号,所述‘n’位块为输入数据的所述‘n’位块,此后用输入数据的所述‘n’位块替换输出数据的所述‘m’位块。
33.根据权利要求32所述的系统,其中,在生成的多个中间输出块被用作后续迭代的输入数据的情况下,所述正向变换的步骤或所述反向变换的步骤可被执行预定次数,直至达到所述预定次数。
34.根据权利要求32所述的系统,其中,所述计算变换模块被配置为用于命令所述处理器对所述密钥集的第二列执行至少一种数学运算,所述计算变换模块与所述处理器一起对所述密钥集的第二列执行排列运算,这导致对所述密钥集的第一列执行排序。
35.根据权利要求34所述的系统,其中,可以基于预定运算对所述第一列中的数执行混排。
36.根据权利要求34所述的系统,其中,所述数学运算可以为诸如模运算、异或运算、加法运算、和乘法运算的算术运算和逻辑运算中的一个或组合。
37.根据权利要求34所述的系统,其中,所述排列操作可为升序排序、降序排序、或任何预定次序。
38.根据权利要求27所述的系统,进一步包括,所述处理器被命令来使用所述缺省密钥集对任意长度和格式的用户定义的口令执行第一变换,并且在所述过程中将所述缺省密钥集转换为口令特定的密钥集,并且将所述口令特定的密钥集用作所述输入数据的所述初级密钥集。
39.根据权利要求3 8所述的系统,其中,可通过多次迭代来执行所述用户定义的口令的所述变换。
40.根据权利要求38所述的系统,其中,对用户定义的口令执行用户定义的行为级数的变换,其中,所述用户定义的行为级数生成所述口令特定的密钥集。
41.根据权利要求40所述的系统,其中,通过使用生成的所述口令特定的密钥集中的至少一个对所述输入数据执行所述变换过程来从所述输入数据中获得所述输出数据,所述口令特定的密钥集被存储在存储器中并且以预定顺序使用。
42.根据权利要求41所述的系统,其中,所述预定顺序是生成和存储所述口令特定密钥集的顺序。
43.根据权利要求42所述的系统,其中,通过执行所述变换而生成的所述多个口令特定的密钥集存储在存储器中。
44.根据权利要求27所述的系统,其中,在将所述输入数据的每一位变换为所述输出数据的每一位之前可以对所述密钥集执行多次迭代。
45.根据权利要求27所述的系统,其中,可以对所述输出数据执行预定运算,以增加所述输出数据位的大小,增加的输出数据被用作所述变换过程的输入数据,在每次迭代中使用所述预定运算以生成期望大小的所述输出数据,在所述接收端反转所述预定运算以取回所述原始输入数据。
46.根据权利要求27所述的系统,其中,可将预定数量的随机数添加到所述输入数据。
47.根据权利要求27所述的系统,其中,可将来自预定文件的从第一位置到第二位置的数据附加到所述口令,所述文件的副本存在于所述接收计算机处。
48.根据权利要求27所述的系统,其中,可在输入数据的每个‘n’位块的所述变换之后对预定数量的块执行正向变换,以获得用于输入数据的下一‘n’位块的所述变换的不同次级密钥集,在输出数据的每个‘m’位块的所述变换之后,所述接收端对所述相同的预定数量的块执行所述反向变换以取回所述原始输入数据。
49.一种生成随机数的方法,所述方法包括:
a.接收输入数据的第一‘n’位块,所述输入数据基于任何预定的动态系统参数;
b.在密钥集的第一列中遍历到等于所述输入数据的第一‘n’位块的等效十进制数的行号,所述密钥集为一种两维数组,至少具有行号从0到(2n-1)的2n行以及至少两列,所述两维数组的第一列包括任意顺序的唯一‘n’位数,第二列与所述第一列耦合,所述第二列包括预定组的预定大小的随机数;
c.确定存储在所述密钥集的第一列中的所述行号处的所述‘m’位;
d.在所述‘n’位块和所述‘m’位块之间执行模运算,所述结果被存储作为第一临时值;
e.在密钥集的所述第一列中遍历到等于所述临时值的等效十进制数的行号;
f.确定存储在(e)中的所述行号处的数;
g.在所述‘m’位块和(f)的数之间执行异或运算;
h.对所述密钥集执行预定运算;以及
i.对所有后续‘n’位块重复步骤a到g以获得一组随机数。
50.根据权利要求49所述的方法,其中,对所述密钥集执行预定运算的所述步骤进一步包括:
对所述密钥集的所述第二列执行数学运算;以及
以预定顺序排列所述第二列并且在该过程中对应于在所
述第二列中执行的排列对所述第一列进行排列。
51.根据权利要求50所述的方法,其中,所述数学运算可为诸如模运算、异或运算、加法运算、或乘法运算的算术或逻辑运算中的一个或组合。
52.根据权利要求51所述的方法,其中,所述排列操作可包括以升序、降序、或任何预定次序的排序。
53.一种用于将输入数据变换为输出数据的应用程序,所述应用程序包括:
计算系统,包括彼此通信的长期存储器、处理器可读存储器和处理器,所述长期存储器包括计算变换模块,所述计算变换模块与处理器和所述处理器可读存储器通信,并且当所述用户运行所述计算变换模块时:(a)基于初级密钥集以及表示正向变换的第一指示符或表示反向变换的第二指示符,所述计算变换模块接收输入数据的第一‘n’位块,用输出数据的相应‘m’位块替换所述输入数据的‘n’位块,所述输出数据的‘m’位块大小等于输入数据的‘n’位块,其中,所述第一初级密钥集为缺省密钥集,基于预定组运算,用次级密钥集替换所述初级密钥集,所述次级密钥集被用作所述初级密钥集,此后,被配置为用于重复将输入数据的每个后续‘n’位块替换为输出数据的相应‘m’位块的过程,每个替换基于不同的动态生成的密钥集,直至所述输入数据的所有块被输出数据的相应块替换;其中,当在所述系统中使用介质时,所述计算变换模块存储在所述介质中,并且所述计算变换模块被传送到包括处理器可读存储器和所述处理器的系统的处理器可读存储器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IN2004/000287 WO2006030447A1 (en) | 2004-09-14 | 2004-09-14 | A method and system for computational transformation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101019367A true CN101019367A (zh) | 2007-08-15 |
Family
ID=36059738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800439761A Pending CN101019367A (zh) | 2004-09-14 | 2004-09-14 | 用于计算变换的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8180048B2 (zh) |
EP (1) | EP1790115A1 (zh) |
JP (1) | JP2008513811A (zh) |
CN (1) | CN101019367A (zh) |
WO (1) | WO2006030447A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377347A (zh) * | 2012-04-24 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 文件加密、解密方法及装置 |
CN106817220A (zh) * | 2015-11-30 | 2017-06-09 | 北大方正集团有限公司 | 一种通信数据加密的方法、装置及加密设备 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8183980B2 (en) * | 2005-08-31 | 2012-05-22 | Assa Abloy Ab | Device authentication using a unidirectional protocol |
JP2007235323A (ja) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | 高度機密情報の保存/記録方法、高度機密情報を利用する再生装置および高度機密情報を格納するメモリ |
US7916863B2 (en) | 2007-11-30 | 2011-03-29 | Hewlett-Packard Development Company, L.P. | Security printing method and system for enhancing security printing |
WO2010019593A1 (en) | 2008-08-11 | 2010-02-18 | Assa Abloy Ab | Secure wiegand communications |
US9430297B2 (en) * | 2008-12-15 | 2016-08-30 | International Business Machines Corporation | Load balancing of adapters on a multi-adapter node |
US11991280B2 (en) | 2009-04-20 | 2024-05-21 | Pure Storage, Inc. | Randomized transforms in a dispersed data storage system |
US10447474B2 (en) * | 2009-04-20 | 2019-10-15 | Pure Storage, Inc. | Dispersed data storage system data decoding and decryption |
US9207911B2 (en) * | 2009-07-31 | 2015-12-08 | Cassy Holdings Llc | Modular uncertainty random value generator and method |
US8472534B2 (en) | 2009-12-21 | 2013-06-25 | Astrapi Corporation | Telecommunication signaling using nonlinear functions |
MY168681A (en) | 2011-04-15 | 2018-11-29 | Astrapi Corp | Methods and systems for communicating |
US9454552B2 (en) | 2012-07-31 | 2016-09-27 | Empire Technology Development Llc | Entropy coding and decoding using polar codes |
US9305067B2 (en) * | 2013-07-19 | 2016-04-05 | International Business Machines Corporation | Creation of change-based data integration jobs |
AT515097B1 (de) * | 2014-03-31 | 2015-06-15 | Hödl Josef | Verschlüsselungsverfahren und Pseudo-Zufallszahlengenerator |
EP3345359A4 (en) | 2015-09-02 | 2019-04-17 | Astrapi Corporation | POLYNOMIAL DIVISION MULTIPLEXING IN SPIRAL |
US11824694B2 (en) | 2015-09-02 | 2023-11-21 | Astrapi Corporation | Systems, devices, and methods employing instantaneous spectral analysis in the transmission of signals |
US10979271B2 (en) | 2016-05-23 | 2021-04-13 | Astrapi Corporation | Method for waveform bandwidth compression |
WO2018047120A1 (en) * | 2016-09-10 | 2018-03-15 | Singanamala Prahlad P | A system and method for data block modification detection and authentication codes |
US10452877B2 (en) | 2016-12-16 | 2019-10-22 | Assa Abloy Ab | Methods to combine and auto-configure wiegand and RS485 |
US10848364B2 (en) | 2019-03-06 | 2020-11-24 | Astrapi Corporation | Devices, systems, and methods employing polynomial symbol waveforms |
US11184201B2 (en) | 2019-05-15 | 2021-11-23 | Astrapi Corporation | Communication devices, systems, software and methods employing symbol waveform hopping |
CN115496626B (zh) * | 2022-10-24 | 2023-05-16 | 国网浙江省电力有限公司象山县供电公司 | 一种配网图模异动的识别处理方法及识别处理系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4078152A (en) * | 1976-04-26 | 1978-03-07 | International Business Machines Corporation | Block-cipher cryptographic system with chaining |
JP2631558B2 (ja) * | 1989-06-12 | 1997-07-16 | 株式会社日立テレコムテクノロジー | 通話課金装置の料金清算方式 |
US4979832A (en) * | 1989-11-01 | 1990-12-25 | Ritter Terry F | Dynamic substitution combiner and extractor |
JP3230726B2 (ja) * | 1996-03-29 | 2001-11-19 | 日立ソフトウエアエンジニアリング株式会社 | 暗号化通信方法 |
JP2001203685A (ja) * | 2000-01-18 | 2001-07-27 | Nec Corp | 乱数表を用いた暗号化によるデータ送信方式およびデータ交換方式 |
US7046802B2 (en) * | 2000-10-12 | 2006-05-16 | Rogaway Phillip W | Method and apparatus for facilitating efficient authenticated encryption |
US20020131590A1 (en) * | 2001-02-02 | 2002-09-19 | Henson Kevin M. | Key matrix methodology |
US6937727B2 (en) * | 2001-06-08 | 2005-08-30 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
-
2004
- 2004-09-14 CN CNA2004800439761A patent/CN101019367A/zh active Pending
- 2004-09-14 EP EP04770709A patent/EP1790115A1/en not_active Withdrawn
- 2004-09-14 JP JP2007530852A patent/JP2008513811A/ja active Pending
- 2004-09-14 WO PCT/IN2004/000287 patent/WO2006030447A1/en active Application Filing
- 2004-09-14 US US11/572,635 patent/US8180048B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377347A (zh) * | 2012-04-24 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 文件加密、解密方法及装置 |
CN103377347B (zh) * | 2012-04-24 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 文件加密、解密方法及装置 |
CN106817220A (zh) * | 2015-11-30 | 2017-06-09 | 北大方正集团有限公司 | 一种通信数据加密的方法、装置及加密设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2008513811A (ja) | 2008-05-01 |
EP1790115A1 (en) | 2007-05-30 |
US20070195952A1 (en) | 2007-08-23 |
US8180048B2 (en) | 2012-05-15 |
WO2006030447A1 (en) | 2006-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7657033B2 (en) | Cryptography related to keys | |
CN101019367A (zh) | 用于计算变换的方法和系统 | |
CN108388808B (zh) | 基于希尔加密与动态dna编码的图像加密方法 | |
US20100046755A1 (en) | Cryptography related to keys with signature | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
Agrawal et al. | Elliptic curve cryptography with hill cipher generation for secure text cryptosystem | |
Verma et al. | 3D-Playfair cipher with additional bitwise operation | |
Khompysh et al. | Design of substitution nodes (S-Boxes) of a block cipher intended for preliminary encryption of confidential information | |
Selvakumar et al. | A cryptographic method to have a secure communication of health care digital data into the cloud | |
WO2022021005A1 (zh) | 基于指数复杂度的对称加解密方法 | |
Kaur et al. | 3D—Playfair cipher using LFSR based unique random number generator | |
Joshi et al. | A randomized approach for cryptography | |
Hraiz et al. | Symmetric encryption algorithm using graph representation | |
Geetha et al. | Survey on security mechanisms for public cloud data | |
Borghoff | Cryptanalysis of Lightweight Ciphers | |
Lemieux et al. | Clone resistant mutual authentication for low-cost RFID technology | |
Neacșu | The Effectiveness of the Statistical Testing of Randomness in a Complete Cryptographic System | |
Abbas et al. | Audio cryptosystem based on LFSH and Chaotic map with ECC key management | |
Singh et al. | 3D—Playfair cipher using Linear Feedback Shift Register | |
Farouk | Memristive Coupled Neural Network Based Visual Signal Encryption | |
Abdulameer | A Cryptosystem Based on Transposition, Substitution, Folding and Shifting Algorithm | |
Singh et al. | A new symmetric key encryption algorithm based on jumbling binary sequence of message | |
Kumar et al. | Symmetric Encryption Scheme Based on Quasigroup Using Chained Mode of Operation | |
ILIYASU | IMPROVED 2-LEVEL DATA SECURITY APPROACH FOR UBER TRANSPORT MANAGEMENT SYSTEM (UTMS) | |
Obayes | Text Encryption with Graph Theory Based Key Generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20070815 |