基于可视按键型智能密码钥匙的交互型电子签名方案中,签名设备中内置了SHA-1(安全散列算法)和RSA算法。该签名设备从上位机中接收指令,根据指令完成各种操作。上位机中安装有配合签名设备用的中间件,被调用时生成相应的指令序列并发给签名设备,通知签名设备操作。
操作指令执行方法的步骤如下:
步骤1:上位机对签名设备下发MSE(创建安全环境)指令,来指明签名设备约定用的签名算法,这样才能保证签名设备完成的签名操作是上位机能识别的。
上位机下发的指令为所包含的内容为:指令标识、签名算法标识、密钥ID。
步骤2:签名设备接收到MSE指令后,由以上的密钥ID设置当前用的RSA密钥。
步骤3:签名设备向上位机返回预先约定的代表操作成功的状态码。
步骤4:因用户需签名设备进行签名操作,故而用户需由上位机向签名设下发含待签名数据的Hash指令。
步骤5:签名设备接收到待签名数据后,对待签名数据进行哈希运算,具体运算为:使用上位机指定的算法对待签名数据进行运算,并将计算结果缓存在设备内部。
步骤6:向上位机返回操作成功的状态码。此时也可把哈希运算结果返回给上位机。
步骤7:上位机向签名设备下发签名指令。
步骤8:签名设备分析接收到的操作指令是不是关键操作指令,若该操作指令为关键操作指令,则执行步骤9;如果该操作指令为非关键操作指令,则执行步骤14。
具体地,关键操作指令主要包括签名指令、生成密钥指令、删除密钥指令、读取密钥指令与解密指令;或所说关键操作指令为对密钥进行操作的指令。
步骤9:因签名操作为关键操作,所以签名设备接收到签名指令后,需等待用户输入确认信号,同时签名设备还可以执行如下操作:
第一,签名设备开始计时。
第二,由视频或音频播放器提醒用户输入确认信号,或指示上位机视频或音频播放器提醒用户输入确认信号;例如,签名设备可通过灯光、声音等方式提示用户输入确认信号,上位机也可由签名设备返回的状态码,利用图像、文字、声音等方式提醒用户输入确认信号。
步骤10:签名设备判断是否接收到用户通过签名设备输入的确认信号:若接收到用户输入的确认信号,那么执行步骤13;若无接收到用户输入的确认信号,则执行步骤11。
为了保证用户有操作权限,还可在用户输入确认信号之前由签名设备对用户身份进行认证。仅有在用户身份认证通过后才允许用户输入确认信号。
步骤11:若上述过程中签名设备启动了计时方案,则需判断计时得到的时间是否超过预定时间;若计时得到的时间超过了预定时间,那么取消执行接收到的操作指令,签名设备结束操作,并向上位机返回事先约定的代表操作取消的状态码;如果计时得到的时间未超过了预定时间,则执行步骤12。
步骤12:由于上位机收到“需要等待按键”的状态码后,上位机可向签名设备反复发送获取签名结果的指令或向签名设备发送取消签名的指令;故该过程中需判断是否接收到上位机发送的获取签名结果的指令或取消签名的指令;如果接收到上位机发送的获取签名结果的指令,则返回执行9;若接收到上位机发送的取消签名的指令,那么流程结束。
步骤13:签名设备由MSE指令指定的算法标识,在步骤5中计算得到的散列值前面加上X.509规范定义的算法标识串,再按照PKCS#1补位,对补位后的数据进行RSA运算来得到签名结果,并同时需向上位机发送该签名结果,并返回操作成功的状态码。
步骤14:直接执行非关键操作指令。