散列函数与消息鉴别 SHA-1计算

1、完成计算字符串“helloWorld”的SHA-1散列值(只需写出t=0时计算得到的SHA-1,请写明计算过程)
解:helloWorld对应的十进制数为:104 101 108 108 111 87 111 114 108 100
转换为二进制数为:01101000 01100101 01101100 01101100 01101111 01010111 01101111 01110010 01101100 01100100 说明消息长度为80
根据填充可得
01101000 01100101 01101100 01101100
01101111 01010111 01101111 01110010
01101100 01100100 10000000 00000000
00000000 00000000 00000000 00000000

00000000 00000000 00000000 01010000 最后的字化为十六进制为:00000050
确认常数K的初始值
K1=5A827999
K2=6ED9EBA1
K3=8F1BBCDC
K4=CA62C1D6
五个寄存器的初始值为:
A=67452301 B=EFCDAB89 C=98BADCFE D=10325476 E=C3D2E1F0
化为二进制数为:A=01100111 01000101 00100011 00000001
B=11101111 11001101 10101011 10001001
C=10011000 10111010 11011100 11111110
D=00010000 00110010 01010100 01110110
E=11000011 11010010 11100001 11110000
W0=68656c6c,W1=W2=…=W14=00000000 W15=00000050
进行压缩操作:A=(E⊕f0(B,C,D)⊕A<<<5⊕W0⊕K0)
W0=68656c6c=01101000011001010110110001101100
K0=5A827999=01011010100000100111100110011001
A<<<5=11101000101001000110000000101100
f0(B,C,D)=(B与C)或(非C与D)=10001000100010001000100010001000=88888888
所以A=(E⊕f0(B,C,D)⊕A<<<5⊕W0⊕K0)
=(C3D2E1F0⊕88888888⊕E8A4602C⊕68656c6c⊕5A827999)=
( 11000011 11010010 11100001 11110000
⊕10001000 10001000 10001000 10001000
⊕11101000 10100100 01100000 00101100
⊕01101000 01100101 01101100 01101100
⊕01011010 10000010 01111001 10011001)
=10010001 00011001 00011100 10100001=91191CA1
B=67452301
C=01111011111100110110101011100010=7BF36AE2
D=98BADCFE
E=10325476
最后得到结果为:
H0=67452301+91191CA1=F85E3FA2
H1=EFCDAB89+67452301=15712CE8A
H2=98BADCFE+7BF36AE2=114AE47E0
H3=10325476+98BADCFE=A8ED3174
H4=C3D2E1F0+10325476=D4053666

2、计算字符串“myworld”的SHA-1中对应的w16,w17,w18,w19
解:myworld对应的十进制数为:109 121 119 111 114 108 100
转换为二进制数为:01101101 01111001 01110111 01101111 01110010 01101100 01100100消息长度为56
所以W0=6D79776F W1=726C6480 W2=W3=…=W14=00000000 W15=00000038
所以W16=(WO⊕W2⊕W8⊕W13)<<<1=daf2eede
W17=(W1⊕W3⊕W9⊕W14)<<<1=e4d8c900
W18=(W2⊕W4⊕W10⊕W15)<<<1=00000070
W19=(W3⊕W5⊕W11⊕W16)<<<1=b5e5ddbd

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值