消息认证包括两个目标 1消息完整性认证: 确保张三发给我的消息是完整的,在传输过程中没有被第三方篡改 2消息的来源认证: 确保这个数据是张三发给我的,而不是李四发给我的 第一个目标通常使用散列函数来达成 常见用例: 张三把要发送的数据通过散列函数比如md5提取数据的摘要,让后将摘要和数据一起发送给我     我接收到数据后将数据部分进行同样的md5散列方法,得到的摘要和收到的摘要做对比,如果     两个摘要相同,那证明这个数据是没有被篡改的 第二个目标通常使用密匙来达成 我们在回过头看一下上面…
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 MAC能识别出篡改和伪装,也就是既可以确认消息的完整性,也可以进行认证. 消息认证码的输入包括任意长度的消息和一个发送者与接受者之间共享的密钥,它可以输出固定长度的数据,这个数据就是MAC. 消息认证码是一种与密钥相关联的单向散列函数. 消息认证码的应用实例 SWIFT(Society for Wordwide Interbank Financial Telecommunication,环…
需要将密钥发送到对方,对方用该密钥进行摘要处理,进行摘要验证. //初始化KeyGenerator KeyGenerator keyGenerator= KeyGenerator.getInstance("HmacMd5"); //出生密钥 SecretKey secretKey=KeyGenerator.generator(); //获得密钥 byte[] key=secretKey.getEncoded(); //还原,获得密钥 SecretKey seretKey= new Se…
1. 消息认证码 1.1 消息认证 消息认证码(message authentication code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称为MAC. 思考改进方案? 从哈希函数入手 需要将要发送的数据进行哈希运算, 将哈希值和原始数据一并发送 需要在进行哈希运算的时候引入加密的步骤 在alice对数据进行哈希运算的时候引入一个秘钥, 让其参与哈希运算, 生成散列值 bob对数据校验 bob收到原始和散列值之后, 处理原始数据: 通过秘钥和哈希算法对原始数据生成散列值 散列…
HMAC 单向散列消息认证码 消息认证码MAC是用于确认完整性并进行认证的技术,消息认证码的输入包括任意长度的消息和一个发送者和接收者之间共享的密钥(可能还需要共享盐值). HMAC是使用单向散列函数来构造消息认证码的方法,任何高强度单向散列函数都可以被用于HMAC,具体方法如下图所示. 发送者需要同时把消息和认证码发送给接收者,接收者接收了两者,并根据接收到的消息和共享的密钥生成认证码进行比较.如果相同则消息未被篡改且认证成功. MAC不能保证信息的机密性!MAC无法对第三方"C"证…
MD5 消息摘要(数字摘要) 它是把一个文本/文件 通过摘要函数(hash函数)计算出一个结果.然后把文本/文件和摘要结果一同发给接受者接受者接收到文件之后,也进行摘要,把两个摘要结果进行对比.如果一致就说明文本/文件和摘要是一致的.问题 假设A把文件和摘要发给B,中途被C截获了.C把文件改了,同时把改后的文件进行摘要.然后把改后的文件和重新生成的摘要发给B. B收到结果之后,进行摘要,对比发现,是一致的.但是此时文件是被篡改过的,B也不知道.接收方并不能察觉到数据被篡改. 所以说,普通的消息摘…
问题: 看了消息认证码的介绍后,小丽心想"如果用对称密码将消息加密后再发送的话,是不是就不需要消息认证码了呢?"原因有下: 1.对称密码的密文只有使用和加密时相同的密钥才能正确解密: 2.如果解密密钥和加密密钥不同,解密之后也只能得到"看上去随机的杂乱消息": 3.因此,只要解密之后得到的明文是正确的,就可以知道这条消息室由持有相同密钥的发送者加密的: 4.也就是说,只用对称密码就可以实现和消息认证码相同的功能. 请问小丽的想法正确吗? 解答: 小丽的想法部分正确,…
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 提问: 有了消息认证码为什么还要有数字签名? 因为消息认证码无法防止否认.消息认证码可以识别消息是否被篡改或者发送者身份是否被伪装.(消息认证码保证完整性.可以进行认证) 为什么消息认证码无法防止否认,数字签名就能够否认呢? 消息认证码中,能够计算出MAC值的密钥(共享密钥)是由发送者和接受者双方共同持有的,因此发送者和接受者中的任何一方都能够计算MAC值,发送者也就可以声称“这个MAC值…
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 公钥密码(非对称密码) 问题: 公钥认证问题 处理速度是对称密码的几百分之一 求离散对数非常困难 RSA是Ron Rivest/Adi Shamir/Leonard Adleman的姓氏首字母组成. RSA可以被用于公钥密码和数字签名. RSA加密:密文=明文EmodN(E和N为公钥) RSA解密:明文=密文DmodN(D和N为私钥) 对RSA的破解: 暴力破解:暴力破解的难度会随着D的长…
密码技术在网络通信中广泛使用,本节是初步接触密码学技术的笔记. 第1章 加密-解密 破译 明文-密文 密钥 密码算法 对称密码-公钥密码(非对称密码) 单向散列函数-散列值 消息认证码 数字签名 伪随机数生成器 信息安全中所面临的威胁与密码技术的对应关系图 --- 隐写术 数字水印 不要使用保密的密码算法 密码算法的密码早晚会公诸于世 开发高强度的密码算法是非常困难的 使用低强度的密码比不进行任务加密更危险 任何密码总有一天都会被破解 第2章 凯撒密码:将字母表按照一定的行数“平移”进行加密.利…