天天看點

密碼領域專用語言 -- SM3

C語言不适合密碼算法,它連一個适合移位寄存器的資料類型都沒有。為了用已有的類型拼接出一個移位寄存器,各個程式員各有高招,一段帶着循環設計的代碼還要配合一段文字說明,是以就有了大端法則和小端法則。領域專用語言是最終解決之道,C語言在這個領域隻是個臨時工。國家密碼管理局釋出的SM3算法指導書中使用了寄存器、中間變量等C語言術語,說明密碼界的C語言思維定式至深。就像一個整天推磨的人突然一天不推磨,他也不會走直路,隻會繞圈子。以下是SM3算法,最後一圖中左下角視窗是例子2的正确雜湊值。

意外發現密碼管理局釋出的算法指導書中間資料是錯的(見第三頁箭頭處),雖然隻錯了1bit,密碼界人士都知道這意味着什麼。肯定是C語言這個臨時工幹的!

密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3
密碼領域專用語言 -- SM3

繼續閱讀