5.2.1 数字签名的过程

5.2.1 数字签名的过程

数字签名体制又称作数字签名方案,一般由两个部分组成,即签名算法和验证算法。签名算法或签名密钥是由签名者秘密保有的,而验证算法或验证密钥应当公开,以方便他人进行验证。一般来讲,数字签名方案包括3个过程:系统的初始化过程、签名生成过程和签名验证过程。

在系统的初始化过程中,要产生数字签名所需要的基本参数,包括秘密的参数和公开的参数。这些基本参数为(M,S,K,SIG,VER),其中,M代表明文空间,S代表签名空间,K代表密钥空间,SIG为签名算法集合,VER为验证算法集合。

在签名生成过程中,用户利用某种特定的算法对消息进行签名,从而产生签名消息,这种签名方案可以是公开的,也可以是私密的。该过程主要包含两个步骤:第一,选取密钥k∈K;第二,计算消息摘要,并对该摘要进行签名。

在签名验证过程中,验证者利用公开的验证方法对消息签名进行验证,从而判断签名的有效性。首先,验证者获得签名者的可信公钥;然后,根据消息产生摘要并对该摘要利用验证算法进行验证;最后,比较由验证算法计算出的消息与原始消息是否一致,若一致则该签名有效,否则,签名无效。

数字签名在具体实施过程中,发送方对信息进行数学变换,使所得信息与原始信息唯一地对应;接收方进行逆变换,得到原始信息。只要数学变换优良,变换后的信息在传输过程中就具有很强的安全性,可以有效地防止干扰者破译和篡改。该数学变换过程就是签名过程,通常对应某种加密措施;而在接收方的逆变换过程为验证过程,通常对应某种解密措施(如图5-1所示)。

图5-1 数字签名的原理与过程

在传递签名时,通常要把签名附在原始消息之后一起传送给接收者。为了使签名方案在实际中便于使用,要求它的每一个签名算法Sigsk∈SIG和验证算法Verpk∈VER都是多项式时间的算法。