打印

MAXIM-DS2432算法疑问

[复制链接]
2065|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yang010121|  楼主 | 2011-4-6 17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yang010121 于 2011-4-6 17:26 编辑

小弟最近学习MAXIM-DS2432的时候遇到一个难题。
关于SHA-1算法,写出的程序跟资料介绍的对比很多遍,
没有发现问题。
了解到跟标准的SHA-1的区别:
1,没有运算结束的加上初始值,
2,没有补位操作。

如果哪位开发过程中曾经遇到过类似问题,多多交流解决办法呀。

相关帖子

沙发
yang010121|  楼主 | 2011-4-6 17:37 | 只看该作者
SHA-1 算法
以下有关 SHA 算法的说明译自安全散列标准(Secure Hash Standard)SHA-1 文档,该文档可从
NIST 网站下载(www.itl.nist.gov/fipspubs/fip180-1.htm)。该算法采用十六个 32 位字 Mt(0 ≤ t ≤
15)作为输入数据,如表 1,2 和 4 所示,分别被用于 Compute Next Secret、Copy Scratchpad
和 Read Authenticated Page 命令。SHA 算法涉及到一个称为 Wt(0 ≤ t ≤ 79)的八十个 32 位字的
序列,一个称为 Kt(0 ≤ t ≤ 79)的八十个 32 位字的序列,一个布尔函数 ft(B,C,D)(0 ≤ t ≤
79),其中 B,C 和 D 为 32 位字,以及另外三个 32 位字,称为 A,E 和 TMP。SHA 算法用到的
操作有不带进位的算术加(“+”),逻辑反或 1 的补码(“\”),异或(“⊕”),逻辑与
(“∧”),逻辑或(“∨”),赋值(“:=”),以及 32 位字的循环移位。表达式“Sn(X)”表
示将 X 向左循环移 n 位,X 是一个 32 位字。
函数 ft 定义如下:
ft (B,C,D) = (B ∧ C) ∨ ((B\) ∧ D) (0 ≤ t ≤ 19)
B ⊕ C ⊕ D (20 ≤ t ≤ 39)
(B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) (40 ≤ t ≤ 59)
B ⊕ C ⊕ D (60 ≤ t ≤ 79)
序列 Wt (0 ≤ t ≤ 79)定义如下:
Wt := Mt (0 ≤ t ≤ 15)
S1(Wt-3 ⊕ Wt-8 ⊕ Wt-14 ⊕ Wt-16) (16 ≤ t ≤ 79)
序列 Kt(0 ≤ t ≤ 79)定义如下:
Kt := 5A827999h (0 ≤ t ≤ 19)
6ED9EBA1h (20 ≤ t ≤ 39)
8F1BBCDCh (40 ≤ t ≤ 59)
CA62C1D6h (60 ≤ t ≤ 79)

变量A、B、C、D、E初始化如下:
A := 67452301h
B := EFCDAB89h
C := 98BADCFEh
D := 10325476h
E := C3D2E1F0h
当t从0循环至79,执行了下面的一系列计算后,160位MAC是A,B,C,D和E的串联(不考虑任何进位):
TMP := S5(A) + ft(B,C,D) + Wt + Kt + E
E := D
D := C
C := S30(B)
B := A
A := TMP

-----------------------------------------------------
原版资料提供的算法说明。

使用特权

评论回复
板凳
yang010121|  楼主 | 2011-4-8 17:13 | 只看该作者
哈哈,自力更生,搞定了。多谢关注。

使用特权

评论回复
地板
xpzheng888| | 2011-7-7 16:39 | 只看该作者
怎么解决的,能分享下吗,谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:努力就有收获

0

主题

27

帖子

1

粉丝