密码领域专用语言 -- SM3

C语言不适合密码算法,它连一个适合移位寄存器的数据类型都没有。为了用已有的类型拼接出一个移位寄存器,各个程序员各有高招,一段带着循环设计的代码还要配合一段文字说明,所以就有了大端法则和小端法则。领域专用语言是最终解决之道,C语言在这个领域只是个临时工。国家密码管理局发布的SM3算法指导书中使用了寄存器、中间变量等C语言术语,说明密码界的C语言思维定式至深。就像一个整天推磨的人突然一天不推磨,他也不会走直路,只会绕圈子。以下是SM3算法,最后一图中左下角窗口是例子2的正确杂凑值。
意外发现密码管理局发布的算法指导书中间数据是错的(见第三页箭头处),虽然只错了1bit,密码界人士都知道这意味着什么。肯定是C语言这个临时工干的!

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_41656797/article/details/81182828