数字签名可分为如下两方面的基本特性。
1.数字签名的功能特性
数字签名的功能特性指为让签名可满足所需的功能而应有的一些特性,这类特性主要包括:
(1)依赖性。数字签名肯定得依靠被签名消息的具体比特模式,不同消息的比特模式不一样,所以由签名算法生成的数字签名也应是互不相同的。即一个数字签名和所签消息关系紧密、无法分割,离开被签消息,签名不会有一丝效用。
(2)独特性。数字签名一定是由签名者拥有的独有信息产生的,含有可代表签名者独有身份的核心信息。只有这样签名才不可伪造,也不能被签名者否认。
(3)可验证性。数字签名一定是能验证的,利用验证算法可准确验证一个签名的真假。
(4)不可伪造性。仿冒一个签名者的数字签名不只在计算上行不通,而且想要借助重用或拼接进行仿造造签名也是不行的。比如,想要把一个签名者在过去某个时间对一个消息的签名用作该签名者在另一时间对另一消息的签名,或想要把签名者对多个消息的多个签名组合成对另一消息的签名,都是不可行的。
(5)可用性。数字签名的生成、验证与识别的过程必须较简单,能在普通设备上迅速实现,更可在线处理,签名结果能存储与备份。
2.数字签名的安全特性
除以上功能特性外,数字签名还应有一定安全特性,以保证它提供的功能是安全的,达到预期的安全保障。上述不可伪造性还能看成安全特性的一个方面,除此以外,数字签名至少还应有下安全特性:
(1)单向性。与公钥加密算法类似,数字签名算法也应为一个单向函数,即对指定的数字签名算法,签名者拿自己的密钥sk签名消息m是容易的,不过给定一个消息m与它的一个数字签名s,想要推导得到签名者的签名密钥在计算上行不通。
(2)无碰撞性。对不同的消息m≠m',在相同密钥下的数字签名SIGsk(m)=SIGsk(m')等同的几率可不计。
(3)无关性。即对于两个不一样的消息m≠m',无论m与m'存在什么样的内在联系,想要从某个签名者对一个消息的签名推导得到对另外一个消息的签名不会实现。
数字签名算法的以上安全特性从源头上消除了仿冒数字签名的可能性,使一个签名者对某个消息得到的数字签名和所签消息的组合是唯一的,不可篡改也不能伪造。生成数字签名的唯一方式是把签名算法与签名密钥作用在被签消息。