⑤在文本框“私钥d”内输入一个小于生成元G的阶数的十进制非负整数,然后点击“确定”按钮;然后点击“计算公钥”按钮,得到对应的公钥,如下图所示。
⑥点击“登记密钥”按钮,主窗口的“注册用户列表”中就会出现一个新的用户信息。如下图所示。
⑦重复上述过程,产生不少于2个注册用户,如下图所示。
(3) 在“主窗口”中,点击“签名”,进入“签名”窗口,如下图所示。
(4) 确定签名方。在“签名用户信息”中的“用户名”文本框中输入一个已经注册的用户名,
然后点击“确认”按钮,即得到签名方的一些基本信息,如下图所示。
(5) 签名运算。
①输入签名消息。在“明文M”文本框中输入一个小于n的十进制非负整数,作为欲签名的消息;在“随机数k”文本框中输入一个小于的十进制非负整数,作为共享密钥的初始信息;然后点击“确定”按钮,如下图所示。
②签名。点击“签名”按钮,得到该消息的保密签名结果,如下图所示。
注:“验证信息”暂时为空,等验证方验证后,自动填充该消息。
③发送签名。点击“发送签名”按钮,激活验证签名窗口,等待验证方验证。 (6) 在“主窗口”中,点击“验证签名”,进入“验证签名”窗口,如下图所示。
(7) 确定验证方。在“验证方基本信息”中的“用户名UID”文本框中输入一个已经注册的
用户名,点击“获取私钥”按钮,即得到验证方的一些基本信息,如下图所示。
(8) 验证签名。点击“验证”按钮,验证结果将会出现在“验证结果”文本框中,如下图所
示。
(9) 点击“发送确认”按钮,将验证结果通知签名方。
(三) 算法跟踪,在“算法跟踪”框下点击“取得ECC密钥”/“获得ECC签名”/“验证ECC
签名”按钮,进入调试器,选择对应的算法函数对ECC密钥生成、ECC签名生成、ECC签名验证进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。
【实验思考】
参照实验原理,对应各部分的签名运算和验证,分析各个算法签名与验证过程的异同 参照实验原理,根据算法跟踪实验画出各个算法函数的主要流程图 总结三种签名算法的优缺点,并分析其安全性