主权项 |
一种随机化的文档分块加密方法,其特征在于:所述加密方法包括以下步骤:步骤1:确定传输加密算法集合和加密密钥集合,并引入空加密算法NULL,NULL表示不进行加密;步骤2:对文档进行分块得到分块文档,并将所述分块文档随机化,生成随机分块文档序列;依据用户提供的文档,对文档以从头到尾的顺序进行分块得到分块文档;所述步骤2包括以下步骤:步骤2‑1:对文档进行分块得到分块文档;用D表示文档,用SPLIT<sub>SIZE</sub>表示文档分块,则有SPLIT<sub>SIZE</sub>:D‑>(d<sub>1</sub>,d<sub>2</sub>,…,d<sub>N</sub>)其中:d<sub>i</sub>(1≤i≤N)为文档D划分后的分块文档,按照d<sub>1</sub>,d<sub>2</sub>,…,d<sub>N</sub>的顺序能够恢复文档D;下标SIZE表示文档D的大小,分块时依据SIZE自动选择分块的个数,且有Size(d<sub>1</sub>)=Size(d<sub>2</sub>)=…=Size(d<sub>N‑1</sub>)≥Size(d<sub>N</sub>)Size表示分块文档的大小,在对文档进行划分的过程中,Split函数智能依据文档D的大小对文档D进行划分,以使得20M≤Size(d<sub>i</sub>)≤200M,其中1≤i≤N;步骤2‑2:将所述分块文档随机化,生成随机分块文档序列;用Random<sub>1</sub>表示随机分块文档序列,则有Random<sub>1</sub>:(d<sub>1</sub>,d<sub>2</sub>,…,d<sub>N</sub>)–>(d<sub>k1</sub>,d<sub>k2</sub>,…,d<sub>kN</sub>)d<sub>1</sub>,d<sub>2</sub>,…,d<sub>N</sub>为有序且完整的分块文档,k<sub>1</sub>,k<sub>2</sub>,…,k<sub>N</sub>为1,2,…,N的随机序列,随机化后,d<sub>1</sub>,d<sub>2</sub>,…,d<sub>N</sub>变为随机的d<sub>k1</sub>,d<sub>k2</sub>,…,d<sub>kN</sub>序列;步骤3:随机从所述加密算法集合中选取加密算法,从加密密钥集合中随机选取相应的加密密钥,并对所述加密算法和加密密钥进行随机配对;所述步骤3中,所述加密算法个数与分块文档块数相等,分析NULL的百分比,所述百分比超过50%则需要重新选取加密算法;所述步骤3中,用Random<sub>2</sub>表示随机选取加密算法,N为分块文档的个数,ed<sub>1</sub>,ed<sub>2</sub>,…,ed<sub>N</sub>表示返回的结果,则有Random<sub>2</sub>:E×N‑>(ed<sub>1</sub>,ed<sub>2</sub>,…,ed<sub>N</sub>)步骤4:将所述分块文档与配对的所述加密算法和加密密钥随机配对,形成<分块文档,加密算法,加密密钥>的配对序列;所述步骤4中,分块文档与配对的所述加密算法和加密密钥随机配对,有Random:(d<sub>k1</sub>,d<sub>k2</sub>,…,d<sub>kN</sub>)×(<ed<sub>j1</sub>,key<sub>j1</sub>>,<ed<sub>j2</sub>,key<sub>j2</sub>>,…<ed<sub>jN</sub>,key<sub>jN</sub>>)‑>(<d<sub>k1</sub>,<ed<sub>l1</sub>,key<sub>l1</sub>>>,<d<sub>k2</sub>,<ed<sub>l2</sub>,key<sub>l2</sub>>>,…<d<sub>kN</sub><ed<sub>lN</sub>,key<sub>lN</sub>>);其中:l<sub>1</sub>,l<sub>2</sub>,…,l<sub>N</sub>是j<sub>1</sub>,j<sub>2</sub>,…,j<sub>N</sub>的随机序列,形成的配对系列为<分块文档,加密算法,加密密钥>;步骤5:对所述分块文档进行加密。 |