数字签名
数字签名的基础知识、如何使用公钥密码实现数字签名。
使用RSA具体实践数字签名的生成和验证。
探讨针对数字签名的攻击方法以及数字签名与消息验证码之间的关系。
数字签名可以识别篡改和伪装,还可以防止否认。
数字签名是一种非常重要的认证技术,前提是用于验证签名的发送者的公钥没有被伪造。
专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等
数字签名的基础知识、如何使用公钥密码实现数字签名。
使用RSA具体实践数字签名的生成和验证。
探讨针对数字签名的攻击方法以及数字签名与消息验证码之间的关系。
数字签名可以识别篡改和伪装,还可以防止否认。
数字签名是一种非常重要的认证技术,前提是用于验证签名的发送者的公钥没有被伪造。
消息认证码 | 说明 |
---|---|
作用 | 对消息进行认证并确认其完整性的技术,但不能保证消息的机密性 |
原理 | 使用发送者和接收者之间共享的密码,识别是否存在伪装或篡改 |
实用技术 | 单向散列函数和对称加密技术 |
存在问题 | 由于收发双方共享相同密钥,因此无法对第三方证明以及无法防止否认 |
认证加密是将消息认证码与对称加密相结合,同时满足消息机密性、完整性以及认证三大功能。
由于使用对称密码,发送者和接收者均可以生成消息认证码,因此对于第三方来说无法证明消息是由发送者生成的,即消息认证码无法防止否认。
单向散列函数能够根据任意长度的消息计算出固定长度的散列值,通过对比散列值可以判断两条消息是否一致,这种技术可用来辨别篡改。
SHA-3的具体实现方法。
针对单向散列函数的工具:暴力破解和生日攻击。
使用单向散列函数可以辨别篡改,但无法分辨伪装。要解决这个问题,需要使用消息认证码和数字签名。
密钥配送问题:在对称密码中,由于加密和解密的密钥是相同的,因此必须事先向接收者配送密钥。
如果使用公钥密码,则无需向接收者配送用于解密的密钥,这就相当于解决了密钥配送问题。
对称密码通过将明文转换为复杂的形式来保证机密性,公钥密码则是基于数学难题来保证机密性。 例如RSA利用了大整数的质因数分解问题的困难度。
即使已经有了公钥密码,对称密码也不会消失。
公钥密码的运行速度远远低于对称密码,因此一般通信过程中,往往会配合使用这两种密码,即用对称密码提高处理速度,用公钥密码解决密钥配送问题。这样的方式称为混合密码系统。
密码算法可以分为分组密码和流密码两种。
术语 | 说明 |
---|---|
分组密码 | 每次只能处理特定长度的一块数据的一类密码算法。 |
分组 | 每次处理的数据。 |
分组长度 | 每次处理的数据分组的比特数。 |
流密码 | 对数据流进行连续处理的一类密码算法。一般以1比特、8比特或32比特等为单位进行加解密。 |
DES、三重DES以及AES(Rijndael)等大多数对称密码算法都属于分组密码。
AES(Advanced Encryption Standard)是取代前任标准(DES)而成为新标准的一种对称密码算法。
2000年,在多个对称密码候选算法中,选出了一种名为Rijndael的对称密码算法,并将其确定为了AES。
对称密码、公钥密码、单向散列函数、消息认证码、数字签名、伪随机数生成器,这六种技术称为密码学家的工具箱。
信息安全所面临的威胁 | 受威胁的特性 | 用以应对的密码技术 |
---|---|---|
窃听(秘密泄露) | 机密性 | 对称密码/公钥密码 |
篡改(信息被修改) | 完整性 | 单向散列函数/消息认证码/数字签名 |
伪装(伪装成真正的发送者) | 认证 | 消息认证码/数字签名 |
否认(是否称自己没有做过) | 不可否认性 | 数字签名 |