CN112668042B - 一种文件加密方法 - Google Patents
一种文件加密方法 Download PDFInfo
- Publication number
- CN112668042B CN112668042B CN202011498782.8A CN202011498782A CN112668042B CN 112668042 B CN112668042 B CN 112668042B CN 202011498782 A CN202011498782 A CN 202011498782A CN 112668042 B CN112668042 B CN 112668042B
- Authority
- CN
- China
- Prior art keywords
- vector
- file
- key
- encryption
- ciphertext
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提出一种文件加密方法,用于解决现有文件加密方法中由于秘钥选取效率低导致的文件加密效率低的技术问题,实现步骤为:(1)加密方对待加密文件F进行预处理;(2)加密方生成根秘钥向量S;(3)加密方获取公开向量H和秘钥集合key;(4)加密方生成密文向量集合C;(5)加密方生成密文文件和秘钥文件并发送;(6)解密方对密文文件C进行解密。本发明在第二向量选取过程中基于LWE困难问题保证加密安全性的同时,在秘钥选取过程中通过随机选取第一向量并仅通过一次向量乘法计算秘钥参数生成秘钥,提高了秘钥选取效率,从而提高了文件加密效率。
Description
技术领域
本发明属于信息安全技术领域,涉及一种信息加解密方法,具体涉及一种文件 加密方法。
背景技术
随着网络技术的飞速发展,随之而来的而网络安全问题成为了关注的重点,而 当人们在互联网上分享保密要求较高的文件时就需要对文件进行加密,文件加密的 基本过程是发送方通过一系列运算将待加密文件加密为难以破解的密文文件并发 送给解密方,解密方使用秘钥对解密文件进行解密得到解密结果。其中,加密过程 可逆,加密后的文件可以使用秘钥通过解密算法恢复。针对人们在互联网上分享保 密要求较高的文件时所采用的文件加密方法通常需要较高的加密安全性和较高的 加密效率,而加密效率通常受秘钥选取效率和加密算法效率影响。由于现有的文件 加密方法在确保加密安全性的同时会选取数量很大、计算复杂的秘钥或秘钥集合, 由此会导致秘钥选取过程开销很大,效率很低。
常见的文件加密方法分为基于流密码的文件加密方法和基于分组密码的文件 加密方法,其中基于分组密码的文件加密方法比基于流密码的文件加密方法在保证 安全性的条件下加密效率更高,因此基于分组密码的文件加密方法更适用于对于保 密要求很高的文件,该方法需要先对文件进行分段,针对每一个分段使用不同的加 密秘钥,因此秘钥选取效率直接影响着文件的加密效率。
现有基于分组密码的文件加密方法首先针对不同的明文分段选取不同的秘钥 每一次都需要大量的计算,其次在秘钥选取过程中有可能会产生失败的秘钥,需要 进行多次重复选取,从而导致文件加密效率很低,例如,申请公布号为 CN110677237A,名称为“一种具有似混沌特性的文件加密方法”的专利申请,公开 了一种具有似混沌特性的文件加密方法,其步骤如下:读取待加密源文件M的内容 作为明文数据,基于无理数DES算法把明文数据进行分组并与密钥块进行迭代加密, 迭代加密后的密文通过循环移位和置换得到明文加密信息;为加强文件加密安全 性,对用户输入的密码采用SM3杂凑算法把用户输入的密码预处理生成数字摘要, 以E为底做自然对数运算将数字摘要生成无理数密钥;通过多重无理数异或操作, 把无理数密分别与明文加密信息再次进行循环加密,构造出具有似混沌特性加密的 环境,并加入验证信息组合文件,产生密文文件。但其存在的不足之处是:该方法 对明文分组加密过程中采用的DES秘钥块生成过程与对用户输入的密码加密过程中 采用的无理数秘钥生成过程需要将相当复杂的运算,因此秘钥选取效率很低,从而 导致文件加密效率很低。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提出一种文件加密方法,旨 在保证加密安全性的同时,提高文件加密效率。
本发明的技术思路是:首先加密方对文件进行预处理,加密方将文件分段后编 码为明文片段集合;然后加密方生成根秘钥向量,再根据根秘钥向量生成公开向量 和秘钥集合;之后再进入密文向量集合生成阶段,加密方根据明文片段集合生成第 二向量集合,并计算明文片段的第三向量参数和明文片段对应的第三向量,得到密 文向量集合;然后加密方将生成的密文文件和秘钥文件发给解密方;最后,解密方 读取秘钥文件对密文文件进行解密得到明文片段,将明文片段进行解码后进行拼接 获取解密结果。本发明确保为安全级别高、安全需求高的用户提供了更强有力的安 全保护。
根据上述技术思路,实现本发明目的采取的技术方案包括如下步骤:
(1)加密方对待加密文件F进行预处理:
加密方将待加密文件F均匀划分为J个文件片段,得到文件片段集合F'={f1,f2,...,fj,...,fJ},并对每个文件片段fj进行字符转二进制编码,得到明文片 段集合M={m1,m2,...,mj,...,mJ},其中,J>1,fj表示第j个文件片段,mj表示fj对应的明文片段;
(2)加密方生成根秘钥向量S:
加密方初始化运算域关键参数,包括运算域模数N和乘法群的生成元g, N=pq,g=g'2Nmod N2,并从集合{0,1,...,N2-1}中随机选取l个整数作为根秘钥 向量分量,构成根秘钥向量S=(s1,s2,...,si,...,sl),其中,N>2402,p和q分别表示 第一安全素数p和第二安全素数q,p=2p'+1,q=2q'+1,p'和q'分别表示素数, p'>2λ,q'>2λ,λ表示比特参数,λ≥200,g'表示从乘法群中随机选取的 生成元参数,mod表示求余运算,si表示第i个根秘钥向量分量;
(3)加密方获取公开向量H和秘钥集合Key:
(3a)加密方计算S对应的公开向量H=(h1,h2,....,hi,...,hl),其中,hi表示si对应的公开向量分量;
(3b)加密方从集合{1,2,...,N}中随机选取l个整数作为第一向量分量,共随机选取与文件片段数量相等的J次,构成第一向量集合X=(x1,x2...,xj,...,xJ), xj=(x′1,x′2...,x′i,...,x′l),并令x′l=1,其中,xj表示第j次随机选取第一向量,x′i表 示第i个第一向量分量;
(4)加密方生成密文向量集合C:
(4)加密方生成密文向量集合C:
(4a)加密方根据第一向量xj及其对应的明文片段mj计算xj对应的第二向量 yj=(y′1,y′2...,y′i,...,y′l-1,y′l),并令y′l-1=1,得到第二向量集合Y={y1,y2,...,yj,...,yJ};
(4b)加密方从集合中随机选取一个整数作为安全参数r,并通过r计算mj的第三向量参数c′0和mj对应的第三向量dj=(c′1,c′2,...,c′i,...,c′l),再c′0与每一个dj的组合作为mj对应的密文向量cj=(c′0,dj),构成密文向量集合 C={c1,c2,...,cj,...,cJ},其中,表示向下取整,c′i表示第i个第三向量分量,c′0和 c′i的计算公式分别为:
c′0=grmod N2
(5)加密方生成密文文件和秘钥文件并发送:
加密方将密文向量集合C作为密文文件,将N,l,Key作为秘钥文件,并将密 文文件和秘钥文件发送给解密方;
(6)解密方对密文文件C进行解密:
(6a)解密方通过读取的秘钥文件中N,l和Key中每一个(xj,skj)对每个cj进 行解密,得到明文片段集合M,其中,cj的解密公式为:
其中,Π表示求积运算;
(6b)解密方对每个mj进行二进制转字符编码,得到文件片段集合 F'={f1,f2,...,fj,...,fJ},并按照从前到后的顺序对F'中的J个文件片段进行拼接, 得到C的解密结果。
本发明与现有技术相比,具有如下优点:
本发明在文件加密的秘钥生成过程中,随机选取第一向量且仅使用一次向量乘法运算生成秘钥参数,将第一向量与秘钥参数组合作为秘钥,同时确保每一个误差 调整秘钥互不相同,避免了现有技术中秘钥选取过程复杂导致的效率较低的缺陷, 与现有技术相比,在保证文件加密安全性的同时提高了文件加密效率。
附图说明
图1为本发明的实现流程图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细描述:
参照图1,本发明包括如下步骤:
步骤1)加密方对待加密文件F进行预处理:
加密方将待加密文件F均匀划分为J个文件片段,本实例中每个文件片段的长 度为8字节,得到文件片段集合F'={f1,f2,...,fj,...,fJ},并对每个文件片段fj进行 字符转二进制编码,常见的编码方式有Unicode编码,UTF-8编码,Base64编码, 由于Base64编码相比于前两种方式对数据进行了简单的加密,因此本实施例中采 用Base64编码,得到明文片段集合M={m1,m2,...,mj,...,mJ},其中,fj表示第j个 文件片段,mj表示fj对应的明文片段。
对于文件加密,为了确保安全性,通常需要将文件先进行分段处理,分段处理 后,由于文件的内容一般为字符等数据而本加密过程是对数字进行加密,因此分段 后需要进行字符转二进制编码。
步骤2)加密方生成根秘钥向量S:
加密方初始化运算域关键参数,包括运算域模数N和乘法群的生成元g, N=pq,g=g'2Nmod N2,并从集合{0,1,...,N2-1}中随机选取l个整数作为根秘钥 向量分量,构成根秘钥向量S=(s1,s2,...,si,...,sl),为了确保对不同的明文进行加密 后得到的密文具有最大程度的不可区分性,即为了获得该加密方案下能够达到的最 大的加密安全性,根秘钥向量S服从正态分布,且S的方差均值μ=0。 其中,N>2402,乘法群包含N2个元素,设定p和q分别 表示第一安全素数p和第二安全素数q,p=2p'+1,q=2q'+1,p'和q'分别表示 素数,p'>2λ,q'>2λ,λ表示比特参数,λ≥200,g'表示从乘法群中随机 选取的生成元参数,mod表示求余运算,si表示第i个根秘钥向量分量。本实施例 中采用l=32,λ=200,p'和q'均使用python中模块gmpy2中的is_prime函数 生成,g'使用randint函数生成。
步骤3)加密方获取公开向量H和秘钥集合Key:
步骤3b)加密方从集合{1,2,...,N}中随机选取l个整数作为第一向量分量,共随机选取与文件片段数量相等的J次,构成第一向量集合X=(x1,x2...,xj,...,xJ), xj=(x′1,x′2...,x′i,...,x′l),并令x′l=1,xj表示第j次随机选取第一向量,x′i表示第i个 第一向量分量;
步骤3c)计算X对应的秘钥参数集合SK=(sk1,sk2,...,skj,...,skJ),skj计算公式为skj=xj·S,并将每一个xj及其对应的skj的组合作为秘钥(xj,skj),构成秘钥集 合Key={(x1,sk1),(x2,sk2),...,(xj,skj),...,(xJ,skJ)},其中,skj表示xj对应的秘钥参数, 符号·表示向量点积运算。X为随机选取的第一向量,而skj仅使用xj与S通过一次 向量乘法计算得出,因此秘钥(xj,skj)的生成效率很高;
步骤4)加密方生成密文向量集合C:
步骤4a)加密方根据第一向量xj及其对应的明文片段mj计算xj对应的第二向 量yj=(y′1,y′2...,y′i,...,y′l-1,y′l),yj的计算公式为mj=xj·yj,并令y′l-1=1,得到第二 向量集合Y={y1,y2,...,yj,...,yJ},其中,计算yj的过程由于加入了y′l-1=1,使得yj基 于LWE困难问题对于第三方很难破解,因此保证了文件加密方法的安全性。
步骤4b)加密方从集合中随机选取一个整数作为安全参数r,其中,从集合中随机选取是为了确保对不同的明文进行加密后得到的密文具 有最大程度的不可区分性,本实施例中r采用python中randint函数生成。并通过 r计算mj的第三向量参数c′0和mj对应的第三向量dj=(c′1,c′2,...,c′i,...,c′l),再c′0与每 一个dj的组合作为mj对应的密文向量cj=(c′0,dj),构成密文向量集合 C={c1,c2,...,cj,...,cJ},其中,表示向下取整,c′i表示第i个第三向量分量,c′0和 c′i的计算公式分别为:
c′0=grmod N2
步骤5)加密方生成密文文件和秘钥文件并发送:
加密方将密文向量集合C作为密文文件,将N,l,Key作为秘钥文件,并将密 文文件和秘钥文件发送给解密方;
步骤6)解密方对密文文件C进行解密:
步骤6a)解密方通过读取的秘钥文件中N,l和Key中每一个(xj,skj)对每个cj进行解密,得到明文片段集合M,其中,cj的解密公式为:
其中,Π表示求积运算;
步骤6b)解密方对每个mj进行二进制转字符编码,本实施例中采用Base64解 码,得到文件片段集合F'={f1,f2,...,fj,...,fJ},并按照从前到后的顺序对F'中的J 个文件片段进行拼接,得到C的解密结果。
Claims (2)
1.一种文件加密方法,其特征在于,包括如下步骤:
(1)加密方对待加密文件F进行预处理:
加密方将待加密文件F均匀划分为J个文件片段,得到文件片段集合F'={f1,f2,...,fj,...,fJ},并对每个文件片段fj进行字符转二进制编码,得到明文片段集合M={m1,m2,...,mj,...,mJ},其中,J>1,fj表示第j个文件片段,mj表示fj对应的明文片段;
(2)加密方生成根秘钥向量S:
加密方初始化运算域关键参数,包括运算域模数N和乘法群的生成元g,N=pq,g=g'2Nmod N2,并从集合{0,1,...,N2-1}中随机选取l个整数作为根秘钥向量分量,构成根秘钥向量S=(s1,s2,...,si,...,sl),其中,N>2402,p和q分别表示第一安全素数p和第二安全素数q,p=2p'+1,q=2q'+1,p'和q'分别表示素数,p'>2λ,q'>2λ,λ表示比特参数,λ≥200,g'表示从乘法群中随机选取的生成元参数,mod表示求余运算,si表示第i个根秘钥向量分量;
(3)加密方获取公开向量H和秘钥集合Key:
(3b)加密方从集合{1,2,...,N}中随机选取l个整数作为第一向量分量,共随机选取与文件片段数量相等的J次,构成第一向量集合X=(x1,x2...,xj,...,xJ),xj=(x′1,x′2...,x′i,...,x′l),并令x′l=1,其中,xj表示第j次随机选取第一向量,x′i表示第i个第一向量分量;
(3c)计算X对应的秘钥参数集合SK=(sk1,sk2,...,skj,...,skJ),并将每一个xj及其对应的skj的组合作为秘钥(xj,skj),构成秘钥集合Key={(x1,sk1),(x2,sk2),...,(xj,skj),...,(xJ,skJ)},其中,skj表示xj对应的秘钥参数,skj=xj·S,符号·表示向量点积运算;
(4)加密方生成密文向量集合C:
(4a)加密方根据第一向量xj及其对应的明文片段mj计算xj对应的第二向量yj=(y′1,y′2...,y′i,...,y′l-1,y′l),mj=xj·yj,并令y′l-1=1,得到第二向量集合Y={y1,y2,...,yj,...,yJ};
(4b)加密方从集合中随机选取一个整数作为安全参数r,并通过r计算mj的第三向量参数c′0和mj对应的第三向量dj=(c′1,c′2,...,c′i,...,c′l),再c′0与每一个dj的组合作为mj对应的密文向量cj=(c′0,dj),构成密文向量集合C={c1,c2,...,cj,...,cJ},其中,表示向下取整,c′i表示第i个第三向量分量,c′0和c′i的计算公式分别为:
c′0=grmod N2
(5)加密方生成密文文件和秘钥文件并发送:
加密方将密文向量集合C作为密文文件,将N,l,Key作为秘钥文件,并将密文文件和秘钥文件发送给解密方;
(6)解密方对密文文件C进行解密:
(6a)解密方通过读取的秘钥文件中N,l和Key中每一个(xj,skj)对每个cj进行解密,得到明文片段集合M,其中,cj的解密公式为:
其中,Π表示求积运算;
(6b)解密方对每个mj进行二进制转字符编码,得到文件片段集合F'={f1,f2,...,fj,...,fJ},并按照从前到后的顺序对F'中的J个文件片段进行拼接,得到C的解密结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498782.8A CN112668042B (zh) | 2020-12-16 | 2020-12-16 | 一种文件加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498782.8A CN112668042B (zh) | 2020-12-16 | 2020-12-16 | 一种文件加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112668042A CN112668042A (zh) | 2021-04-16 |
CN112668042B true CN112668042B (zh) | 2022-12-02 |
Family
ID=75405145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011498782.8A Active CN112668042B (zh) | 2020-12-16 | 2020-12-16 | 一种文件加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112668042B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111366A (zh) * | 2021-04-27 | 2021-07-13 | 陈华贤 | 一种无理数加密方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108632248A (zh) * | 2018-03-22 | 2018-10-09 | 平安科技(深圳)有限公司 | 数据加密方法、数据查询方法、装置、设备及存储介质 |
CN110138561A (zh) * | 2019-03-22 | 2019-08-16 | 西安电子科技大学 | 基于cp-abe自动校正的高效密文检索方法、云计算服务系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012098649A1 (ja) * | 2011-01-18 | 2012-07-26 | 三菱電機株式会社 | 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置、復号プログラム、セットアップ装置、セットアッププログラム、鍵生成装置、鍵生成プログラム、鍵委譲装置および鍵委譲プログラム |
US10630760B2 (en) * | 2018-03-28 | 2020-04-21 | Ca, Inc. | Adaptive encryption in checkpoint recovery of file transfers |
-
2020
- 2020-12-16 CN CN202011498782.8A patent/CN112668042B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108632248A (zh) * | 2018-03-22 | 2018-10-09 | 平安科技(深圳)有限公司 | 数据加密方法、数据查询方法、装置、设备及存储介质 |
CN110138561A (zh) * | 2019-03-22 | 2019-08-16 | 西安电子科技大学 | 基于cp-abe自动校正的高效密文检索方法、云计算服务系统 |
Non-Patent Citations (4)
Title |
---|
Non-Interactive Key Establishment for Bundle Security Protocol of Space DTNs;Xixiang Lv etc.;《IEEE》;20131107;全文 * |
分组密码算法的研究与实现;孙旭等;《成都理工大学学报(自然科学版)》;20061230(第06期);全文 * |
基于生成对抗网络的文本序列数据集脱敏;吕锡香等;《网络与信息安全学报》;20200831;全文 * |
支持同态算术运算的数据加密方案算法研究;杨攀等;《通信学报》;20150131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112668042A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7260215B2 (en) | Method for encryption in an un-trusted environment | |
KR101091246B1 (ko) | 간단하고 효율적인 원패스 인증 암호화 방법 | |
US7190791B2 (en) | Method of encryption using multi-key process to create a variable-length key | |
JP2013047822A (ja) | メッセージ認証のための暗号化方法 | |
CN110474772B (zh) | 一种基于格的加密方法 | |
CN112668042B (zh) | 一种文件加密方法 | |
CN108718232B (zh) | 基于aes和混沌的图像加密方法 | |
CN114095171A (zh) | 一种基于身份的可穿刺代理重加密方法 | |
Salam et al. | ShiftMod cipher: A symmetrical cryptosystem scheme | |
US20030165242A1 (en) | Confusion encryption | |
CN110460442A (zh) | 一种基于格的密钥封装方法 | |
CN115643015A (zh) | 数字水印溯源方法 | |
Hassan et al. | A hybrid encryption technique based on dna cryptography and steganography | |
JP2009288616A (ja) | 秘密分散方法、プログラム、及び装置 | |
US20230134515A1 (en) | Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium | |
CN111865578A (zh) | 一种基于sm2的多接收方公钥加密方法 | |
KR101076747B1 (ko) | 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치 | |
Charru et al. | Improved Cryptography Algorithm to Enhanced Data Security | |
CN103746793A (zh) | 一种数形文载加密和解密方法 | |
Rao et al. | A Novel Image Encryption Algorithm with Image Integrity Check | |
CN113163232B (zh) | 一种基于混沌的多用户的视频文件加密系统及方法 | |
Ritonga et al. | Modification affine cipher transform digraph to squared the value of ‘n’in text security | |
JP2000004223A (ja) | 暗号・認証システム | |
Gumanti et al. | Superencryption of BASE 64 Algorithm and ELGAMAL Algorithm on Android Based Image Security | |
JP5293612B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |