Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA ENCRYPTION AND DECRYPTION METHOD AND DEVICE
Document Type and Number:
WIPO Patent Application WO/2012/071714
Kind Code:
A1
Abstract:
A data encryption and decryption method and device are provided, which relate to the technical field of data encryption and decryption. The data encryption method comprises the following steps: grouping plaintext to be encrypted; assigning an encryption function randomly to each group of the plaintext data; encrypting each group of the plaintext data respectively with the encryption function; and arranging the encrypted data to form ciphertext according to the position of the corresponding plaintext. The data encryption device comprises a grouping module, an encryption function random assignment module, and an encryption processing module. A data decryption method and device are also provided. By assigning the encryption function randomly to the plaintext to be encrypted when carrying out the encryption, encrypting the plaintext data using the assigned encryption function and arranging the encrypted data to form the ciphertext, the solution greatly improves the security of data storage and realizes the perfect encryption of data.

Inventors:
LIU, Hui (Room 1808 Building 4 Huihuang International Center, Shangdi 10th AvenueHaidian district, Beijing 5, 100085, CN)
Application Number:
CN2010/079315
Publication Date:
June 07, 2012
Filing Date:
December 01, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BEIJING Z & W TECHNOLOGY CONSULTING CO., LTD. (Room 1808 Building 4 Huihuang International Center, Shangdi 10th AvenueHaidian district, Beijing 5, 100085, CN)
北京卓微天成科技咨询有限公司 (中国北京市海淀区上地十街辉煌国际广场4号楼1808室, Beijing 5, 100085, CN)
International Classes:
H04L9/14
Attorney, Agent or Firm:
BEIJING DEQUAN LAWFIRM (Suite 1008, Kuntai International Mansion B 12 Chaowai Avenu, Chaoyang District Beijing 0, 100020, CN)
Download PDF:
Claims:
权 利 要 求 书

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、 一种数据解密装置, 其特征在于, 所述装置包括:

获取模块, 用于获取解密信息;

随机种子存储模块, 用于存储加密时产生的随机种子;

加密函数索引随机串生成模块, 用于根据所述获取模块获取的解密信息, 从所述随机种子存储模块保存的随机种子中采集数据生成加密函数索引随机 串;

同步遍历模块, 用于根据所述获取模块获取的解密信息, 确定所述加密函 数索引随机串的遍历起始位置, 同步遍历所述加密函数索引随机串及待解密密 文;

加密函数确定模块, 用于根据所述获取模块获取的解密信息, 确定所述密 文中各个比特位数据对应的加密函数;

解密函数获取模块, 用于根据所述加密函数确定模块确定的加密函数, 确 定所述密文中各个比特位数据对应的解密函数;

明文还原模块, 用于用所述解密函数将所述密文中各个比特位的数据还原 成明文中的各个比特位的数据, 并将所述明文中各个比特位的数据按其所对应 的密文位置排列, 形成明文。

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 SIGNALING SYSTEM, 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(l) = 1

覆盖以下转换路径

方法 B: 通过选择如下加密函数和密钥,

加密函数 1: 非运算 (: ~)。 对应运算规则是:

-0=1

~ 1 = 0

加密函数 2:f(a) = a, a是输入也是输出。 对应运算规则是:

f(0) = 0

f(l) = 1 覆盖以下转换路径

综上所述, 用户可以根据一定方法选定最小加密函数集合 , 进而通过本发 明提出的加密函数随机分配的方法, 使从明文到密文的转换路径是完全等概的 和随机的。

在使用中, 用户在选定最小加密函数及密钥集合后, 可以根据需要增加其 他加密函数及密钥, 使系统更安全, 最终选定的加密函数集合, 将被本发明提 供的加密方法调用。

针对上述加密方法, 本发明实施例还提供了一种数据解密方法, 参见图 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是 自然数, J. w > m; 对该随机种子做预定次数 u ( u是自然数)的随机数据采集, 每次数据采集 的起始游标位置和所采集的数据长度(可以大 于等于 0 )都是随机的, 如果数 据采集至随机种子尾部, 则返回到头部继续数据采集;

将每次采集的数据级联成预定长度为 p位的加密函数索引随机串, p是自 然数, ^口果 log 2 «是整数贝 1 J p> m x log 2 n , ^口果 log 2 « 整数贝 1 J p> m x [log 2 w + 1]其 中, [log 2 η + 1]是对 \og 2 n + 1的取整运算。

判断所生成的加密函数索引随机串是否曾经被 使用过, 如果是, 则重新生 成加密函数索引随机串, 否则保留该加密函数索引随机串待用;

为加密函数中每种加密算法分配十进制数字标 识, 如第一种加密函数分配 0, 第二种加密函数分配 1 , 第三种加密函数分配 2, 第四种加密函数分配 3 , 依次类推;

然后, 从产生的加密函数索引随机串和待存储明文的 头部开始同步遍历数 据, 每次遍历先取 1(¾ 2 «或[1(¾ 2 «]+1位, 其中 [log 2 «]是对 log 2 «的取整运算, 将 每次遍历所取的 log 2 « 或 [log 2 «]+l位二进制数转换为十进制数, 并将转换所得 值对 n作取模运算, 取模的值作为该位明文数据对应的加密函数索 引;

继续同步遍历加密函数索引随机串和明文, 直到所有明文位或部分都被随 机分配了加密函数;

每次数据采集前, 需要先产生两个随机值, 对其分别取模, 得到随机的起 始游标位置和所需采集的数据长度;

假定在数据采集前, 生成了两个真随机数 R1, R2, 那么需要产生两个分别 小于 w和 p-q的随机值 Tl, T2 (其中, q是小于等于 p的自然数, w是随机种 子的长度, p是所需产生明文加密位随机串的长度, q是已经产生数据的长度, p-q就是随机串剩余未采集数据的位数), 那么

Tl = Rl mod w

T2 = R2 mod (p-q)

其中, mod是取模运算。 加密函数索引随机串的产生方法, 如图 8所示。

记第 k个明文对应的 p位加密函数索引随机串为 re k , 那么 re k 等于从预定 长度随机种子中 u次随机采集的数据的顺序组合, 记从随机种子中第 i次采集 的数据为 (Cur s , Cure),, 其中 i是自然数, 且 i u, Cur s 为第 i次采集数据在随机 种子中起始游标位置, 相应地 Cur e 为第 i次采集数据的终止游标位置, 0^和 Cur e 都以从随机种子首位的偏移量标识, 可见 0 Cur s Cur e m, 当 Cur e 等于 Cur s 时, 数据采集的位数为 0, 那么第 i次采集的数据为预定长度随机种子中 Cur s 到 Cur e 之间的数据; 进一步, 第 k个明文对应的 p位加密函数索引随机串 re k 可以表达为:

re k =[(Cur s , Cur e )i , (Cur s , Cur e ) 2 , .... (Cur s , Cur e )i , .... (Cur s , Cur e ) u ] k;

为说明本发明的可行性, 现对方法 1产生的加密函数索引随机串的真随机 性 /不可重现性进行分析,确保由比对模块比对 加密函数索引随机串的真随机 性及不重复使用, 对于整个系统不被密码分析者破解是至关重要 的。

需要重申的是, 只要作为随机串使用的字符是有限的, 那么随机串就可能 重现, 其随机性体现在重现的概率很小且无规律。 假设随机串的位数是 1024 位, 因为可以组成随机串的字符只有 0和 1 , 所以无论如何随机, 其重现概率 仍然大于等于 1/2 , 即 1/ ( 1.79*10 308

本方法 1中为每个明文分配加密函数的真随机性体现 两个地方: 一是由 真随机数组成的随机种子, 另一是在随机种子中随机采集数据 (数据采集起始 位置和采集长度都来源于真随机数 ), 生成 p位加密函数索引随机串。

进而从固定位置遍历 p位随机串(在本方法中是随机串的头部 ),产生每个 明文部分对应的加密函数索引 (需经过取模运算)。

进一步可以算出该方法 1对相同位数明文产生同样加密函数分配索引 概 率依赖于 p位加密函数索引随机串重现的概率, 在这里仅考虑基于相同随机种 子 p位随机串重现的概率。

方法 2、 加密函数索引随机串不固定位方法 本方法 2类似于方法 1 , 不同的是: 该方法中从 p位算法索引生成随机串 中随机位置开始遍历产生加密算法的索引值, 通过遍历起始位置的不确定性, 增强整个方法的安全性。 具体详述如下 (变量设定同方法 1 ):

首先生成预定长度 w位的真随机 0,1串,作为随机种子,其中 w是自然数, 且 w > m;

对该随机种子做预定次数 U ( U是自然数 )的随机数据采集, 每次数据采集 的起始位置和所采集的数据长度(可以是大于 等于 0 )都是随机的, 如果数据 采集已至随机种子尾部, 则回到其头部继续数据采集;

将每次采集的数据级联成预定长度 p位的加密函数索引随机串, p是自然 数, ^口果 log 2 «是整数, p> m x log 2 n , ^口果 log 2 « 整数贝 1 J p> m x [log 2 w + 1]; 其 中, [log 2 n + l]是对 \og 2 n + 1的取整运算;

判断所生成的加密函数索引随机串是否曾经被 使用过, 如果是, 则重新生 成加密函数索引随机串, 否则保留该加密函数索引随机串待用;

为加密函数集合中每种加密算法分配十进制数 字标识, 如第一种加密函数 分配 0 , 第二种加密函数分配 1 , 第三种加密函数分配 2 , 第四种加密函数分配 3 , 依次类推;

在 p位随机串中预定一个随机起始位置, 从随机串该 p位置和明文的头部 开始同步遍历数据, 每次遍历先取 log 2 « (如果 log 2 «是整数)或 [log 2 «]+l (如 果 log 2 «非整数)位,其中 [log 2 «]是对 log 2 «的取整运算,将每次遍历所取的 log 2 « 或 [log 2 «]+l位二进制数转换为十进制数, 然后将转换所得值对 n作取模运算, 取模的值作为该位明文数据对应的加密函数索 引;

继续同步遍历加密函数索引随机串和明文, 当数据遍历到加密函数索引随 机串尾部时, 回到头部继续遍历, 直到所有明文位或部分都被随机分配了加密 函数。

每次数据采集前, 先产生两个随机值, 对其分别取模, 得到随机的起始游 标位置和所需采集的数据长度, 获得随机的起始游标位置和所需采集的数据长 度的方法同方法 1所述。

假定在数据遍历前, 生成了一个真随机数 R3 , 那么现在需要产生一个小于 p的随机值 T3 , T3就是 p位随机串遍历的起始位置, 那么

T3 = R3 mod p

其中, mod是取模运算。

为进一步说明本发明实施例可行性, 现对本方法 2下加密函数索引随机串 的真随机性 /不可重现性分析。

与方法 1相比, 方法 2中增加了一个影响整个方法随机性的因素, 即在 p 位随机串中, 从一个随机位置开始遍历数据产生每个明文部 分对应的加密算法 索引, 因为遍历的起始位置有 p种可能, 所以对应明文部分加密算法索引重现 的概率为: l/(p*w u )。

进一步以方法 1所设定数据为例, 这里 p> m x \og 2 n , 即 ρ> 160,000,000, 即 160M位。 那么, 通过该方法产生 re k 重复的最小概率是 1/(1.6*10 9∞8 ), 可见 其重复的概率已经足够低, 符合随机特征的特性。 实际使用中, 还可以通过增 加 、 u和 w的数值继续提高其随机性, 降低其重复概率, 或者定期更换随机 种子, 以提高整个方法的安全性。

总之, 通过以上实现可以证明加密函数随机分配方法 在实际应用中可行。 本发明与传统完美加密系统典型实现 OTP方法相比, 具有以下优势:

1、 因为有加密函数本身的保护作用(在不知其密 钥的情况下, 需要 4艮多计 算能力才能将密文还原成唯一明文), 可以有效降低在密码本(对本发明而言, 对应的是加密函数索引本)意外泄露后, 造成的数据泄漏的风险;

2、整个系统的安全性保护被分散成三个部分 随机种子、加密函数索引随 机串和每个加密函数对应的密钥, 也就是说只有同时截获这三个部分的信息, 才能够较容易破解密文,相比于传统 OTP系统安全性仅依赖于大量随机密钥保 护一个部分, 数据泄漏风险被有效分散。

本发明实施例通过合理选择加密函数, 运用加密函数随机轮转对明文每位 数据进行加密,实现密文被截获后破解的后验 概率与密文破解的先验概率相等, 实现与传统 OTP方法具有相同加密强度, 同时相比于传统 OTP系统安全性仅 依赖于大量随机密钥保护一个部分, 数据泄漏风险被有效分散, 可以有效降低 在密码本意外泄露后, 造成的数据泄漏的风险。

以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发 明的精神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明 的保护范围之内。