Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

基于位逻辑运算的文件加密算法设计论文

发布时间:2023-05-12 10:20:33 文章来源:SCI论文网 我要评论















SCI论文(www.lunwensci.com)
 
  摘 要:将文件内容读取并转换为字符串,然后按照一定的策略规则将字符串中的部分或全部字符提取出来,利用原文和 密钥之间比特位的逻辑运算关系对字符编码加密,可实现磁盘文件的加密。根据实际需要对加密策略加以调整,通过在安全性 和效率之间进行权衡取舍,可以对加密算法进行增强或减弱,从而满足不同场景的应用需要。

  关键词:加密,解密,密钥,算法,比特位,字符串,文件

                     Design of File Encryption Algorithm Based on Bit Logical Operation

                                                    WEI Baoguang

  (Meteorological Information Network and Equipment Support Center of Kashgar Regional Meteorological Bureau of Xinjiang Uygur Autonomous Region, Kashgar Xinjiang 844000)

  【Abstract】:The file content is read and converted into a string, and then some or all characters in the string are extracted according to certain policy rules, and the characters's codes encrypted using the logical operation relationship between the original text and the keyt, which can realize the encryption of the disk file. Adjust the encryption strategy according to the actual needs. By balancing the security and efficiency, the encryption algorithm can be enhanced or weakened to meet the application needs of different scenarios.

  【Key words】:encrypt;decrypt;keyt;algorithm;bit;string;file

\

 
  0 引言

  在互联网飞速发展的今天,各类数据、文本、图 片、多媒体音视频等信息资料已经充分实现了数字化, 在为广大用户提供了方便的同时,也暴露出诸多安全隐 患。这些信息资料在存储、传输、交换过程中,极易受 到一些别有用心的非法人员的窥探和窃取,如果没有一 定的保密措施,这些重要的信息资料将受到严重的安全 威胁。因此,对于包含私密信息的计算机磁盘文件,需 要进行安全加密,以防窃取。

  对一个计算机文件进行加密和解密,从理论角度分 析, 已有 AES、DES、RSA[1]、SHA 等成熟的算法,但 在非专业领域转化为现实应用的案例却寥寥无几。对于 绝大多数计算机使用者来说,受专业知识和操作水平的 限制,文件加密常用的方法通常是将文件压缩,在压缩 过程中使用压缩软件设置解压密码以实现信息保护。如 果是 Office 文档, 也可以利用办公软件自带的文档密 码保护功能来给文件加密。但这些方法的安全性普遍不高,利用第三方破解工具极易破除密码还原文件,其保 护作用非常有限。如果能从文件的微观角度入手,将文 件的加密变成对文件中每一个字节的每一个比特位加密, 将使加密的安全性大大提升,破解的难度显著增大。

  1 算法的基本原理

  1.1 文件的加密和解密

  文件是数据在外存储器和传输介质中的基本储存形 式和处理单元,无论文件占据多少磁盘存储空间,从用 户视角来看,它都表现为一个相对独立的数据对象供用 户读写使用。因此,对文件加密就可以实现最大程度的 数据安全。

  1.1.1 文件加密算法的原理

  要加密文件,就需要将描述文件内容的字符数据或 二进制码流进行加密。对于文本类型的文件,只需将文 本中的每一个字符采用字符串加密方法就能实现整个文 件的加密。而对于二进制文件来说,没有相对独立的字 符单位,衡量文件大小的字节单位也只是从逻辑上定量表示文件长度的一种方式,字符串加密方法已不适用。 但可以通过将二进制文件转换为字符串的方式,将不可 直接加密的二进制码流变成可以加密的伪字符,然后对 这些伪字符采用字符串加密方法进行加密,就可以实现 对二进制文件的加密。按照这一思路,任意类型的文件 均可被加密,加密方法如下 :

  首先需要将文件内容完整地读取到计算机内存中, 并转换为字符串形式,各种类型的文件均可统一转换为 ASCII 编码格式的字符串,每个字符用 8 位二进制数字 表示,这样可以降低加密计算的难度,提高加密计算的 速度。然后对生成的 ASCII 字符串中的每一个字符进 行字符加密,得到一组长度相同、字符顺序相同、字符 比特位值改变的加密字符串,将这组加密字符串按照文 件原有的存储格式写入磁盘,这个新文件就是一个经过 加密的文件,这样就实现了文件加密。如图 1 所示为文 件加密算法流程图。

\

 
  1.1.2 文件解密算法的原理

  文件解密是文件加密算法的逆过程,首先将要解密 的加密文件从磁盘上读取到内存,并转换为 ASCII 字 符串格式,然后对这组被加密的字符串进行字符串解 密,得到一组解密后的字符串。最后将这组解密字符串 转换为文件原有的格式,即可得到一个解密文件。

  解密后的文件保持了与加密前的原始文件完全相同 的内容和格式,可以准确还原文件原有的含义。

  由文件的加密和解密算法可知,文件加密和解密的 核心任务是解决字符串的加密和解密,这也是算法的难 点所在。

  1.2 字符串的加密和解密

  要对一个字符串进行加密或解密,核心内容是对这 个字符串中的每一个字符进行加密或解密,然后将加密 或解密后的字符按照原顺序连接起来就形成了一个加密 或解密字符串。

  加密不是漫无目的、随心所欲地加密,为了能够正 确还原(即解密)被加密的字符串,需要使用一组密钥 字符串,用这组密钥字符串对需要加密的原义字符串进 行运算,即可得到一组唯一的加密字符串。

  1.2.1 字符加密和解密算法的原理

  ASCII 字符串中的每一个字符编码由 8 位二进制比 特位值 0 或 1 组成,只要能改变(即加密)其中的一位 或几位比特位值,这个字符所表达的含义也将会改变, 这样就能达到对单个字符加密的目的。比特位值的加密 可以采用与、或、非等基本逻辑运算来实现,也可以采 用与非、或非、同或、异或等组合逻辑运算来实现。在 选择逻辑算法的时候,还必须考虑在解密时能够正确还 原字符原有的含义,相比之下,异或运算就更容易实现 字符还原,只需在已加密字符的对应位上再做一次完全 相同的异或运算就可恢复其原有的位值序列,而其他逻 辑算法则很难实现这一目标。比特位异或运算真值表如 表 1 所示。

\

 
  将要加密的字符和密钥字符的第 1位、第 2位 ...... 第 8 位执行异或运算,第一遍完成后将得到一个 8 位的加 密字符,这就实现了字符的加密运算。将已加密的字符 和密钥字符的第 1 位、第 2 位……第 8 位再次执行异或 运算,第二遍完成后将得到一个 8 位的解密字符,这个 解密字符与加密之前的原义字符完全相同,这就实现了 字符的解密运算。由此可见,使用完全相同的密钥字符 对某个字符执行异或运算,当密钥字符的位值为 0 时, 被加密字符的对应位值保持不变 ;当密钥字符的位值为 1 时,被加密字符的对应位值执行一次翻转。由于密钥字 符始终保持不变,在第二次运算时,第一次原样保留下 来的位值将继续保留,第一次翻转的位值将再一次翻 转,两次翻转后将恢复原值。因此,这一算法奇数次得到加密结果,偶数次得到解密结果,属于一种私钥加密 算法 [2],也是一种对称加密算法。被加密字符与密钥字 符对应位值的重复异或运算过程如表 2 所示。

\

 
  如果用具体的字符对上述算法进行验证,所有的实 例都能完美地支持这一结果,证明这种算法正确可行。 如表 3 所示用 2 个随机实例对这一算法进行验证说明。

\

 
  1.2.2 字符串加密算法的原理

  一种简单的字符串加密算法就是将要加密的字符串 和密钥字符串中第一个字符开始进行字符加密,然后按 顺序向后递推,完成后续所有字符的加密。当被加密字 符串到达末尾时加密结束 ;当密钥字符串到达末尾时将 位置指针重新指向第一个字符进行第二轮重复利用,如 此往复,直至被加密字符串执行到尾部结束。字符串加 密算法的执行过程如图 3 所示。

\

 
  1.2.3 字符串解密算法的原理

  由于字符加密算法是对称加密算法,因此字符串解 密只需使用完全相同的密钥字符串对已加密的字符串再 次执行加密过程,其结果将得到一个解密的字符串,并且这个字符串与未加密之前的原义字符串完全相同。假 设密钥字符串中字符的个数为 L, 被加密或解密的字符 串中字符的个数为 N,则如图 4 所示演示了字符串加密 和解密算法的实现过程。

\

 
  2 算法的性能分析

  2.1 算法的安全性

  算法中密钥的作用是使加密字符串与密钥字符串产 生一对一的相关性,虽然不特定的任意两对原始字符串 和密钥对有可能产生相同的加密结果,但在原始字符串 特定的情况下,使用确定的密钥加密后的结果却是唯一 的,经过加密的字符串只有使用这一组密钥才能被正 确还原,其他密钥不会产生相同的结果。因此,只要设 置的密钥足够复杂,就可以得到一个足够安全的加密结 果。也就是说,加密的安全性与密钥的复杂性呈正相关, 而与算法本身只有弱相关。为了提高安全性,密钥的设 置应当足够复杂,字符个数应在 10 个以上,应包含多 种类型的字符,其排列顺序应无序无规律,增大窃密者 使用穷举法暴力破解的难度。

  2.2 算法的效率

  效率是衡量加密解密操作的时间和数据运算量之间关系的重要指标,单位时间内完成更多的加密解密数据 量,或者一定数据量的加密解密操作所需的时间更短, 则可以获得更高的效率。

  根据算法的设计原理,完成一个文件加密或解密所 需的时间与这个文件中所包含的字符(字节)数呈线性 关系。在不考虑计算机硬件本身的计算处理能力的情况 下,假设完成一个字符(字节)的加密或解密所需的时 间为 t,则完成一个字符(字节)数为 n 的文件的加密 或解密所需的时间为 n×t,因此算法的时间复杂度为 O(n),效率水平一般。

  通常来说,加密算法的安全性和效率呈负相关,安 全性越高则计算处理的效率越低,要提高效率就必须适 当地降低安全性要求。在不同的应用场合,效率和安全 性这两个因素应权衡取舍。对于信息量较大的加密对 象,其计算量较大,耗时较长,处理效率也较低。在这 种情况下,为加快处理速度,可以对加密对象采取部分 加密,即选择一部分内容进行加密,其余内容原样保 留,即使窃取者采集到了未加密部分的信息,也无法正 确获知全文内容。因此,是否采取部分加密,以及加密 部分的占比大小,都可以根据效率和安全性的权重加以调整。

  3 算法的增强和减弱

  根据 2.2 中的分析可知,要获得较高的安全性,就 必须牺牲效率,这时需要对算法进行增强 ;要获得较高 的效率,就必须牺牲安全性,这时需要对算法进行减弱。

       3.1 算法的增强

  对于文件信息量不大、字符数不多(10 万字以内) 的文本类文件,在保密性要求较高的场合,可以采用 增强的算法。如果把 1.2 中描述的算法称作一次加密算 法,那么此处可以使用二次加密算法和三次加密算法。 二次加密算法就是对一次加密结果再执行一次加密,三 次加密算法就是对二次加密结果再执行一次加密。

  二次加密算法可以对密钥字符的拾取顺序做一些优 化调整。在一次加密算法中,密钥字符是按照从左向右 的顺序进行逐字拾取。在二次加密算法中,密钥字符可 以使用其他的规则进行拾取,比如按照奇数、偶数、素 数、等差数列、等比数列、斐波那契数列等数值位置 进行部分抽取,或者按照从右向左、从左向右、从中间 向两边交替方式逐字拾取。这样密钥的顺序规则将被打 破,使窃密者通过穷举法破解密文的难度大幅增加。

  三次加密算法可以对二次加密后的密文字符的拾取顺序做一些调整,比如按照奇数、偶数、素数、等差数 列、等比数列、斐波那契数列等数值位置进行部分抽 取,这样密文字符的加密顺序将得到优化,使得窃密者 破解密文的难度进一步增大。

  值得一提的是,一次加密算法的算法规则可以公 开,而二次和三次加密算法的算法规则需要保密,否则 就失去了算法增强的意义,与一次加密算法的安全性处 于同一水平。

  3.2 算法的减弱

  对于文件信息量大、字符(字节)数很多的非文本 文件,在保密要求不高的场合,如果仍然采用一次、二 次、三次全文加密算法进行加密,则耗费的时间成本很 高,得不偿失。实验结果表明,一个 1 兆字节的文件执 行一次全文加密需要数百秒时间,这是用户所不能接受 的,在这种情况下就需要对加密算法进行减弱,以节省 加密和解密计算的时间。

  对一次全文加密算法进行减弱,可以使用部分加密 算法,即抽取一部分原文内容进行加密,其余内容原样 保留。比如可以每加密 m 个字节的数据, 然后跳过 n 个字节的数据,再加密后续 m 个字节的数据,以此类 推,直至全部完成。也可以按一定的拾取规则来确定要 加密部分的长度,使加密部分长度可变,以达到安全和 高效的双重目的。

  抽取加密部分的占比将直接影响加密解密的执行效 率,加密部分的比重越大则效率越低,当加密部分占比 达到 100% 时就演变成了全文加密,而 0% 的占比相当 于未加密。

  4 结语

  使用基于比特位的逻辑异或运算方法对文件内容进 行加密和解密运算,可以实现对计算机文件内容的保 密,其安全性完全能够满足非专业领域的一般性要求, 并能根据不同的应用场合和保密需求,兼顾平衡安全性 和效率这两个指标。算法的原理清晰,实现难度不大, 是计算机软件开发人员需要掌握的一种基本方法。

  参考文献

  [1] 祝珂,雷冰冰,刘海波.改进的RSA加密算法设计与实现[J].科 学技术创新,2021.25(17):98-99.

  [2] 黄舒朋.数据加密技术在计算机中的应用分析[J].电脑知识 与技术,2019.15(3):39-40.
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
 

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/55953.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml