分享

MAC 与 加解密

 liang1234_ 2017-12-21

MD5是hash,或者说在大分类上属于MAC(Message Authentication Code)中文译为“消息认证码”。问你问题这个人自己都没有搞清楚,以为是加密(Encryption)呢。下面简单说说Encryption和MAC的区别。
Encryption是为了保护明文的隐私性(privacy),防止隐私泄漏。设想一对小青年Alice和Bob还在暧昧中,俩人偷偷摸摸地去约会吃饭,不想让别人知道。Alice想告诉Bob今天约会时几点去吃饭,但是不想让其他任何人(可以抽象为以她的情敌Carol为代表的一切其他人)知道他俩的吃饭时间,这时候就用到加密。加密后解密者可以从密文(ciphertext)中恢复出明文(plaintext),也就是吃饭时间。
到MAC的时候场景就变了。这时候Alice和Bob这对小(gou)青(nan)年(nv)关系已经很稳定了,路人皆知了。但是情敌Carol依然存在,贼心不死。Alice这个时候再也不怕俩人约会吃饭的时间被别人看到了,她怕的是情敌篡改时间,让俩人不能碰面。于是她以明文发送时间,然后再附上对这个时间的MAC。Carol如果篡改了时间,那么MAC是照应不上的。也就是,此时不是为了保护这个约会时间的隐私性,而是为了保护它的完整性(integrity)。
补充:
1. 在这个约会的例子里Carol当然可以很轻易的连MAC一起篡改掉,即由(Time_1,Mac_1)直接变为(Time_2,Mac_2)。但是这只是为了和加密形成对比而举的一个例子。实际应用中,用MAC来保证软件不被篡改什么的就不会发生这种情况。因为此时,MAC可以在真正的官方下载站上公布。
2. MAC是单向的,无法从密文中恢复出明文。所谓的“解密”其实就是猜测一个明文,对这个明文MAC看最后的结果对不对的上,这并不是解密。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多