用户名,点击“获取私钥”按钮,即得到验证方的一些基本信息,如下图所示。
(9) 确定签名方。在“签名方公钥”中的“签名方用户名”文本框中输入一个已经注册的用
户名,点击“获取公钥”按钮,即得到签名方的一些基本信息,如下图所示。
(10) 验证签名。点击“验证”按钮,验证结果将会出现在“验证结果”文本框中,如下图所
示。
注:这个过程比较费时,可能要花费几分钟。
(三) 算法跟踪,在“算法跟踪”框下点击“获得RSA签名”/“验证RSA签名”按钮,进入
调试器,选择对应的算法函数对RSA签名生成和RSA签名验证进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。 二、 ELGAMAL签名算法 (一) 扩展实验
(1) 在“RSA-PKCS”标签下的扩展实验中,点击“ELGAMAL扩展实验”按钮,进入ELGAMAL
签名算法扩展实验窗体。
(2) 设置签名系统参数。在文本框“大素数p”内输入一个大的十进制素数(不要超过8位);
然后在文本框“本原元a”内输入一个小于p的十进制正整数,点击“测试”,如下图所
示。
注:确保素数p和a的合法性。 (3) 注册用户
① 在“用户名”文本框中输入一个“注册用户列表”中未出现的用户名,如“alice”,点击“注册”按钮,如下图所示。
② 在“用户注册”窗口中的文本框“私钥x”中输入一个小于素数p的十进制非负整数,点击“确定”按钮;然后,点击“计算公钥”按钮,系统会为该用户生成一对公私钥;如下图所示。
③ 点击“密钥登记”按钮,主窗口的“注册用户列表”中就会出现一个新的用户信息。如下图所示。
④ 重复上述过程,产生不少于2个注册用户,如下图所示。
(4) 在“主窗口”中,点击“数字签名”,进入“数字签名”窗口,如下图所示。
(5) 确定签名方。在“签名方基本信息”中的“用户名UID”文本框中输入一个已经注册的
用户名,然后点击“获取私钥”按钮,即得到签名方的一些基本信息,如下图所示。
(6) 签名运算
①输入签名消息。在“明文M”文本框中输入一个小于p的十进制非负整数,作为欲签名的消息;在“随机数k”文本框中输入一个小于p的十进制非负整数,作为共享密钥的初始信息;然后点击“确定”按钮,如下图所示。
②签名。点击“签名”按钮,得到该消息的保密签名结果,如下图所示。
注:“验证信息”暂时为空,等验证方验证后,自动填充该消息。
③发送签名。点击“发送签名”按钮,激活验证签名窗口,等待验证方验证。 (7) 在“主窗口”中,点击“验证签名”,进入“验证签名”窗口,如下图所示。
(8) 确定验证方。在“验证方基本信息”中的“用户名UID”文本框中输入一个已经注册的
用户名,然后点击“获取私钥”按钮,即得到验证方的一些基本信息,如下图所示。
(9) 验证签名。点击“验证”按钮,验证结果将会出现在“验证结果”文本框中,如下图所
示。
(10) 点击“发送确认”按钮,将验证结果通知签名方。 三、 DSA签名算法 (一) 签名及验证计算
(1) 选择“DSA”标签,进入DSA签名实验界面。 (2) 选择明文格式,输入明文信息。
(3) 点击“计算SHA1值”按钮,生成明文信息的散列值,如下图所示。
(4) 生成参数及密钥,选择密钥长度,此处以512bit为例,点击“生成G、P、Q”按钮,生
成DSA参数;点击“生成密钥”按钮,生成密钥对Y和X;上述过程如下图所示。