图像加密与实现(4)

2019-04-22 16:39

算法实现

3.2 算法流程图

RSA加密此密钥 数据流 DES密钥 加密图像 文件头 摘要水印 原始图像 摘要水印 DES加密 加密图像 摘要水印 解密 解密后图像 算法 摘要 作为水印信息 摘要水印 3.3 报文摘要提取

MD5算法是由 Rivest(RSA中的R)于1991年提出的Hash算法。今天已成为最广泛使用的Hash算法。MD5算法并非是Rivest提出的首个Hash 算法,1990年Rivest就已提出了一个Hash算法 MD4,并被接受为标准,MD5算法是MD4算法的改进。MD5和MD4算法都是将消息划分成512位的消息块进行处理,最终形成128位的信息摘要。

实现MD5算法主要经过以下五个步骤: (1) 补位

补位的目标是使输入的消息长度,从任意值变成一个新的长度n,使得n=448(mod512),即通过补位使消息长度差64位成为512的整数倍,即使原消息的长度正好满足要求,也需要进行补位。补位的补丁包括一个1,剩下的全是0,在原消息之后。特别地,如果原消息的长度正好满足要求,则补位包括一个1和512个0。

12

MD5 提取水印对此,看是否一致?以达到图像认证的目的! 摘要

图3-1 算法流程图

算法实现

(2) 追加长度

在追加长度前,通过补位,消息长度已经变成模512余448,接下来的追加长度将在消息后继续补充64位的信息,新消息将是512的整数倍。追加长度的信息由64位表示,被追加到已补的信息后,如果原消息长度超过64位,只使用低64位。追加的长度是原消息的长度,而不是补位后的信息长度。

(3)缓冲区初始化

为了计算Hash函数的结果,需首先设置128位的缓冲区。缓冲区除接受Hash函数最终结果外,还记录中间结果。

在图3-2中,将缓冲区分成4等份,即4个32位寄存器(A,B,C,D),每个32位寄存器也被称为字。 Buffer n Block n 512位A B 128位C D 第一轮 第二轮 M[k] A B C D + CLSS + + 第三轮 第四轮 T[i] CLSS+ + + + 128位+ A B C D

Buffer n+1 图3-2 缓冲区 n->n+1 示意图 图3-3 四轮算法

赋初值:

A: 0x01234567 B: 0x89abcdef

C: 0xfedcba98 D: 0x76543210 ABCD构成 buffer0。 (4)消息迭代

从buffer0开始,进行算法的主循环,循环的次数是消息中512位消息分组

13

算法实现

的数目,将上面四个变量复制到另外的变量中:A到a,B到b,C到c,D到d。主循环有四轮,每轮很相似,每一轮进行16次操作,每次操作对a,b,c 和d中的其中三个作一次线性函数运算,然后将所得的结果加上第四个变量,文本的一个子分组和一个常数,再将所得的结果向右环移一个不定的数,并加上或中之一,最后用该结果取代a,b,c或d中之一。主循环的运算过程见图3-4。

消息分组 A B C D 第一轮 第二轮 第三轮 第四轮 A B C D 图3-4 MD5主循环

在四轮运算中,有四种函数,分别为F(X,Y,Z),G(X,Y,Z),H(X,Y,Z)和I(X,Y,Z):

F(X,Y,Z)=(X and Y) or (not (X) and Z) G(X,Y,Z)=(X and Z) or (Y and not (Z)) H(X,Y,Z)=X xor Y xor Z I(X,Y,Z)=Y xor (X or not(Z))

这些函数是这样设计的:如果 X,Y 和 Z 的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。函数 F 是按逐位方式操作:如果 X,那么 Y,否则 Z。函数H是逐位奇偶操作符。

设 Mj 表示消息的第j个子分组(从 0 到 15),<<

FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+ Mj + ti)<<

第1轮:

FF (a, b, c, d, M[ 0], 11, 0xd76aa478);

14

算法实现

FF (d, a, b, c, M[ 1], 12, 0xe8c7b756); FF (c, d, a, b, M[ 2], 13, 0x242070db); FF (b, c, d, a, M[ 3], 14, 0xc1bdceee); FF (a, b, c, d, M[ 4], 11, 0xf57c0faf);

FF (d, a, b, c, M[ 5], 12, 0x4787c62a); FF (c, d, a, b, M[ 6], 13, 0xa8304613); 第2轮:FF (b, c, d, a, M[ 7], 14, 0xfd469501); FF (a, b, c, d, M[ 8], 11, 0x698098d8); FF (d, a, b, c, M[ 9], 12, 0x8b44f7af); FF (c, d, a, b, M[10], 13, 0xffff5bb1); FF (b, c, d, a, M[11], 14, 0x895cd7be); FF (a, b, c, d, M[12], 11, 0x6b901122); FF (d, a, b, c, M[13], 12, 0xfd987193); FF (c, d, a, b, M[14], 13, 0xa679438e); FF (b, c, d, a, M[15], 14, 0x49b40821);

GG (a, b, c, d, M[ 1], 21, 0xf61e2562); GG (d, a, b, c, M[ 6], 22, 0xc040b340); GG (c, d, a, b, M[11], 23, 0x265e5a51); GG (b, c, d, a, M[ 0], 24, 0xe9b6c7aa); GG (a, b, c, d, M[ 5], 21, 0xd62f105d); GG (d, a, b, c, M[10], 22, 0x2441453); GG (c, d, a, b, M[15], 23, 0xd8a1e681); GG (b, c, d, a, M[ 4], 24, 0xe7d3fbc8); GG (a, b, c, d, M[ 9], 21, 0x21e1cde6); GG (d, a, b, c, M[14], 22, 0xc33707d6); GG (c, d, a, b, M[ 3], 23, 0xf4d50d87); GG (b, c, d, a, M[ 8], 24, 0x455a14ed); GG (a, b, c, d, M[13], 21, 0xa9e3e905); GG (d, a, b, c, M[ 2], 22, 0xfcefa3f8); GG (c, d, a, b, M[ 7], 23, 0x676f02d9);

15

算法实现

GG (b, c, d, a, M[12], 24, 0x8d2a4c8a);

第3轮:

HH (a, b, c, d, M[ 5], 31, 0xfffa3942);

HH (d, a, b, c, M[ 8], 32, 0x8771f681); HH (c, d, a, b, M[11], 33, 0x6d9d6122); HH (b, c, d, a, M[14], 34, 0xfde5380c); 第4轮:

HH (a, b, c, d, M[ 1], 31, 0xa4beea44); HH (d, a, b, c, M[ 4], 32, 0x4bdecfa9); HH (c, d, a, b, M[ 7], 33, 0xf6bb4b60); HH (b, c, d, a, M[10], 34, 0xbebfbc70); HH (a, b, c, d, M[13], 31, 0x289b7ec6); HH (d, a, b, c, M[ 0], 32, 0xeaa127fa); HH (c, d, a, b, M[ 3], 33, 0xd4ef3085); HH (b, c, d, a, M[ 6], 34, 0xe4881d05); HH (a, b, c, d, M[ 9], 31, 0xd9d4d039); HH (d, a, b, c, M[12], 32, 0xe6db99e5); HH (c, d, a, b, M[15], 33, 0x1fa27cf8); HH (b, c, d, a, M[ 2], 34, 0xc4ac5665);

II (a, b, c, d, M[ 0], 41, 0xf4292244); II (d, a, b, c, M[ 7], 42, 0x432aff97); II (c, d, a, b, M[14], 43, 0xab9423a7); II (b, c, d, a, M[ 5], 44, 0xfc93a039); II (a, b, c, d, M[12], 41, 0x655b59c3); II (d, a, b, c, M[ 3], 42, 0x8f0ccc92); II (c, d, a, b, M[10], 43, 0xffeff47d); II (b, c, d, a, M[ 1], 44, 0x85845dd1); II (a, b, c, d, M[ 8], 41, 0x6fa87e4f); II (d, a, b, c, M[15], 42, 0xfe2ce6e0); II (c, d, a, b, M[ 6], 43, 0xa3014314); II (b, c, d, a, M[13], 44, 0x4e0811a1);

16


图像加密与实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: