CN102064936A - 一种数据加解密方法及装置 - Google Patents

一种数据加解密方法及装置 Download PDF

Info

Publication number
CN102064936A
CN102064936A CN 201010566289 CN201010566289A CN102064936A CN 102064936 A CN102064936 A CN 102064936A CN 201010566289 CN201010566289 CN 201010566289 CN 201010566289 A CN201010566289 A CN 201010566289A CN 102064936 A CN102064936 A CN 102064936A
Authority
CN
China
Prior art keywords
encryption function
data
random
encryption
module
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
CN 201010566289
Other languages
English (en)
Other versions
CN102064936B (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.)
Yuntian (Beijing) Data Technology Co., Ltd.
Original Assignee
Beijing Zhuowei Tiancheng Technology Consultation Co Ltd
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
Application filed by Beijing Zhuowei Tiancheng Technology Consultation Co Ltd filed Critical Beijing Zhuowei Tiancheng Technology Consultation Co Ltd
Priority to CN2010105662895A priority Critical patent/CN102064936B/zh
Priority to US13/001,022 priority patent/US8942373B2/en
Priority to PCT/CN2010/079315 priority patent/WO2012071714A1/zh
Publication of CN102064936A publication Critical patent/CN102064936A/zh
Application granted granted Critical
Publication of CN102064936B publication Critical patent/CN102064936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及数据加密解密技术领域,特别涉及一种数据加解密方法及装置。所述加密方法包括:对待加密明文进行分组;为每组明文数据随机分配加密函数;用加密函数分别对每组明文数据进行加密;将加密的数据按其对应的明文位置排列形成密文。所述加密装置包括:分组模块、加密函数随机分配模块和加密处理模块。本发明还提供了一种数据解密方法及装置。本发明通过在加密时为待加密的明文随机分配加密函数,用所分配的加密函数对明文数据进行加密排列形成密文,极大地提高了数据存储的安全性,实现了对数据的完美加密。

Description

一种数据加解密方法及装置
技术领域
本发明属于数据加密解密技术领域,尤其涉及一种数据加解密方法及装置。
背景技术
完美加密(Perfect Secrecy)系统保护的数据,无论密码分析者截获多少密文,在无限的计算能力和时间条件下,都无法破解,具体内容见文献Shannon,Claude(1949).Communication Theory of Secrecy Systems,Bell System Technical Journal 28(4):656-715。
一次一密乱码本(One-time-pad,下称之为OTP)就是其中的一个典型实现,有关内容可参见下述文献,U.S patent 1,310,719.SECRET SIGNALINGSYSTEM,S N Molotkov,″Quantum cryptography and V A Kotel′nikov′s one-time key and sampling theorems″,PHYS-USP,2006,49(7),750-761以及机械工业出版社2003年3月1日出版的《应用密码学》第6、12页。
目前对完美加密系统的实现主要在于密钥部分,即如何通过无限多真随机密钥对明文每一位进行加密以达到完美加密系统的设计目的。而所用加密算法大多是较单一的异或运算,或者说,整个系统的安全性完全依赖于密钥的安全保存和传输。一旦密钥泄露,则整个系统的安全性则变得非常脆弱。
发明内容
本发明的目的在于提供一种数据加解密方法及装置,旨在解决现有完美加密技术的安全性完全依赖于密钥的安全保存和传输,一旦密钥泄露密文有可能被破解的问题。
本发明提供了一种数据加密方法,所述方法包括:
对待加密明文进行分组;
为每组明文数据随机分配加密函数;
用加密函数分别对所述每组明文数据进行加密;
将所述加密的数据按其对应的所述明文位置排列形成密文。
本发明提供了一种数据加密装置,所述装置包括:
分组模块,用于对待加密明文进行分组;
加密函数随机分配模块,用于为所述分组模块分组后的每组明文数据随机分配加密函数;
加密处理模块,用于用所述加密函数随机分配模块分配的加密函数对所述明文中的数据进行加密,并将所述加密的数据按其对应的所述明文位置排列形成密文。
本发明提供了一种数据解密方法,所述方法包括:
获取解密信息,并根据所述解密信息从保存的随机种子中采集数据生成加密函数索引随机串;
根据所述解密信息,确定所述加密函数索引随机串的遍历起始位置,同步遍历所述加密函数索引随机串及待解密密文;
根据所述解密信息确定所述密文中各个比特位数据对应的加密函数;
根据所述加密函数,确定所述密文中各个比特位数据对应的解密函数;
用所述解密函数将所述密文中各个比特位的数据还原成明文中的各个比特位的数据;
将所述明文中各个比特位的数据按其所对应的密文位置排列,形成明文。
本发明还提供了一种数据解密装置,所述装置包括:
获取模块,用于获取解密信息;
随机种子存储模块,用于存储加密时产生的随机种子;
加密函数索引随机串生成模块,用于根据所述获取模块获取的解密信息,从所述随机种子存储模块保存的随机种子中采集数据生成加密函数索引随机串;
同步遍历模块,用于根据所述获取模块获取的解密信息,确定所述加密函数索引随机串的遍历起始位置,同步遍历所述加密函数索引随机串及待解密密文;
加密函数确定模块,用于根据所述获取模块获取的解密信息,确定所述密文中各个比特位数据对应的加密函数;
解密函数获取模块,用于根据所述加密函数确定模块确定的加密函数,确定所述密文中各个比特位数据对应的解密函数;
明文还原模块,用于用所述解密函数将所述密文中各个比特位的数据还原成明文中的各个比特位的数据,并将所述明文中各个比特位的数据按其所对应的密文位置排列,形成明文。
本发明通过在加密时为待加密的明文随机分配存储的加密函数,用所分配的加密函数对明文进行加密,解密时再通过创建并根据加密函数索引随机串,获得待解密密文的解密函数和解密密钥进行解密,极大地提高了数据的安全性,实现了对数据的完美加密。
附图说明
图1是本发明实施例提供的数据加密方法的流程图;
图2是本发明实施例提供的为待加密明文随机分配加密函数之前的步骤流程图;
图3是本发明实施例提供的对加密函数索引随机串进行重复性校验的方法流程图;
图4是本发明实施例提供的数据加密装置的结构示意图;
图5是本发明实施例提供的建立最小加密函数集合的方法流程图;
图6是本发明实施例提供的数据解密方法的流程图;
图7是本发明实施例提供的数据解密装置的结构示意图;
图8本发明实施例提供的加密函数索引随机串生成的原理示意图;
图9是本发明实施例提供的数据加密过程的示意图;
图10是本发明实施例提供的数据解密过程的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例在加密时通过为待加密的明文随机分配存储的加密函数,用所分配的加密函数对明文进行加密;解密时通过生成并根据加密函数索引随机串,获得待解密密文的解密函数进行解密。
参见图1和图9,本发明实施例提供了一种数据加密方法,包括以下步骤:
步骤S101:对待加密明文进行分组;
步骤S102:为每组明文数据随机分配加密函数;
本实施例预先选定一组加密函数存储,该存储的加密函数可以覆盖从明文中任意预定位0、1到密文中对应位置0或1的所有转换路径;选定完成后,在进行加密时,被随机分配给明文对明文进行加密;
本实施例中,将待加密明文的每位(比特位)数据作为一个分组,即分别对明文中的每位数据随机分配加密函数;在实际应用中,还可以将待加密明文中的每2位、每3位、每4位数据作为一个分组;
步骤S103:用所分配的加密函数对明文中的每位数据进行加密;
步骤S104:将加密的每位数据按其对应的明文位置排列,形成密文。
参见图2,本发明实施例在步骤S101和步骤S102之间还包括以下步骤:
步骤S201:生成预定长度的真随机数和由真随机数组成的预定长度的随机种子;
生成真随机数的方法已经很成熟,具体实现中可以采用机械工业出版社2003年3月1日出版的《应用密码学》第301页中给出的产生真随机数的方法,如使用随机噪声,使用计算机时钟,CPU负载或网络数据包到达次数等方法来产生需要的真随机数,作为随机种子,同时存储产生的随机种子;
步骤S202:建立加密函数集合,并对集合中的每个加密函数分配索引;
集合中的每个加密函数都有一个与之相对应的索引,并且存储这些不同的索引;
步骤S203:对随机种子进行数据采集,生成加密函数索引随机串;
步骤S204:同步遍历加密函数索引随机串和待加密明文。
本发明实施例在对随机种子进行数据采集,生成加密函数索引随机串后还包括对加密函数索引随机串进行重复性校验的步骤,其具体实现方式如图3所示,包括以下步骤:
步骤S301:通过信息摘要运算生成加密函数索引随机串的信息摘要值;
步骤S302:比对加密函数索引随机串的信息摘要值与先前存储的信息摘要值是否一致,如果一致,则对随机种子再次进行数据采集,生成加密函数索引随机串,执行步骤S301,如果不一致,则执行步骤S303;
步骤S303:保存当前生成的加密函数索引随机串待用。
当有新生成的加密函数索引随机串时,本发明通过运用信息摘要运算如MD5,SHA1等,生成加密函数索引随机串的信息摘要值,将该信息摘要值与先前存储的加密函数索引随机串的信息摘要值进行比对,从而判断新生成的加密函数索引随机串是否已使用过,如果是,则重新生成加密函数索引随机串,否则保存所生成的加密函数索引随机串待用。在保存待用的加密函数索引随机串后,保存所有加密函数索引随机串的信息摘要值。
本发明中,生成并存储数据加密过程中所使用和产生的如明文分组信息、加密函数集合及被分配的每个加密函数索引、每个加密函数对应的密钥、数据采集时所使用的随机种子、再次生成所加密的明文对应的加密函数索引随机串的信息以及遍历加密函数索引随机串起始的游标位置信息,形成解密信息。
参见图4,本发明实施例提供了一种数据加密装置,为了便于说明,仅示出了与本发明有关部分,该装置包括:
分组模块40、加密函数随机分配模块41和加密处理模块42;
在进行数据加密时,分组模块40将待加密明文中的每位数据分成一组,加密函数随机分配模块41为待加密明文的每位数据随机分配加密函数用于加密,加密处理模块42用加密函数随机分配模块41分配的加密函数对待加密明文的每位数据进行加密,并将加密的每位数据按其对应的明文的位置排列,形成密文输出。
进一步地,该数据加密装置还包括:
加密函数建立模块43、真随机数生成模块44、加密函数索引随机串生成模块45、分配模块46和同步遍历模块47;
真随机数生成模块44用于生成预定长度的真随机数和由真随机数组成的预定长度的随机种子,加密函数索引随机串生成模块45对该随机种子进行数据采集,生成加密函数索引随机串;加密函数建立模块43,用于建立并存储加密函数集合;分配模块46,用于对加密函数建立模块43建立的加密函数集合中的每个加密函数分配索引;同步遍历模块47同步遍历加密函数索引随机串生成模块45生成的加密函数索引随机串和待加密明文。
其中,加密函数索引随机串生成模块45包括:
数据采集单元,用于对真随机数生成模块44生成的随机种子进行数据采集,并发送数据采集结果;
索引随机串生成单元,用于根据接收的数据采集单元发送的数据采集结果,生成并保存加密函数索引随机串。
进一步地,加密函数索引随机串生成模块45还包括:
信息摘要值生成模块,用于通过信息摘要运算生成索引随机串生成单元生成的加密函数索引随机串的信息摘要值;
存储模块,用于存储信息摘要值生成模块生成的加密函数索引随机串的信息摘要值;
比对模块,用于将信息摘要值生成模块生成的信息摘要值与存储模块先前存储的信息摘要值进行比对,并向加密函数索引随机串生成模块45发送比对结果。
加密函数索引随机串生成模块45根据比对模块发送的信息摘要值相同的比对结果,重新生成加密函数索引随机串,并通过比对模块反复进行信息摘要值的比对,直至产生不重复的加密函数索引随机串。
由于完美加密系统需要满足密文被截获后的后验概率等于其先验概率,对于任意确定的明文,至少有一种方式可以被转换为任意的密文,并且这些转换方式是完全等概的(具体内容见文献Shannon,Claude(1949).Communication Theory of Secrecy Systems,Bell System Technical Journal 28(4):656-715)。对于存储在计算机中的二进制明文和密文而言,因为所有明文和密文都是由一串数量确定的二进制数0或1组成,所以对明文任意确定的一位数据0或1,总有至少一种方式使之转换为密文中对应位置的0或1,本发明称这种转换方式为转换路径。
为实现本发明的完美加密需要,需要找到一个最小的加密函数集合,使之能够覆盖从明文中任意预定位0,1到密文中对应位置0或1的所有转换路径。
参见图5,本发明采用以下方法选择最小加密函数集合,其实现步骤为:
步骤S501:选择能覆盖最多明文到密文的可能转换路径的加密函数,记录加密函数覆盖的可能转换路径;
步骤S502:判断可能转换路径是否全被完全覆盖,如果是,则执行步骤S505,否则,执行步骤S503;
步骤S503:确定未被覆盖的可能转换路径,选择另一能覆盖最多未覆盖的可能转换路径的加密函数,并记录当前加密函数覆盖的路径,重新选择另一能覆盖最多未覆盖的可能转换路径的加密函数,执行步骤S504;
步骤S504:判断是否未被覆盖的可能转换路径都被覆盖,如果是,则执行步骤S505,否则,执行步骤S503;
步骤S505:将所有选择的加密函数组成最小加密函数集合。
为了验证该方法的可行性,以下举出两例,但是本发明的保护范围不限于这两种实现。记明文任意预定位置x的数据M(x)到密文对应位置x’的数据E(x’)的转换为M(x)->E(x’),其中M(x),E(x’)=0或者1。
方法A:通过选择如下加密函数和密钥,
加密函数1:异或运算(XOR)。对应运算规则是:
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
加密函数2:f(a)=a,a是输入也是输出。对应运算规则是:
f(0)=0
f(1)=1
覆盖以下转换路径
Figure BDA0000034941040000085
方法B:通过选择如下加密函数和密钥,
加密函数1:非运算(~)。对应运算规则是:
~0=1
~1=0
加密函数2:f(a)=a,a是输入也是输出。对应运算规则是:
f(0)=0
f(1)=1
覆盖以下转换路径
  M(x)->E(x’)   转换路径(加密函数和密钥)
  M(x)=0,E(x’)=0   加密函数2,即E(x’)=f(M(x))
  M(x)=0,E(x’)=1   加密函数1,即E(x’)=~M(x)
  M(x)=1,E(x’)=0   加密函数1,即E(x’)=~M(x)
  M(x)=1,E(x’)=1   加密函数2,即E(x’)=f(M(x))
综上所述,用户可以根据一定方法选定最小加密函数集合,进而通过本发明提出的加密函数随机分配的方法,使从明文到密文的转换路径是完全等概的和随机的。
在使用中,用户在选定最小加密函数及密钥集合后,可以根据需要增加其他加密函数及密钥,使系统更安全,最终选定的加密函数集合,将被本发明提供的加密方法调用。
针对上述加密方法,本发明实施例还提供了一种数据解密方法,参见图6和图10,该方法包括以下步骤:
步骤S601:获取解密信息,并根据解密信息从保存的随机种子中采集数据生成加密函数索引随机串;
所获取的解密信息是在数据的加密过程中形成的,包括明文数据分组信息,数据加密时存储的随机种子,再次生成所加密的明文对应的加密函数索引随机串的信息以及遍历加密函数索引随机串起始的游标位置信息;
步骤S602:根据解密信息,确定加密函数索引随机串的遍历起始位置,同步遍历加密函数索引随机串及待解密密文,根据解密信息确定密文每位数据对应的加密函数;
步骤S603:根据加密函数确定密文每位数据对应的解密函数;
步骤S604:用解密函数将密文每位数据还原成明文每位数据;
步骤S605:将明文每位数据按其所对应的密文位置排列,形成明文。
本发明中,每个解密函数都包括与其对应的解密密钥;每个解密函数对应一个加密函数,解密时所需的解密密钥也对应其加密函数所使用的加密密钥。
参见图7,本发明实施例还提供了一种数据解密装置,为了便于说明,仅示出了与本发明有关的部分。该装置包括:
获取模块71,用于获取解密信息;
随机种子存储模块76,用于存储加密时产生的随机种子;
加密函数索引随机串生成模块72,用于根据获取模块71获取的解密信息,从随机种子存储模块76保存的随机种子中采集数据生成加密函数索引随机串;
同步遍历模块77,用于根据获取模块71获取的解密信息,确定加密函数索引随机串的遍历起始位置,同步遍历加密函数索引随机串及待解密密文;
加密函数确定模块73,用于根据获取模块71获取的解密信息,确定密文中各个比特位数据对应的加密函数;
解密函数获取模块74,用于根据加密函数确定模块73确定的加密函数,确定密文中各个比特位数据对应的解密函数;
明文还原模块75,用于用解密函数将密文中各个比特位的数据还原成明文中的各个比特位的数据,并将明文中各个比特位的数据按其所对应的密文位置排列,形成明文。
为了进一步证明本发明的可行性,下面举例对上述加密实现方式进行全面说明如下。
方法1、加密函数索引随机串固定位方法
设定有数个明文待加密,其中第k个明文的位数是m位,有n种加密算法待选,这里m、n、k都取自然数,随机为第k个明文的每个数据位分配加密函数及对应密钥;
首先,生成预定长度w位的真随机数0、1串,作为随机种子,其中w是自然数,且w>m;
对该随机种子做预定次数u(u是自然数)的随机数据采集,每次数据采集的起始游标位置和所采集的数据长度(可以大于等于0)都是随机的,如果数据采集至随机种子尾部,则返回到头部继续数据采集;
将每次采集的数据级联成预定长度为p位的加密函数索引随机串,p是自然数,如果log2n是整数则p>m×log2n,如果log2n非整数则p>m×[log2n+1]其中,[log2n+1]是对log2n+1的取整运算。
判断所生成的加密函数索引随机串是否曾经被使用过,如果是,则重新生成加密函数索引随机串,否则保留该加密函数索引随机串待用;
为加密函数中每种加密算法分配十进制数字标识,如第一种加密函数分配0,第二种加密函数分配1,第三种加密函数分配2,第四种加密函数分配3,依次类推;
然后,从产生的加密函数索引随机串和待存储明文的头部开始同步遍历数据,每次遍历先取log2n或[log2n]+1位,其中[log2n]是对log2n的取整运算,将每次遍历所取的log2n或[log2n]+1位二进制数转换为十进制数,并将转换所得值对n作取模运算,取模的值作为该位明文数据对应的加密函数索引;
继续同步遍历加密函数索引随机串和明文,直到所有明文位或部分都被随机分配了加密函数;
每次数据采集前,需要先产生两个随机值,对其分别取模,得到随机的起始游标位置和所需采集的数据长度;
假定在数据采集前,生成了两个真随机数R1,R2,那么需要产生两个分别小于w和p-q的随机值T1,T2(其中,q是小于等于p的自然数,w是随机种子的长度,p是所需产生明文加密位随机串的长度,q是已经产生数据的长度,p-q就是随机串剩余未采集数据的位数),那么
T1=R1 mod  w
T2=R2 mod(p-q)
其中,mod是取模运算。
加密函数索引随机串的产生方法,如图8所示。
记第k个明文对应的p位加密函数索引随机串为rek,那么rek等于从预定长度随机种子中u次随机采集的数据的顺序组合,记从随机种子中第i次采集的数据为(Curs,Cure)i,其中i是自然数,且i≤u,Curs为第i次采集数据在随机种子中起始游标位置,相应地Cure为第i次采集数据的终止游标位置,Curs和Cure都以从随机种子首位的偏移量标识,可见0≤Curs≤Cure≤m,当Cure等于Curs时,数据采集的位数为0,那么第i次采集的数据为预定长度随机种子中Curs到Cure之间的数据;进一步,第k个明文对应的p位加密函数索引随机串rek可以表达为:
rek=[(Curs,Cure)1,(Curs,Cure)2,....(Curs,Cure)i,....(Curs,Cure)u]k
为说明本发明的可行性,现对方法1产生的加密函数索引随机串的真随机性/不可重现性进行分析,确保由比对模块比对的加密函数索引随机串的真随机性及不重复使用,对于整个系统不被密码分析者破解是至关重要的。
需要重申的是,只要作为随机串使用的字符是有限的,那么随机串就可能重现,其随机性体现在重现的概率很小且无规律。假设随机串的位数是1024位,因为可以组成随机串的字符只有0和1,所以无论如何随机,其重现概率仍然大于等于1/21024,即1/(1.79*10308)。
本方法1中为每个明文分配加密函数的真随机性体现在两个地方:一是由真随机数组成的随机种子,另一是在随机种子中随机采集数据(数据采集起始位置和采集长度都来源于真随机数),生成p位加密函数索引随机串。
进而从固定位置遍历p位随机串(在本方法中是随机串的头部),产生每个明文部分对应的加密函数索引(需经过取模运算)。
进一步可以算出该方法1对相同位数明文产生同样加密函数分配索引的概率依赖于p位加密函数索引随机串重现的概率,在这里仅考虑基于相同随机种子p位随机串重现的概率。
方法2、加密函数索引随机串不固定位方法
本方法2类似于方法1,不同的是:该方法中从p位算法索引生成随机串中随机位置开始遍历产生加密算法的索引值,通过遍历起始位置的不确定性,增强整个方法的安全性。具体详述如下(变量设定同方法1):
首先生成预定长度w位的真随机0,1串,作为随机种子,其中w是自然数,且w>m;
对该随机种子做预定次数u(u是自然数)的随机数据采集,每次数据采集的起始位置和所采集的数据长度(可以是大于等于0)都是随机的,如果数据采集已至随机种子尾部,则回到其头部继续数据采集;
将每次采集的数据级联成预定长度p位的加密函数索引随机串,p是自然数,如果log2n是整数,p>m×log2n,如果log2n非整数则p>m×[log2n+1];其中,[log2n+1]是对log2n+1的取整运算;
判断所生成的加密函数索引随机串是否曾经被使用过,如果是,则重新生成加密函数索引随机串,否则保留该加密函数索引随机串待用;
为加密函数集合中每种加密算法分配十进制数字标识,如第一种加密函数分配0,第二种加密函数分配1,第三种加密函数分配2,第四种加密函数分配3,依次类推;
在p位随机串中预定一个随机起始位置,从随机串该p位置和明文的头部开始同步遍历数据,每次遍历先取log2n(如果log2n是整数)或[log2n]+1(如果log2n非整数)位,其中[log2n]是对log2n的取整运算,将每次遍历所取的log2n或[log2n]+1位二进制数转换为十进制数,然后将转换所得值对n作取模运算,取模的值作为该位明文数据对应的加密函数索引;
继续同步遍历加密函数索引随机串和明文,当数据遍历到加密函数索引随机串尾部时,回到头部继续遍历,直到所有明文位或部分都被随机分配了加密函数。
每次数据采集前,先产生两个随机值,对其分别取模,得到随机的起始游标位置和所需采集的数据长度,获得随机的起始游标位置和所需采集的数据长度的方法同方法1所述。
假定在数据遍历前,生成了一个真随机数R3,那么现在需要产生一个小于p的随机值T3,T3就是p位随机串遍历的起始位置,那么
T3=R3 mod p
其中,mod是取模运算。
为进一步说明本发明实施例可行性,现对本方法2下加密函数索引随机串的真随机性/不可重现性分析。
与方法1相比,方法2中增加了一个影响整个方法随机性的因素,即在p位随机串中,从一个随机位置开始遍历数据产生每个明文部分对应的加密算法索引,因为遍历的起始位置有p种可能,所以对应明文部分加密算法索引重现的概率为:1/(p*wu)。
进一步以方法1所设定数据为例,这里p>m×log2n,即p>160,000,000,即160M位。那么,通过该方法产生rek重复的最小概率是1/(1.6*109008),可见其重复的概率已经足够低,符合随机特征的特性。实际使用中,还可以通过增加p、u和w的数值继续提高其随机性,降低其重复概率,或者定期更换随机种子,以提高整个方法的安全性。
总之,通过以上实现可以证明加密函数随机分配方法在实际应用中可行。
本发明与传统完美加密系统典型实现OTP方法相比,具有以下优势:
1、因为有加密函数本身的保护作用(在不知其密钥的情况下,需要很多计算能力才能将密文还原成唯一明文),可以有效降低在密码本(对本发明而言,对应的是加密函数索引本)意外泄露后,造成的数据泄漏的风险;
2、整个系统的安全性保护被分散成三个部分-随机种子、加密函数索引随机串和每个加密函数对应的密钥,也就是说只有同时截获这三个部分的信息,才能够较容易破解密文,相比于传统OTP系统安全性仅依赖于大量随机密钥保护一个部分,数据泄漏风险被有效分散。
本发明实施例通过合理选择加密函数,运用加密函数随机轮转对明文每位数据进行加密,实现密文被截获后破解的后验概率与密文破解的先验概率相等,实现与传统OTP方法具有相同加密强度,同时相比于传统OTP系统安全性仅依赖于大量随机密钥保护一个部分,数据泄漏风险被有效分散,可以有效降低在密码本意外泄露后,造成的数据泄漏的风险。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种数据加密方法,其特征在于,所述方法包括:
对待加密明文进行分组;
为每组明文数据随机分配加密函数;
用加密函数分别对所述每组明文数据进行加密;
将所述加密的数据按其对应的所述明文位置排列形成密文。
2.如权利要求1所述的数据加密方法,其特征在于,在所述对待加密明文进行分组和为每组明文数据随机分配加密函数的步骤之间还包括:
生成预定长度的真随机数和由所述真随机数组成的预定长度的随机种子;
建立加密函数集合,并对所述集合中的每个加密函数分配索引;
对所述随机种子进行数据采集,生成加密函数索引随机串;
同步遍历所述加密函数索引随机串和待加密明文。
3.如权利要求2所述的数据加密方法,其特征在于,所述加密函数集合包括覆盖从待加密明文中任意0、1到密文中对应位置0或1的所有转换路径的加密函数,相应地,确定所述覆盖从待加密明文中任意0、1到密文中对应位置0或1的所有转换路径的加密函数的步骤包括:选择覆盖最多明文到密文可能转换路径的加密函数,并记录所述可能转换路径;判断所述可能转换路径是否被完全覆盖,如果是,则将所有选择的加密函数作为所述加密函数集合的元素;否则,选择另一覆盖最多未覆盖的可能转换路径的加密函数,并记录当前加密函数覆盖的路径,重新选择覆盖最多未覆盖的可能转换路径的加密函数,直至所选择的加密函数能覆盖所有的可能转换路径,将所有选择的加密函数作为所述加密函数集合的元素。
4.如权利要求2所述的数据加密方法,其特征在于,所述对所述随机种子进行数据采集,生成加密函数索引随机串的步骤还包括:
通过信息摘要运算生成所述加密函数索引随机串的信息摘要值;
将所述信息摘要值与先前存储的信息摘要值进行比对,如果一致,则对所述随机种子再次进行数据采集,生成新的加密函数索引随机串,再进行信息摘要值的比对,直至确定不相同的加密函数索引随机串,如果不一致,则保存当前所生成的加密函数索引随机串。
5.如权利要求1所述的数据加密方法,其特征在于,所述每组明文数据包括至少一个明文比特位。
6.一种数据加密装置,其特征在于,所述装置包括:
分组模块,用于对待加密明文进行分组;
加密函数随机分配模块,用于为所述分组模块分组后的每组明文数据随机分配加密函数;
加密处理模块,用于用所述加密函数随机分配模块分配的加密函数对所述明文中的数据进行加密,并将所述加密的数据按其对应的所述明文位置排列形成密文。
7.如权利要求6所述的数据加密装置,其特征在于,所述装置还包括:
真随机数生成模块,用于生成预定长度的真随机数和由所述真随机数组成的预定长度的随机种子;
加密函数建立模块,用于建立并存储加密函数集合;
分配模块,用于对所述加密函数建立模块建立的加密函数集合中的每个加密函数分配索引;
加密函数索引随机串生成模块,用于对所述真随机数生成模块生成的随机种子进行数据采集,生成加密函数索引随机串;
同步遍历模块,用于同步遍历所述加密函数索引随机串生成模块生成的加密函数索引随机串和待加密明文。
8.如权利要求7所述的数据加密装置,其特征在于,所述加密函数索引随机串生成模块包括:
数据采集单元,用于对所述真随机数生成模块生成的随机种子进行数据采集,并发送数据采集结果;
索引随机串生成单元,用于根据接收的所述数据采集单元发送的数据采集结果,生成并保存加密函数索引随机串。
9.如权利要求8所述的数据加密装置,其特征在于,所述加密函数索引随机串生成模块还包括:
信息摘要值生成模块,用于通过信息摘要运算生成所述索引随机串生成单元生成的加密函数索引随机串的信息摘要值;
存储模块,用于存储所述信息摘要值生成模块生成的加密函数索引随机串的信息摘要值;
比对模块,用于将所述信息摘要值生成模块生成的信息摘要值与所述存储模块先前存储的信息摘要值进行比对,并向所述加密函数索引随机串生成模块发送比对结果。
10.一种数据解密方法,其特征在于,所述方法包括:
获取解密信息,并根据所述解密信息从保存的随机种子中采集数据生成加密函数索引随机串;
根据所述解密信息,确定所述加密函数索引随机串的遍历起始位置,同步遍历所述加密函数索引随机串及待解密密文;
根据所述解密信息确定所述密文中各个比特位数据对应的加密函数;
根据所述加密函数,确定所述密文中各个比特位数据对应的解密函数;
用所述解密函数将所述密文中各个比特位的数据还原成明文中的各个比特位的数据;
将所述明文中各个比特位的数据按其所对应的密文位置排列,形成明文。
11.一种数据解密装置,其特征在于,所述装置包括:
获取模块,用于获取解密信息;
随机种子存储模块,用于存储加密时产生的随机种子;
加密函数索引随机串生成模块,用于根据所述获取模块获取的解密信息,从所述随机种子存储模块保存的随机种子中采集数据生成加密函数索引随机串;
同步遍历模块,用于根据所述获取模块获取的解密信息,确定所述加密函数索引随机串的遍历起始位置,同步遍历所述加密函数索引随机串及待解密密文;
加密函数确定模块,用于根据所述获取模块获取的解密信息,确定所述密文中各个比特位数据对应的加密函数;
解密函数获取模块,用于根据所述加密函数确定模块确定的加密函数,确定所述密文中各个比特位数据对应的解密函数;
明文还原模块,用于用所述解密函数将所述密文中各个比特位的数据还原成明文中的各个比特位的数据,并将所述明文中各个比特位的数据按其所对应的密文位置排列,形成明文。
CN2010105662895A 2010-11-29 2010-11-29 一种数据加解密方法及装置 Active CN102064936B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2010105662895A CN102064936B (zh) 2010-11-29 2010-11-29 一种数据加解密方法及装置
US13/001,022 US8942373B2 (en) 2010-11-29 2010-12-01 Data encryption and decryption method and apparatus
PCT/CN2010/079315 WO2012071714A1 (zh) 2010-11-29 2010-12-01 一种数据加解密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105662895A CN102064936B (zh) 2010-11-29 2010-11-29 一种数据加解密方法及装置

Publications (2)

Publication Number Publication Date
CN102064936A true CN102064936A (zh) 2011-05-18
CN102064936B CN102064936B (zh) 2012-08-22

Family

ID=44000049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105662895A Active CN102064936B (zh) 2010-11-29 2010-11-29 一种数据加解密方法及装置

Country Status (2)

Country Link
CN (1) CN102064936B (zh)
WO (1) WO2012071714A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609643A (zh) * 2012-01-10 2012-07-25 道里云信息技术(北京)有限公司 一种对虚拟机作动态密码学保护与所需的密钥管理方法
CN103825885A (zh) * 2014-01-23 2014-05-28 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种互联网内容加密发布方法及系统
CN104022865A (zh) * 2014-04-29 2014-09-03 云南电网公司 一种网络数据加密传输方法
CN105208038A (zh) * 2015-10-10 2015-12-30 郑志超 一种加密方法及装置
CN106656475A (zh) * 2017-01-09 2017-05-10 李朋林 一种用于高速加密的新型对称型密钥算法
WO2017185312A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 加密、解密方法及装置
CN107615702A (zh) * 2016-03-24 2018-01-19 慧与发展有限责任合伙企业 文本加密
CN107925569A (zh) * 2015-09-18 2018-04-17 奥林巴斯天空技术公司 使用有组织地导出的同步过程的安全通信
CN108650269A (zh) * 2018-05-16 2018-10-12 中国科学技术大学 一种基于强化学习的分级加密方法及系统
CN109743592A (zh) * 2019-01-09 2019-05-10 安徽睿极智能科技有限公司 基于二维密码本的实时码流加密方法
CN111400738A (zh) * 2020-03-19 2020-07-10 杭州趣维科技有限公司 一种多维查表方式的数据加密方法
CN111556071A (zh) * 2020-05-12 2020-08-18 深圳市汇智通咨询有限公司 一种用于计算机的数据加密算法与系统
CN112685747A (zh) * 2020-01-17 2021-04-20 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113343281A (zh) * 2021-07-09 2021-09-03 广东电网有限责任公司 面向数据交易的otp加密即服务云计算方法及系统
CN115514482A (zh) * 2022-10-11 2022-12-23 深圳市链融科技股份有限公司 基于伪随机数的信息加密方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697369A (zh) * 2005-06-14 2005-11-16 河北工业大学 分组密码加密解密的方法及其加密解密器
CN1878059A (zh) * 2006-07-07 2006-12-13 北京财富投资有限公司 一种分组加密及解密算法
CN101013938A (zh) * 2007-01-12 2007-08-08 广州市诚毅科技软件开发有限公司 一种分组密码加密方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100431297C (zh) * 2005-02-28 2008-11-05 胡祥义 采用双重认证协议来防止用户口令被盗用的方法
CN100403281C (zh) * 2006-09-01 2008-07-16 西安交通大学 一种基于动态密钥的硬盘数据加密方法及其装置
KR100957121B1 (ko) * 2008-02-22 2010-05-13 성균관대학교산학협력단 키 분배 방법 및 인증 서버
CN101692636B (zh) * 2009-10-27 2011-10-05 中山爱科数字科技有限公司 一种基于数据元和坐标算法的混合型数据加密的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697369A (zh) * 2005-06-14 2005-11-16 河北工业大学 分组密码加密解密的方法及其加密解密器
CN1878059A (zh) * 2006-07-07 2006-12-13 北京财富投资有限公司 一种分组加密及解密算法
CN101013938A (zh) * 2007-01-12 2007-08-08 广州市诚毅科技软件开发有限公司 一种分组密码加密方法

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609643A (zh) * 2012-01-10 2012-07-25 道里云信息技术(北京)有限公司 一种对虚拟机作动态密码学保护与所需的密钥管理方法
CN103825885A (zh) * 2014-01-23 2014-05-28 广东顺德中山大学卡内基梅隆大学国际联合研究院 一种互联网内容加密发布方法及系统
CN104022865A (zh) * 2014-04-29 2014-09-03 云南电网公司 一种网络数据加密传输方法
CN107925569A (zh) * 2015-09-18 2018-04-17 奥林巴斯天空技术公司 使用有组织地导出的同步过程的安全通信
CN105208038A (zh) * 2015-10-10 2015-12-30 郑志超 一种加密方法及装置
US11070356B2 (en) 2016-03-24 2021-07-20 Hewlett Packard Enterprise Development Lp Text encryption
CN107615702A (zh) * 2016-03-24 2018-01-19 慧与发展有限责任合伙企业 文本加密
WO2017185312A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 加密、解密方法及装置
CN108028754A (zh) * 2016-04-28 2018-05-11 华为技术有限公司 加密、解密方法及装置
CN106656475B (zh) * 2017-01-09 2020-01-21 李朋林 一种用于高速加密的新型对称型密钥加密方法
CN106656475A (zh) * 2017-01-09 2017-05-10 李朋林 一种用于高速加密的新型对称型密钥算法
CN108650269A (zh) * 2018-05-16 2018-10-12 中国科学技术大学 一种基于强化学习的分级加密方法及系统
CN109743592A (zh) * 2019-01-09 2019-05-10 安徽睿极智能科技有限公司 基于二维密码本的实时码流加密方法
CN109743592B (zh) * 2019-01-09 2021-07-23 安徽睿极智能科技有限公司 基于二维密码本的实时码流加密方法
CN112685747A (zh) * 2020-01-17 2021-04-20 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN111400738A (zh) * 2020-03-19 2020-07-10 杭州趣维科技有限公司 一种多维查表方式的数据加密方法
CN111400738B (zh) * 2020-03-19 2023-05-02 杭州小影创新科技股份有限公司 一种多维查表方式的数据加密方法
CN111556071A (zh) * 2020-05-12 2020-08-18 深圳市汇智通咨询有限公司 一种用于计算机的数据加密算法与系统
CN113343281A (zh) * 2021-07-09 2021-09-03 广东电网有限责任公司 面向数据交易的otp加密即服务云计算方法及系统
CN115514482A (zh) * 2022-10-11 2022-12-23 深圳市链融科技股份有限公司 基于伪随机数的信息加密方法、装置、设备及介质

Also Published As

Publication number Publication date
WO2012071714A1 (zh) 2012-06-07
CN102064936B (zh) 2012-08-22

Similar Documents

Publication Publication Date Title
CN101984574B (zh) 一种数据加解密方法及装置
CN102064936B (zh) 一种数据加解密方法及装置
CN102012993B (zh) 一种数据选择加密解密方法及装置
US8942373B2 (en) Data encryption and decryption method and apparatus
CN102006300B (zh) 一种云存储数据加密方法、装置及系统
CN101034978B (zh) 用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统
CN104580236B (zh) 流媒体加密及解密方法、加密及解密装置
CN103152362B (zh) 基于云计算的大数据文件加密传输方法
CN103684794A (zh) 一种基于des、rsa、sha-1加密算法的通信数据加解密方法
CN103716157A (zh) 分组多密钥加密方法及装置
CN101986663A (zh) 一种基于otp的云存储数据存储方法、装置及系统
CN107332657A (zh) 一种基于区块链数字签名的加密方法及系统
Gayathri et al. Hybrid cryptography for random-key generation based on ECC algorithm
Alemami et al. Advanced approach for encryption using advanced encryption standard with chaotic map
CN103414552A (zh) 一种利用二叉树遍历方式进行加密、解密方法及装置
CN100459493C (zh) 流密码生成器、随机数生成方法、加密系统及加密方法
EP2176985A2 (en) Method, computerized device and computer program for efficient and low power encrypting or decrypting of data
CN106850192A (zh) 一种优化移动设备数据库加密效率的方法
JP5586758B1 (ja) 動的暗号化鍵生成システム
EP1695242A2 (en) Content distribution server, key assignment method, content output apparatus, and key issuing center
CN109120589B (zh) 一种基于加密密码的终端信息保护方法和装置
Antonio et al. A modified generation of S-box for advanced encryption standards
Sreehari et al. Implementation of hybrid cryptosystem using DES and MD5
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
KR101316605B1 (ko) N―box를 이용한 암호 알고리즘의 일회용 패스워드(otp) 생성방법.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181115

Address after: 100193 West District, First Floor of Lisichen Building, No. 25 Building, 8 Wangxi Road, Northeast Haidian District, Beijing

Patentee after: Yuntian (Beijing) Data Technology Co., Ltd.

Address before: 100085 Beijing Haidian District Shangdi Information Industry Base North District No. 5 Overground Glorious International Center B Block 1808

Patentee before: Beijing Zhuowei Tiancheng Technology Consultation Co., Ltd.