数字签名主要有以下几个步骤:
第一、
发方首先有一个
公钥/私钥对
,它
将要签名的报文作为一个单向散列函数的输入,产生一个定长的散列码,一般称为消息摘要。
第二、
使用发放的私钥对散列码进行加密生成签名。将报文和签名一同发出去。
第三、
收方用和发放一样的散列函数对报文运算生成一个散列码,同时用发放的公钥对签名进行解密。
第四、
如果收方计算得到的
散列码
和解密的签名一致,那么
说明的确是发方对报文进行了签名而且报文在途中没有被篡改。
其具体过程如图1所示:
如前所述,数字签名主要分为两个步骤:产生
消息摘要
和
数字签名
。
使用单向散列函数的目的就是
可以让任意长度的消息