MAC 信息认证码 消息认证码

MAC

Message Authentication Code, 即是为了进行可信通讯而设置的一种认证代码,

MAC 由两部分组成, 一个是生成认证码的方法 (Sign), 另外一个是检验认证码的方法 (Verify),

 

人物

(发信)小李、(收信)小张,(破坏者)小王

 

目标

收发可靠(来源可靠)的信息

 

场景

譬如小李想要给小张发送一条机密的短信,而小李需要向小张表明发信人是自己,而不是其他人(小王)。

假设小王有机会篡改信件内容,因小张需要确保新建内容是准确无误的(譬如不能把收款账号写错),

这时小张与小王就开始协商一种沟通机制:MAC。

 

流程

第一步:双方协商一个提前确定的密码,并确定一个认证方法。

第二步,发信时, 小李使用密码对信息(A)进行认证,并将认证结果(认证码M)与信件一同发送给小张

第三步,收信时,小张使用检验算法来判别这个信息 A 的内容的认证码 M 是否匹配。

              如果匹配那么信件内容就是准确无误的;如果无效,小张就可以去找小李要求再次发送。

 

MAC.svg

 

要点

这里的一个要点就是这个认证码具有不可伪造的特点,也就是小王无论如何都不可能在不知道密码的情况下计算出一个 信息 B 的认证码 (就是小王篡改信息后,认证码就失效了)

如果这不可伪造的特点能够实现,那么上面的

 

总结:

这个过程就是 Cipertext Integrity (内容完整性鉴定),其意在于鉴别信息来源是否可靠,却不可保证信息不会泄露

(虽然可以保证泄露之后也不会被篡改)

 

实现:

那么怎么样构建这样的一套认证码系统(认证算法Sign 和 验证算法 Verify呢?)

参阅:

HMAC - wikipedia

CBC-MAC wikipedia

NMAC

PMAC

 

MAC functions

 

 


版权声明:本文为lu_gt原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。