产业气象站 隐秘而伟大的技术——数字签名与认证丨专栏

一、小白剧场
大东:小白 , 生活当中 , 你有没有过签名的经历?
小白:怎么没有?这个行为太日常了!签名可是起到认证、核准与生效的作用呢 。 传统的数媒形式有手签、印章、指印等 。
产业气象站 隐秘而伟大的技术——数字签名与认证丨专栏
文章图片
大东:那你可知道计算机通信过程中也可以签名?
小白:是采用数字签名吗?
大东:不错 , 随着办公自动化、电子邮件、电子货币、电子银行的广泛使用 , 数字签名的安全性显得日益重要 。 完善的签名应具备发方不能抵赖、他人不能伪造以及能在公证人面前验证签名真伪的能力 。
二、RSA算法
小白:前数字签名普遍采用公开钥密码技术来实现 。 1994年 , 美国标准与技术协会公布了数字签名标准(DSS) , 这是美国政府首次正式采用公钥密码 。 DSS的出现是公钥密码走向广泛应用的标志 。 公开密钥可以方便地实现数字签名 , 这是传统密码所不及的 。
大东:看来你还了解的不少 。 数字签名技术是公开密钥加密技术和报文分解函数相结合的产物 。 与加密不同 , 数字签名的目的是为了保证信息的完整性和真实性 。 必须保证三点:一是接受者能够核实发送者对消息的签名;二是发送者这时候不能抵赖对消息的签名;三是接受者不能伪造对消息的签名 。
小白:数字签名有很多方法 , 比如 , 利用数学函数从信息中提取摘要值作为签名内容 , 这一点与信息的完整性验证相一致 , 因此 , 单向散列函数是实现数字签名的方法之一 。 此外 , 由于数字签名的基本原理就是在信息中嵌入发送者本人的身份信息 , 而且这种身份信息应该具有唯一性 , 而公钥密码中的私钥恰好符合这种特性 , 所以 , RSA算法也是数字签名的常用算法 。
大东:RSA算法数字签名的过程是:发送方用自己的私钥对信息签名 , 并将信息和签名一并发送给接收方;接收方收到密文后 , 利用发送方的公钥采用相应的验证方程对签名进行验证 , 判断其是否有效 。
产业气象站 隐秘而伟大的技术——数字签名与认证丨专栏
文章图片
RSA算法数字签名的过程(图片来自网络)
小白:RSA签名仍然使用了原来的加密解密算法 , 但公钥与私钥的用法不同 。
大东:那你知道认证技术吗?
小白:认证又称为鉴别或确认 , 用来证实被认证对象(人与事)是否名符其实或是否有效的一种过程 。 即用来确保数据的真实性 , 防止入侵者主动攻击 , 如假冒、篡改等 。 认证一般是许多应用系统安全保障的第一道防线 。
大东:认证是通过验证被认证对象(人与事)的一个或多个参数的真实性与有效性 , 来确定被认证对象是否名符其实 。 因此 , 被认证对象与要验证的参数之间应存在严格的对应关系 , 最好是唯一的 。
小白:目前 , 计算机通信中采用的参数有口令、标识符、密钥、随机数等 。 而且使用基于密码的认证技术一般来说 , 用人的生理特征参数(如指纹、声纹、视网膜纹等)进行认证的安全性很高 , 但目前这种技术实现困难、成本很高而难以普及 。
大东:现在已有多种实现各种数字签名的方法 , 但采用公开密钥算法要比常规算法更容易实现 。 其具体方法是:发送者A用其私人密钥对报文摘要进行加密(即签字) , 将原始报文与签名的摘要一同传送给接收者B , B用已知A的公开密钥对签名摘要解密 , 并将结果与原始报文的摘要比较 。
小白:因为只有A的公开密钥能对此报文进行解密 , 而除A外没有别人具有A的私人密钥 , 即没有别人能产生这样的报文 , 所以此报文一定是由A加密的 。 这样 , 报文就被签名了 。
三、认证字
大东:由上可知 , 采用公开密钥法进行通信时 , 通信的一方需要有另外一方的公开密钥 。 公开密钥是很容易得到的 , 如:从签了名的邮件 。 但如何确定你所获得的公开密钥是真的属于对方?


推荐阅读