数字签名的签名装置和方法

文档序号:7629458阅读:119来源:国知局
专利名称:数字签名的签名装置和方法
技术领域
本发明涉及一种数字签名的签名装置和方法。
背景技术
在计算机网络中,所有参与活动的实体由于都不进行面对面的接触,通常使用数字签名来表明自己的身份。
数字签名是实现电子交易安全的基本技术之一。数字签名在ISO7498-2标准中定义为“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。美国电子签名标准(DSS,FIPS186-2)对数字签名作了如下解释“利用一套规则和一个参数对数据计算所得的结果,用此结果能够确认签名者的身份和数据的完整性”。数字签名可以保证网上数据的机密性、完整性、有效性。所谓数据的机密性是指数据在传输过程中,不能被非授权者偷看;数据的完整性是指数据在传输过程中不能被非法篡改;数据的有效性是指数据不能被否认。数字签名在密钥分配、电子银行、电子证券、电子商务等许多领域都有重要的应用价值。
数字签名是附加在文档后的数字。通过数字签名能够确定以下要素1)被签名实体的完整性,即被签名实体自发生数字签名后有没有被修改过;2)签署者的身份,即被签名实体实际上是不是由声明签署它的用户所签署的。
数字签名的过程包括以下步骤将被签名实体提取为一个大数,这个数字是摘要代码或指纹;用发送方的非对称密钥对的私钥加密摘要代码自身,生成数字签名,并将该数字签名追加到生成摘要代码的被签名实体后。
其中,生成摘要代码的方法主要有两种MD5摘要函数和SHA1安全散列算法。它们都是将被签名实体精简为一个数值,即摘要代码,此过程不是加密,而是复杂校验和。生成摘要算法的共同点是1)不能从生成的摘要代码重新生成被签名实体;2)如果被签名实体改变,即使是最细微的更改,所产生的摘要代码也是不同的。
数字签名技术主要应用的加密算法是RSA(Rivest-Shamir-Adleman)算法,它是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数,作为一对密钥对,其中一个对外公开的称为“公钥”(Publickey),另一个不告诉任何人的称为″私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的需要用私钥解密,反之亦然。
接收到签名后的被签名实体后,接收方按照下列步骤来验证签名1)重新计算被签名实体的摘要代码;2)用发送方的公钥解密数字签名,得到被签名实体原来的摘要代码;3)比较原来的和重新计算的摘要代码,如果匹配,则确认该被签名实体是完整且真实的,如果不匹配,则确认该被签名实体已被更改且是不可信的。
由于加密和电子签名装置的高度敏感性和高度重要性,各国对该类设备的制造和使用均进行严格的管理。加密和签名装置作为一个整体,在投入使用之前需要得到国家相关监管部门审定的,通过审定后,其关键部分在后续过程中不能擅自改变。这么做的目的之一,是为了保证所述签名装置作为一个整体的安全和可信。另一方面,和加密/签名完整应用需要涉及的一个动态的大系统相比,加密设备只是一个静态的小系统,在技术上也容易保证其安全和可信。因此,我们约定,专用加密和签名装置,作为一个整体所包括的区域,即下面将要说明的“可信区”,与其对应地,其它区域统称为“非可信区”。
图1所示,为现有的一种典型的数字签名系统的示意图,在实际应用操作中,被签名实体(例如文件、合同、账单等)在需要被签名时,通常先在主系统中生成摘要,再将摘要发往签名装置进行签名,最后将签名后的结果发回主系统。在这个过程中,摘要在主系统内形成,被签名实体也是在主系统上展现给用户并经用户核实的,用户核实后的执行签名或拒绝签名的指令也是先发到主系统,再通过主系统下达到签名装置。
如前文所述,在这样的数字签名系统中,签名过程中三个至关重要的步骤,即摘要的生成、被签名实体的展现和指令的下达,都是脱离可信区(签名装置),而在非可信区(主系统)内完成的,这样就给整个应用带来极大的安全隐患。由于主系统的非可信性,很容易通过特定方法使指令、被签名实体或其摘要在传输、展现、签署的过程中被篡改或替换,导致用户发送指令与签名装置实际接收的指令可能不一致、展现给用户的被签名实体与实际发送到签名装置中的摘要可能不对应、签署的摘要与想要签署的被签名实体可能不对应的情况。这样,可能用户想签署文件A,而主系统发送到签名装置的指令是“签署文件B”或“签署包括文件A的一组文件”,甚至也有可能用户并没有发出指令,而主系统模拟了指令的生成而使得未经用户核实的被签名实体被签署。所以,由于无法保证指令、被签名实体以及其摘要在非可信区中的安全性,现有的这种数字签名的系统在安全性上存在缺陷,用户看到的待签名实体可能与实际的被签名实体不一致,造成了用户可能签署了实际自己并不想签署的文件,从而导致用户误签名,损害用户的利益。

发明内容
为了解决现有的数字签名的签名装置和方法的安全性不高的问题,本发明提供一种更为安全的数字签名的签名装置和方法,从而能够弥补现有的装置和方法中存在的安全的漏洞。
本发明所提供的数字签名的签名装置包括基本签名单元,所述基本签名单元为可对被签名实体执行数字签名操作的数字签名装置;其中,该装置还包括指令单元,所述指令单元和所述基本签名单元连接,所述指令单元上设置有开关或按钮,用于直接接收执行签名或拒绝签名的指令,并将该指令发送给基本签名单元,所述基本签名单元根据指令执行或不执行数字签名。
本发明所提供的数字签名的方法,其中,该方法使用本发明所提供的签名装置,包括以下步骤在签名装置中输入被签名实体;通过指令单元直接向所述签名装置发出执行签名或拒绝签名的指令;所述签名装置根据指令对该被签名实体执行或不执行数字签名。
应用本发明所提供的数字签名装置和方法进行数字签名的具体过程如下所述基本签名单元接收完毕被签名实体之后,等待接收用户的指令;用户通过指令单元上设置的开关或按钮发送指令给基本签名单元;当所述基本签名单元接收到执行签名的指令时,利用摘要算法对被签名实体生成摘要,读取保存在基本签名单元内部的私钥,对被签名实体(摘要)采用加密算法完成签名;当所述基本签名单元接收到拒绝签名的指令时,或根据本发明的优选实施方式,在预定时间内没有接收到执行签名的指令时,对被签名实体不执行数字签名;之后可选择地将签名后的被签名实体(摘要)发回到主系统。正如图2本发明所提供的数字签名系统的示意图所示从指令的下达到执行数字签名(包括形成摘要)的整个过程,完全是在签名装置内部完成。即签名全过程均在可信区完成。指令下达的唯一路径是签名装置上的指令单元,这一单元由用户直接控制,指令在签名装置内部直接到达基本签名单元,安全性高,避免了指令在传输过程中被篡改或替换,提高了数字签名的安全度。按照本发明的优选的实施方式可以通过签名装置的展现单元将被签名实体展现给用户,该展现过程也是在可信区内进行,从而避免了传统数字签名的方法中由于通过非可信区的主系统将被签名实体展现给用户而可能导致的展现的被签名实体和实际签名的被签名实体的摘要不对应的安全漏洞。


图1是传统的数字签名系统的示意图;图2是本发明提供的数字签名系统的示意图;图3是本发明提供的数字签名的签名装置的组件连接示意图;图4是本发明提供的数字签名的签名装置的一个实施例的外观图;图5是本发明提供的数字签名的方法的流程图。
具体实施例方式
下面结合附图对本发明所提供的数字签名的方法和签名装置做进一步的说明。
如图3和图4所示,本发明所提供的数字签名的签名装置10包括基本签名单元1,所述基本签名单元1为可对被签名实体执行数字签名操作的数字签名装置;其中,该装置还包括指令单元2,所述指令单元2和所述基本签名单元1连接,所述指令单元2上设置有开关或按钮,用于直接接收执行签名或拒绝签名的指令,并将该指令发送给基本签名单元1,所述基本签名单元1根据指令执行或不执行数字签名。
其中,所述开关或按钮可以为一个或多个开关或按钮。所述指令单元2优选为多个,可以分别接收执行签名和拒绝签名的指令。而当所述指令单元2为一个时,则所述指令单元2还包括计时模块。
所述计时模块与基本签名单元1连接,用于当在预定时间内没有接收到指令时自动发出拒绝签名的指令到基本签名单元1。该预定时间的值可以预置于所述计时模块中。这样,当接收到被签名实体后,启动计时模块,当所述指令单元2在预定时间内接收到执行签名或拒绝签名的指令时,则将该指令发送给基本签名单元1;而当在预定时间内没有接收到任何指令,则指令单元2默认为用户不想签名,而自动发出拒绝签名的指令到基本签名单元1,此时计时模块复位,而所述基本签名单元1不需要判断预定时间内是否接收到指令,只需要根据指令的不同选择执行或不执行数字签名。所述计时模块的构造和连接关系为本领域人员所公知。当然,在指令单元2为多个时,所述指令单元2也可以包括该计时模块。
所述指令单元2在每次向基本签名单元1发送指令后,自动复位,包括开关或按钮状态的复位和计时模块的复位。即,只有当用户再一次操作指令单元2发出指令时(例如按钮再一次被按下)或下一次启动计时模块后并到达了预定时间而没有接收到用户指令,指令单元2才能再一次向基本签名单元发送新的指令。
所述指令单元2是唯一向基本签名单元1发出指令的部分,完全由用户直接控制。用户通过操作指令单元2向基本签名单元1发出的指令是通过直接手段,不经过任何复杂系统或非安全通道,因此,保证了指令单元2是该签名装置10的基本签名单元1的指令的唯一来源,不会受到外界系统或网络等非可信区的干预,克服了现有的数字签名系统中指令要经过主系统或网络等非可靠途径到达可信区而产生的种种安全隐患。
所述签名装置10优选情况下还包括签名指示灯,签名指示灯与基本签名单元1连接。所述签名指示灯可以为一个或多个,优选为LED显示灯,该签名指示灯通过自身状态的改变提示被签名实体的到达状态、请求签名的类别和/或签名的完成情况。所述签名指示灯自身状态的改变可以是该签名指示灯的亮度变化、颜色变化、闪烁频率变化等。这样,通过该签名指示灯的自身状态的改变可以分别提示用户该签名装置10接收到待签名的被签名实体、请求签名的类别和/或签名是否完成。例如,如果签名指示灯的自身状态改变时确有被签名实体需要被签名,则用户可以操作指令单元下达指令;如果签名指示灯的自身状态改变时并没有被签名实体需要用户签名,则用户可以确认为有人欲盗用该签名装置对文件进行签名,则用户可以在预定时间内不下达任何指令或在预定时间内下达拒绝签名的指令。
所述签名装置10优选情况下还包括展现单元3,所述展现单元3与基本签名单元1连接,用于展现基本签名单元1中被签名实体。
所述展现单元3可以为显示设备和/或语音设备,以文字、图片和/或语音的方式输出签名主体的全部或部分特征,例如扩音器或图4所示的显示屏等。所述展现单元还包括显示驱动电路或语音驱动电路,所述显示驱动电路或语音驱动电路的构造和连接关系为本领域人员所公知。
优选情况下,所述展现单元3还包括控制手柄,以控制所述被签名实体的展现,例如当文字很多时可以用方向键控制显示屏上的文字,用按钮选择要播放的语音文件等等。
所述展现单元3是本发明的一种优选实施方式,目的是为了更加清楚地向用户展示正在或将要处理的被签名实体,被签名实体可以通过此单元以全文完整展示或仅缩略图展示。这样,用户能够检查并核实正在或将要签署的文件是否为想要签署的文件,这样保证了用户对自己所签内容的完全知情。即使只是通过缩略图等形式显示部分内容,也能够充分保证将要签署的内容是当前装置中的这个文件,而不会像现有的数字签名系统那样,存在可能被别人通过网络或其他手段替换或篡改用户真正想要签名的被签名实体的漏洞。
基本签名单元1是进行数字签名的主要部分,下面对基本签名单元1作进一步说明。
所述基本签名单元1与签名装置10的各个组成单元连接,所述基本签名单元1包括接口模块、摘要生成模块、签名运算模块和系统控制模块。所述基本签名单元1能够接收被签名实体,存储非对称加密体系中的不可复制的密钥,根据指令单元2发来的指令对接收到的被签名实体生成摘要,并应用所述密钥对摘要进行签名运算。所述基本签名单元1为任何可执行数字签名操作的数字签名装置,例如IC卡、嵌入在个人数字助理(PDA)或者计算机中的特定硬件、USBKey等,优选情况下为USBKey,或为内部电路与USBKey相同而接口不同或相同的存储装置。
其中,存储在基本签名单元1中的密钥私钥的生成有如下几种方案方案一a1)先在基本签名单元1的外部生成一对密钥(即所述的“用户密钥对”),该密钥对包括用户私钥和用户公钥,生成该密钥对的方法可以利用现有加密算法,例如RSA(Rivest-Shamir-Adleman)算法等;a2)至少将生成的用户私钥导入基本签名单元1中;a3)将所述基本签名单元1外部的用户私钥销毁,以确保导入到基本签名单元1中的用户私钥的唯一性。
在方案一中,要确保导入到所述基本签名单元1中的用户私钥不会被轻易删除,则可以为该基本签名单元1增加密码登陆功能,即使用该基本签名单元1时需要输入预先设定的密码;或者在优选情况下,可以直接将所述用户私钥固化在所述基本签名单元1中。
在上述情况下,仅仅是所述用户私钥存放在基本签名单元1中,而由于所述用户公钥是公开的,因此可以通过网络下载、电话通知等手段传播。
方案二b1)在基本签名单元1中生成用户密钥对,所述用户密钥对包括用户私钥和用户公钥;b2)把所述用户公钥取出。
在方案二中,私钥和公钥是共同存储在于所述基本签名单元1中。同样,为保护该用户私钥不被删除,也可以对该基本签名单元1增加密码登陆功能,而优选情况下,可以将所述用户私钥固化在所述基本签名单元1中。
所述“不可复制”的密钥,主要包含下列四种含义
1)不可软复制,即存储用户私钥的基本签名单元1不响应外部的复制指令,例如“copy”、“read privateKey”或“export privateKey”等指令;2)不可硬复制,即即使通过破坏性手段,将所述基本签名单元1的硬件结构进行拆装也不能对所述用户私钥进行复制;3)不可解密复制,即利用与该用户私钥对应的用户公钥也不能轻易地得到该用户私钥,优选情况下所述基本签名单元1要采用安全性较高的算法,例如“RSA”算法;4)所述用户私钥只能在与之唯一对应的基本签名单元1中运行,不能在所述基本签名单元1外部运行。
所述接口模块是基本签名单元1也是本发明的签名装置10与外部(如主系统)进行数据文件传输的唯一通路,用于接收被签名实体并可选择地将签名结果输出到主系统,所述被签名实体可以通过有线传输或无线传输接收或输出,例如可与外部设备的串口、并口或者USB口等连接的端口进行有线传输,或通过蓝牙进行无线传输。在优选情况下,所述接口单元还可以进一步用于导入外部生成的私钥或导出内部生成密钥对的公钥。
所述摘要生成模块和签名运算模块构成了数字签名操作的核心部分。其中,所述摘要生成模块生成被签名实体的摘要,利用的摘要算法可以是MD5、SHA 1等。所述签名运算模块利用加密算法对所述摘要进行签名运算得到签名结果,所述加密算法可以采用RSA、椭圆算法等加密算法。上述这些算法对于本领域内技术人员来说是公知的,在这里将不再详述。
所述系统控制模块通过系统控制程序控制本签名装置的各个组成单元的整体操作,所述操作包括控制接口单元接收被签名实体、控制展现单元展现被签名实体、接收通过指令单元发来的指令、读取基本签名单元中的私钥、控制摘要的生成、控制签名结果的生成、选择保存签名结果或者将签名结果输出签名装置。
所述基本签名单元1中的其他模块,例如生成和保存密钥以及具体的密码运算等模块,属于本领域技术人员的公知技术,不在本发明范围,在此不赘述。
本发明所提供的签名装置10的各个组成单元,如基本签名单元1、指令单元2和展现单元3可以集成在一个或多个芯片上。该芯片也可以集成在移动通信终端(例如手机、PDA等)中。当集成在移动通信终端时,该签名装置对签名文件的接收和发送,优选通过无线连接的方式传输,例如射频传输、蓝牙传输等。
此外,本发明所提供的签名装置10还包括电源,以向基本签名单元1和各个单元提供电能,为本领域人员所公知,并且是任何签名装置都必备的,在此不做过多描述。
如图5所示的本发明提供的数字签名的方法的示意图可以看出,本发明所提供的数字签名的方法,包括使用本发明所提供的签名装置10,该方法包括以下步骤在签名装置10中输入被签名实体;通过指令单元2直接向所述签名装置10发出执行签名或拒绝签名的指令;所述签名装置10根据指令对该被签名实体执行或不执行数字签名。
其中,通过基本签名单元1的接口模块输入被签名实体;所述基本签名单元1根据指令对该被签名实体执行或不执行数字签名。
其中,如果在预定时间内所述签名装置10接收到执行签名的指令,则签名装置10的基本签名单元1执行数字签名;如果在预定时间内所述签名装置10接收到拒绝签名的指令或没有接收到指令,则签名装置10的基本签名单元1不执行数字签名。
优选情况下,当所述签名装置10还包括展现单元3时,所述方法还包括通过展现单元3展现该被签名实体。该步骤优选在接收指令的步骤之前。
所述展现是通过文字、图片和/或语音的方式输出被签名主体的全部或部分特征。用户可以通过展现的特征核实该被签名主体是否为实际要签名的被签名主体。如图5中虚线框中所示的为用户核实的过程,当用户核实该被签名实体是正确的并可以签名时,则发出执行签名的指令;当用户核实该被签名实体为不正确的或不想签名时,则发出拒绝签名的指令或在预定时间内不发出指令。
所述对被签名实体执行数字签名的步骤包括生成被签名实体的摘要和对所述摘要进行签名运算。该部中通过基本签名单元1的摘要生成模块、签名运算模块和存储在基本签名单元1中私钥完成。
当签名装置10对被签名实体进行数字签名之后,可以选择将签名结果发回到主系统中或存储在该签名装置10中。也可以将未被签名的被核实为不正确的或不想进行签名的被签名实体发回到主系统中。
权利要求
1.一种数字签名的签名装置,该装置包括基本签名单元,所述基本签名单元为可对被签名实体执行数字签名操作的数字签名装置;其中,该装置还包括指令单元,所述指令单元和所述基本签名单元连接,所述指令单元上设置有开关或按钮,用于直接接收执行签名或拒绝签名的指令,并将该指令发送给基本签名单元,所述基本签名单元根据指令执行或不执行数字签名。
2.根据权利要求1所述的签名装置,其中,所述开关或按钮为一个或多个。
3.根据权利要求1所述的签名装置,其中,所述指令单元还包括计时模块;计时模块与基本签名单元连接,所述计时模块用于当在预定时间内没有接收到指令时自动发出拒绝签名的指令到基本签名单元。
4.根据权利要求1所述的签名装置,其中,所述签名装置还包括签名指示灯,签名指示灯与基本签名单元连接,所述签名指示灯为一个或多个,该签名指示灯通过自身状态的改变提示被签名实体的到达状态、请求签名的类别和/或签名的完成情况。
5.根据权利要求1所述的签名装置,其中,所述签名装置还包括展现单元,所述展现单元与基本签名单元连接,用于展现基本签名单元中被签名实体。
6.根据权利要求5所述的签名装置,其中,所述展现单元为显示设备和/或语音设备,以文字、图片和/或语音的方式输出签名主体的全部或部分特征。
7.根据权利要求6所述的签名装置,其中,所述展现单元还包括控制手柄,以控制所述被签名实体的展现。
8.根据权利要求1所述的签名装置,其中,所述基本签名单元包括接口模块、摘要生成模块、签名运算模块和系统控制模块;所述接口模块用于接收被签名实体并可选择地将签名结果输出;所述摘要生成模块生成被签名实体的摘要;所述签名运算模块利用加密算法对所述摘要进行签名运算得到签名结果;所述系统控制模块控制签名装置的各个组成单元的整体操作,包括控制接口单元接收被签名实体、控制展现单元展现被签名实体、接收通过指令单元发来的指令、读取基本签名单元中的私钥、控制摘要的生成、控制签名结果的生成、选择保存签名结果或者将签名结果输出签名装置。
9.根据权利要求8所述的签名装置,其中,所述接口模块通过有线传输或无线传输接收或输出。
10.根据权利要求1-9所述的任一个签名装置,其中,所述签名装置的各个组成单元集成在一个或多个芯片上。
11.根据权利要求10所述的签名装置,其中,所述芯片集成在移动通信终端中。
12.一种数字签名的方法,其中,该方法使用权利要求1-11中所述的任一个签名装置,该方法包括以下步骤在签名装置中输入被签名实体;通过指令单元直接向所述签名装置发出执行签名或拒绝签名的指令;所述签名装置根据指令对该被签名实体执行或不执行数字签名。
13.根据权利要求12所述的方法,其中,如果在预定时间内所述签名装置接收到执行签名的指令,则签名装置的基本签名单元执行数字签名;如果在预定时间内所述签名装置收到拒绝签名的指令或没有接收到指令,则签名装置的基本签名单元不执行数字签名。
14.根据权利要求12所述的方法,其中,所述方法还包括通过展现单元展现该被签名实体。
15.根据权利要求12所述的方法,其中,所述对被签名实体执行数字签名的步骤包括生成被签名实体的摘要和对所述摘要进行签名运算。
全文摘要
提供一种数字签名的签名装置和方法,该装置包括基本签名单元,所述基本签名单元为可对被签名实体执行数字签名操作的数字签名装置;其中,该装置还包括指令单元,用于直接接收执行签名或拒绝签名的指令,并将该指令发送给基本签名单元,所述基本签名单元根据指令执行或不执行数字签名。本发明所提供的签名装置和方法中指令的下达、摘要的生成、被签名实体的展现完全在可信区内进行,安全性高,避免了指令、被签名实体以及摘要在传输过程中被篡改或替换,提高了数字签名的安全度。
文档编号H04L9/32GK1794631SQ20051013275
公开日2006年6月28日 申请日期2005年12月26日 优先权日2005年12月26日
发明者李代甫 申请人:李代甫
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1