密码学基础
1、概念
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取情报的,称为破译学,总称为密码学。简单来说,密码就是用并非认知的,并非能及时识别的符号来代替可以及时识别的信息。
2、发展历史
密码学的发展历史大致可划分为三个阶段:
阶段一(1949年之前):古典密码学,主要有两种,置换和代换。
阶段二(1949年到1975年):建立了私钥密码理论基础,从此密码学成为了一门科学,计算机的出现使得基于复杂计算的密码成为可能。1949年克劳德·艾尔伍德·香农编写了《保密系统的通信理论》一文后正式奠定了近代密码学的基础。
阶段三(1976年到现在):公钥密码学。解决了密钥分布和管理的问题,密码真正广泛应用于商业中。1976年,罗纳尔多·里弗斯特、阿迪杀谬尔和里昂那多·阿多尔曼在麻省理工学院推动了公钥加密技术的革新发展。
3、功能与应用
信息安全要素 | 所应付的典型威胁 | 可用的密码技术 |
---|---|---|
机密性 | 窃听 非法窃取资料 敏感信息泄露 | 对称加密和非对称加密 数字信封 |
完整性 | 篡改 重放攻击 破坏 | 哈希函数和消息认证码 数据加密 数字签名 |
可鉴别性 | 冒名 | 口令和共享秘密 数字证书和数字签名 |
不可否认性 | 否认已收到资料 否认已送资料 | 数字签名 证据存储 |
授权与访问控制 | 非法存取资料 越权访问 | 属性证书 访问控制 |
4、密码体制分类
4.1 对称密码(私钥密码)
对称密码体制也称单钥或私钥密码体制,其加密密钥和解密密钥相同,或实质上等同, 即从一个易于推出另一个。
优点:保密性高,加密速度快,适合加密大量数据,易于通过硬件实现;
缺点:密钥必须通过安全可靠的途径传输,秘钥的分发是保证安全的关键因素;
根据加密方式的不同,对称密码又可以分为分组密码和序列密码
4.1.1序列密码
又称为流密码,将明文和同等长度的密钥进行异或运算得到密文的过程叫做加密,将密文和密钥进行异或运算得到明 文的过程叫做解密。该加密制度有两个最大的问题,一是密钥长度必须与明文长度一致,二是序列密码很容易被篡改,为 了解决这两个问题,出现了分组密码。
4.1.2分组密码
将明文分为固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文,解密过程也一样。关于分组 的模式有以下几种:
1)ECB模式,是将明文消息分成固定大小的分组,当最后一个分组的内容小于分组长度时,需要用特定的数据进行填充以 至于长度等于分组长度,每个分组的加密和解密都是独立的,可以并行操作。因此ECB模式也被称为电子密码本模式,但 是 安全性较低。
2)CBC模式,第一个分组需要用初始化向量IV(一个随机且长度为一个分组长度的比特序列)进行异或操作再进行加密, 而后面的每一个分组都要先和前一个分组加密后的密文分组进行异或操作,然后再加密。加密是连续的,不能进行并行操 作。
3)CFB模式,将前一个分组的密文加密后和当前分组的明文进行异或操作生成当前分组的密文,第一个明文分组通过初始 化向量IV进行加密再与之进行异或操作得到第一个密文分组。
4)OFB模式,通过将明文分组和密码算法的输出进行异或操作来产生密文分组。密码算法的输出会反馈到密码算法的输入 中,并非通过密码算法加密明文分组的,而通过将明文分组和密码算法的输出进行XOR来产生密文分组。
5)CTR模式,每次加密时都会生成一个不同的值来作为计数器的初始值,每个分组对应一个逐次累加的计数器,通过对计 数器进行加密来生成密钥流,再将密钥流与明文分组进行异或操作得到密文分组。
5种模式优缺点对比:
模式 | 优点 | 缺点 | 备注 |
---|---|---|---|
ECB模式 | 简单 快速 支持并行运算 | 明文中的重复排列反映在密文中 通过删除、替换密文分组可以对明文进行操作 对包含某些比特错误的密文进行解密时对应的分组会出错 不能抵御重放攻击 | 不应使用 |
CBC模式 | 明文的重复排列不会反映在密文中 支持并行运算(仅解密) 能够解密任意密文分组 | 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应的比特会出错 加密不支持并行运算 | CRYPRTREC推荐 《应用密码学》推荐 |
CFB模式 | 不需要填充 支持并行运算(仅解密) 能够解密任意分组 | 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应的比特会出错 加密不支持并行运算 不能抵御重放攻击 | CRYPRTREC推荐 |
OFB模式 | 不需要填充 可事先进行加密解密的准备 加密解密使用相同结构 对包含某些错误比特的密文进行加密时,只有明文中相对应的比特会出错 | 不支持并行运算 主动攻击者反转密文分组的某些比特时,明文分组中相对应的比特也会被反转 | CRYPRTREC推荐 |
CTR模式 | 不需要填充 可事先进行加密解密的准备 加密解密使用相同结构 对包含某些错误比特的密文进行加密时,只有明文中相对应的比特会出错 都支持并行运算 | 主动攻击者反转密文分组的某些比特时,明文分组中相对应的比特也会被反转 | CRYPRTREC推荐 《应用密码学》推荐 |