• 密码技术 (5) - 数字签名


    一. 前言

            前面在介绍消息认证码时,我们知道消息认证码虽然可以确认消息的完整性,但是无法防止否认问题。而数字签名可以解决否认的问题,接下来介绍数字签名的原理。

    二. 数字签名的原理

            数字签名和公钥密码一样,也有公钥和私钥,私钥只有发送者自己知道,公钥则可以公之于众。当发送消息时,发送者用私钥对消息进行加密,生成消息签名,并将消息和签名一起发送出去,当接收者收到消息时,使用公钥对签名进行解密,如果解密的内容和消息相同,则确定消息是由正确的发送者发出的。数字签名的过程如下图所示:

            这个过程和公钥密码的过程是反过来的,公钥密码的过程如下:

            如上,如果使用RSA算法,数字签名和公钥密码是完全的逆过程,数字签名是把公钥密码中"私钥"公之于众,大家都可以利用该秘钥进行验证发送者身份,而用公钥密码的"公钥"自己保存,用于给消息施加签名。所以,RSA算法也可以应用在数字签名的场景。

    三. 数字签名特点

    1. 数字签名可以防止否认

            数字签名之所以可以防止否认,是因为只有拥有私钥的人才可以生成数字签名。发送者无法否认说这个消息不是我发出的。

    2. 数字签名不能保证机密性

            数字签名是一个认证符号,它的作用是证明消息是由谁发出的,因此,数字签名不关注消息的机密性的问题

    3. 数字签名很难被篡改

            这一点和公钥密码是一样的,由RSA算法的数学性质决定。

    四. 数字签名算法

    1. RSA

            前面介绍的内容都是基于RSA的方式介绍的。公钥密码那篇对它做了简单的介绍了。

    2. EIGamal

            公钥密码那篇对它做了简单的介绍了

    3. DSA

            DSA(Digital Signature Algorithm)是由NIST与1991年制定的数字签名规范(DSS),DSA只能用于数字签名

    4. ECDSA

            ECDSA是一种利用椭圆曲线密码来实现的数字签名算法。

    5. Rabin

            Rabin是由M.O.Rabin设计的公钥算法,Rabin算法可以用于数字签名和公钥算法。

    五. openssl实践

            openssl可以使用genpkey选项生成私钥,再使用rsa选项根据私钥生成公钥,openssl dgst使用-sign选项对infile施加签名,生成的签名保存在signature.txt,openssl dgst使用-verify选项校验infile的数据是否是由私钥加密的,命令如下:

    1. 生成数字签名的私钥

    # openssl genpkey -algorithm RSA -out private.key

    2. 根据私钥生成公钥

    # penssl rsa -pubout -in private.key -out public.key

    3. 使用私钥对消息签名

    infile内容:

    hello,signature

    施加签名:

    # openssl dgst -sha256 -sign private.key -out signature.txt infile 

    校验签名:

    # openssl dgst -sha256 -verify public.key -signature signature.txt infile 
    Verified OK

    六. 总结

            数字签名的出现实现了如下:识别篡改和伪装还有防止否认,消息认证码虽然可以识别篡改,但是无法解决否认问题。数字签名和公钥密码使用的是相同的技术,只是它们的公钥和私钥用于了不同的用途

     

  • 相关阅读:
    第一个程序
    P1164 小A点菜
    软件测试 - 基础篇
    数据向好,分析师预测美联储GDP或将翻一番?
    java-net-php-python-s2s酒店管理系统计算机毕业设计程序
    基于JAVA儿童疫苗接种管理系统的设计与实现
    EPICS asynPortDriver中数组用法示例
    开发工具记录
    事务码ABAVN-资产卡片报废-BAPI_ASSET_RETIREMENT_POST
    MYSQL---基础篇
  • 原文地址:https://blog.csdn.net/to_be_better_wen/article/details/133468350