欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

密码学] HMAC--单篇文章中的信息验证码

最编程 2024-05-04 20:21:04
...

网络异常,图片无法展示
|

网络异常,图片无法展示
|
消息认证码

中国第一家票号--日升昌,诞生于清道光三年的陕西省平遥县,它采用了汉字当做密码,即用汉字代表数字当中的0-9,以及采用汉字表示一年12个月和30天。比如: 全年12个月可以用"谨防假票冒取, 勿忘细视书章", 三十天可以表示为: "堪笑世情薄,天道最公平,昧心图自利,阴谋害他人,善恶终有报,到头必分明", 代表银两的10个数字代码为: "赵氏连城璧,由来天下传", 如上图所示, 5月15日汇银三百两可以表示为"冒利连通流", 这里我稍稍做一点点的修改,将明文和密文都放在了一块,这样如果某个人篡改了某个日期,那么对应的汉字就会不一致,这就可以判断原始消息有没有发生篡改。(虽然这个安全性实际上是没有比之前高的,但是因为剧情需要,各位读者凑合着看一下吧 ^.^)。

消息认证码,是一种认证技术,他利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后,正如上面的那个简单的栗子,密钥可以看做是数字对应的汉字,当然上面的那个长度实际上是不固定的, 有点差别, 仅做参考。

在这种方法中, 有请密码学的老演员Alice和Bob, 他们共享密钥K, 如果Alice向Bob发送消息,则由A计算MAC, 他是消息和密钥的函数, 即:

消息和MAC一同发给Bob, 接收方收到消息用相同的密钥和算法进行计算,得到新的MAC, 并将这两个进行对比, 如果这两个一样,表明消息没有被篡改, 否则说明消息已经被更改。

网络异常,图片无法展示
|

网络异常,图片无法展示
|
Alice-Bob通信