广东 李俊杰
基于SHA与XOR的快速加密算法
广东 李俊杰
在信息系统中很多重要数据需要加密,各种加密算法如AES、DES、IDEA等都在广泛应用,一种基于SHA与XOR的加密算法可以实现信息快速安全加密。
SHA;XOR;加密算法;Hash函数
在信息系统中,信息的存储和传输容易被非法使用和篡改,因此,加密技术对这些信息存储、传输将带来很好的保护作用。一种基于SHA与XOR的加密算法能大大提高了加密速度和效率。
加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的数字串。
传统的加密算法如下:对于明文空间M中的每一个明文M,加密算法E在密钥K的控制下将明文M加密成密文C:C=E(M,K),而解密算法D在密钥K的控制下将密文C解密出同一明文M:M=D(C,K)。
一种基于SHA与XOR的快速加密算法如下:密钥K使用Hash函数进行转换h=H(K),算法E、D都使用XOR,即:加密为C=XOR(M,H(K)),解密为M=XOR(C,H(K))。
Hash函数将任意长的报文M映射为定长的Hash码h,其形式为:h=H(M),Hash码也称报文摘要。SHA(Secure Hash Algorithm)是美国国家安全局设计,美国国家标准与技术研究院发布的一系列密码散列函数。其SHA-1的输入可以是任意长的报文,输出160位的报文摘要。该算法对输入按512位进行分组,并以分组为单位进行处理。SHA-1算法步骤如下:
(一)填充报文。填充报文的目的是使报文长度与448模512同余(即长度≡448 mod 512),如:图1。
图1 报文填充
(二)初始化缓冲区。Hash函数的中间结果和最终结果保存于160位的缓冲区(A,B,C,D,E)中,IV=缓冲区ABCDE的初值。
(三)执行算法主循环。每一次处理一个512位的分组。
(四)输出。第L分组的输出OVL即是160位的报文摘要,HSHA为压缩函数,如:图2。
图2 利用SHA-1算法产生报文摘要
基于SHA与XOR的加密算法加密过程的关键步骤是对密钥K进行Hash运算,利用SHA-1算法产生160位的摘要,再与明文M进行XOR。步骤如下:
(一)任取任意长的密钥K,使用Hash函数进行运算:h=H(K)。
(二)对输入明文M按160位进行分组,并以分组为单位进行处理。
(三)每个分组都与H(K)进行按位XOR运算,最后运算结果连接起来形成密文C,如:图3。
图3 加密过程
(一)取得密钥K,使用Hash函数进行计算:h=H(K)。
(二)对输入密文C按160位进行分组,并以分组为单位进行处理。
(三)每个分组都与H(K)进行按位XOR运算,最后运算结果连接起来形成明文M,如:图4。
图4 解密过程
选择密钥K=“abc”,H(K)=a9993e364706816aba3e25717850c26c9cd0d89d;明文M=“汕尾职业技术学院abc123”,由C=XOR(M,H(K))加密得密文C=605ef08491b653df0682ef84a9f716d6fdb2bbac9baa;由M=XOR(C,H(K))解密得同一明文M,测试正确。
(作者单位:汕尾职业技术学院)
(编辑 李艳华)