(5) 签名及验证,点击“获得签名值”按钮,获取明文摘要的签名值r和s,签名结果以十
六进制显示于相应的文本框内;点击“验证签名”按钮,对签名结果r和s进行验证,并显示验证结果;上述过程如下图所示。
(二) 算法跟踪,在“算法跟踪”框下点击“生成DSA参数”/“生成DSA密钥”/“获取DSA
签名”/“验证DSA签名”按钮,进入调试器,选择对应的算法函数对DSA参数生成、DSA密钥生成、DSA签名生成和DSA签名验证进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。
四、 ECC签名算法
椭圆曲线具有在有限域GF(p)和GF(2m)上的两种类型,因此ECC签名算法有两种具体形式,此处以GF(p)为例,GF(2m)可参照完成。 (一) 签名及验证计算
(1) 选择“ECC”标签,进入ECC签名实验界面。 (2) 选择明文格式,输入明文信息。
(3) 点击“计算SHA1值”按钮,生成明文信息的散列值,如下图所示。
(4) 参数及密钥生成,选择“F(p)”标签,在标签下选择椭圆曲线参数和密钥生成的参数,
此处以m=112(seed)为例,点击“取得密钥对”,生成椭圆曲线参数和密钥对,如下图所示。
(5) 签名及验证,点击“获得签名值”按钮,获取明文摘要的签名值r和s,签名结果以十
六进制显示于相应的文本框内;点击“验证签名”按钮,对签名结果r和s进行验证,并显示验证结果;上述过程如下图所示。
(二) 扩展实验
(1) 设置签名系统参数
①直接点击“测试曲线”按钮,使用系统初始预设的椭圆曲线参数,如下图所示。
②在文本框“素数p”,“常数a”和“常数b”内输入十进制非负整数;点击“测试”,如下图所示。
(2) 注册用户
①在“用户名”文本框中输入一个“注册用户列表”中未出现的用户名,如“alice”,点击“注册”按钮,如下错误!未找到引用源。所示。
②在“用户注册”窗口,可以“序号”或“坐标”确定生成元,如下错误!未找到引用源。所示。
③点击选择“序号”,并在相应的文本框内输入一个小于“解点数”的十进制数值,然后点击“生成元测试”按钮,如下图所示。
④点击选择“坐标”,并在相应的文本框内输入右边列表框中出现的一个坐标值,然后点击“生成元测试”按钮,如下图所示。