7 PKI和密码应用

本文详细介绍了非对称密码系统,包括RSA、ElGamal和椭圆曲线加密,以及散列函数如SHA和MD5在数字签名中的应用。公钥基础设施(PKI)和数字签名确保了通信的安全性和消息的完整性。同时,文章提到了数字证书、发证机构(CA)以及密钥管理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

7.1 非对称密码

7.1.1 公钥和私钥

7.2.2 RSA

7.1.3 El Gamal

7.1.4椭圆曲线

7.2 散列函数

7.2.1 安全散列算法(SHA)

 7.2.2 消息摘要2(MD2)

  7.2.3 消息摘要4(MD4)

7.2.4 消息摘要5(MD5)

7.3数字签名

7.3.1 HMAC

7.3.2 数字签名标准

7.4 公钥基础设施(PKI)

7.4.1 证书

   7.4.2 发证机构(CA)

7.4.3 证书的生成和销毁

7.5 非对称密钥管理

7.6 应用密码学

7.6.1 便携设备

 7.6.2 电子邮件

7.6.3 Web应用程序

7.6.4 数字版权管理(DRM)

7.6.5 联网

 1. 线路加密

2. 互 联网协议安全(IPsec) 标准

3、互联网安全关联和密钥管理协议(ISAKMP)

4. 无线联网

7.7 密码攻击


7.1 非对称密码

        本节将介绍三种常用的公钥密码系统,RSA,El Gamal和椭圆曲线密码(ECC)

        PKI:公钥基础设施。

7.1.1 公钥和私钥

        每个通信方都有一把私钥和一把公钥。

        发送方通过对方的公钥加密,接受方通过私钥解密。

        公钥系统使用的密钥必须比私钥系统所用的密钥更长,才能产生同等强度的密码系统。

7.2.2 RSA

        RSA 算法所依靠的是因式分解大素数的天然计算难度。

        各种密钥的强度还会因为你使用的密码系统而表现出巨大差异。下表所示 个非对称密码 系统的密钥长度都将提供同等级别的保护:

7.1.3 El Gamal

        基于Diffie-Helhnan算法扩展而来。

        相对于RSA优势:未申请专利,RSA在2000年才公开。

        劣势:把由它加密的任何消息都加长了一倍。这在加密长消息或将 通过窄带宽通信线路传输的数据时,会造成很大的困难。

7.1.4椭圆曲线

        1024 RSA 密钥在密码强度上等同千 160 位椭圆曲线密码系统密钥。

7.1.5 零知识证明

        只告诉别人应该知道的信息,不会提供任何重要的信息,同时能证明自己的身份。

7.2 散列函数

        执行数字签名是为了证明消息的不可否认性,散列函数是现代数字签名的算法。

        散列函数确保了消息的完整性,数字签名确保了消息的身份验证和不可否认性。

        散列函数的目的:从一个长消息衍生出一个唯一输出值,这就是消息摘要。发送者和接收者会比较消息摘要是否相同。

        消息摘要同生成消息摘要的整条消息一起发送给对方,有两个原因

        (1)接受者可用同一个散列函数根据整条消息重算消息摘要。

        (2)消息摘要可用来执行数字签名算法。

        消息摘要的不同表示方法:散列、散列值、散列总和、CRC、指纹、校验和数字ID。

        消息摘要128位或者更长。

        散列函数的基本要求:

        (1)输入可以是任意长度;

        (2)输出有一个固定长度;

        (3)为任何输入计算散列函数都相对容易。

        (4)散列函数是单向的。

        (5)散列函数无冲突,没有相同散列值的两条消息。

        本章计算四种常用散列算法:安全散列算法(SHA),消息摘要2(MD2),消息摘要4(MD4)、消息摘要5(MD5)。

7.2.1 安全散列算法(SHA)

        安全散列算法(SHA),还有后面衍生的SHA1、SHA2、SHA3。

        SHA1:可以提取任意输入长度,生成160的消息摘要。处理512位中的消息,不足则用数据填充。

        SHA2:有四个变体。

                • SHA-256, 512 位块大小生成 256 位消息摘要。

                • SHA-224, 借用了 SHA-256 散列的缩减版,用 512 位块大小生成 224 位消息摘要。
                • SHA-512, 1024 位块大小生成 512 位消息摘要。
                • SHA-384, 借用了 SHA-512 散列的缩减版,用 1024 位块大小生成 384 位消息摘要。

        SHA3:通过一种更安全的算法提供与SHA2相同的变体和散列长度。

 7.2.2 消息摘要2(MD2)

        MD2会生成128位消息摘要。为8位处理器提供安全散列函数。消息长度要达到16字节的整数倍。

        后来证明MD2不是一个单向函数。

  7.2.3 消息摘要4(MD4)

       支持32位处理器并提高安全性。消息的长度比512位消息小64位。

        MD4算法静态3轮计算处理512位消息块。输出128位消息摘要。

        MD4也被证明不是安全的散列算法。容易找到冲突(同一个散列值的两条不同消息)

7.2.4 消息摘要5(MD5)

        MD5还是处理512位消息块,通过4轮计算生成128位消息摘要。消息长度要求同MD4相同。

        MD5执行了新的安全性能,大幅降低了消息摘要的生成速度。

        MD5也容易产生冲突。

        下面的列表非常重要:

7.3数字签名

        将消息摘要加密就变成了数字签名。一般用发送方的私钥加密,对方用公钥解密。

        数字签名的两个目的:

        (1)有数字签名的消息可以向接收者保证,消息确实来自声称的发送者。

        (2)有数字签名的消息,可以向接收者保证,消息传递过程中没有改动过。

        数字签名依靠公钥加密法和散列函数发挥作用。

         请注意,数字签名流程并不对自己所含内容以及签名本身提供任何隐私保护。它只确保实 现密码的完整性、鉴别和不可否认性目标。如果要 提供消息的隐藏性,可以对消息用对方的公钥加密,然后对方用私钥解密。

        如何选择密钥:

        (1)如果你要加密消息,使用接收者的公钥。

       (2) 如果你要解密发送给你的消息,使用自己的私钥。 ·

       (3) 如果你要给将发送给别人的消息加上数字签名,使用自己的私钥。

        (4)如果你要验证别人发来的消息上的签名,使用发送者的公钥。

7.3.1 HMAC

        经过散列处理的消息鉴别码(HMAC)算法执行部分数字签名,只保证消息传输过程中的完整性,但不提供不可否认性的服务。

        HMAC 可通过一个共享秘密密钥与任何标准消息摘要生成算法(例如 SHA-3)配套使用。因

此,只有知道密钥的通信参与方可以生成或验证数字签名。
        简而言之, HMAC 是介于不经加密使用一种消息摘要算法,与基于公钥加密法、 计算成本昂贵的数字签名算法之间的一个中点。

 

7.3.2 数字签名标准

       DSS中规定, 联邦批准的所有数字签名算法都必须使用 SHA-3 散列函数。

        DSS 还规定了可用来支持数字签名基础设施的加密算法。当前得到批准的标准加密算法有 三种:

        • FIPS 186-4 规定的数字签名算法 (DSA);
        • ANSIX9.31 规定的 Rivest-Shamir-Adleman(RSA) 算法;
        • ANSIX9.62 规定的椭圆曲线 DSA(ECDSA)
        有两种数字答名算法, Schnorr 签名算法和 Nyberg-Rueppel 签名算法。
         密码学内的所有可能选择,因为不同的步骤和算法提供了不同类型的安全服务:
        (1)消息可以加密,这提供了机密性;
        (2)消息可以散列运算,这提供了完整性࿱
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值