专利名称:一种数字签名方法及数字签名工具的制作方法
技术领域:
本发明涉及数字签名技术,具体涉及一种数字签名方法,本发明还涉及采用该方法的数字签名工具。
背景技术:
随着科技的不断进步,随着计算机及互联网的为断普及,越来越多的手写文件被数字文件所取代,那么如何确定一个数字文件的身份、合法来源,文件的作者,文件最后的签名时间呢?如何保证数字文件一经被签名后,就具有唯一性呢?如何确保对已被签名的数字文件作所作的任何修改都是可知的呢?这就迫切需要一种工具及方法,去实现以上功能。同时,我们还要使得被签证后的数字文件能被任何拥有合法权限的人能清楚地知道该签名文件的内容、身份、来源、作者、文件最后的签名时间。这里的一个关键是文件的最后签名时间和作者的身份,文件的最后签名时间及作者的身份能够保证每一个被签名的文件都是唯一的。
发明内容
本发明的一个主要目的在于,提供一种数字签名方法,采用本方法可使得一、被签名的数字文件能被任何拥有合法权限的人清楚地知道该签名文件的内容、身份、来源、作者、文件最后的签名时间。
二、任何被签名的数字文件都具有唯一性,即没有一个被签名后的文件是相同的。
三、对被签名的数字文件所作的任何修改都是可知的。
本发明的另一个目的是提供一种采用上述签名方法的数字签名工具,采用该工具,可以实现上述数字签名方法的功能。
本发明提供的数字签名方法如下签名步骤生成签名文件软件将要签名的文件分成多个数据分组,然后将这些数据分组分批送入到签名硬件中,然后发出加密指令。硬件内部首先将输入的数据与硬件ID及当前时间按照一定的规则混合,然后使用硬件内部的两条私有密匙分别对混合后的数据进行加密,然后分别输出给软件,软件接收这两组加密数据后,将这些数据再重新组织成一个新的签名文件。该签名文件包含两部分,一部分为由私有密匙一对原文加密的密文,另一部分为由私有密匙二对原文加密的密文。这样,这个新生成的签名文件就在原文的基础上具有基于硬件身份及时间的唯一性,同时还具有加密特性。
验证签名步骤一、使用自身密匙进行验证软件将要签名的文件的由私有密匙一加密的部分送入到硬件中,然后发出解密指令,要求硬件使用自身的私有密匙一对其进行解密。硬件内部就会使用私有密匙一将送入的数据进行解密,然后将解密后的数据返回给软件。接着,软件将要签名的文件的由私有密匙二加密的部分送入到硬件中,然后发出解密指令,要求硬件使用自身的私有密匙二对其进行解密。硬件内部就会使用私有密匙二将送入的数据进行解密,然后将解密后的数据返回给软件。
软件将前后两次解密的结果进行比较,如果不相同,表示文件已被修改,这时可以提示错误,将不同的地方显示出来。如果相同,表示签名后的文件未被修改,由于解密后还原的数据中包含有硬件的ID及签名时的时间以及原有的原文内容,这时软件就可以将这些数据分离出来,生成该签名文件的原文副本,同时显示签名者身份及签名时的时间。
二、使用由签名硬件输出的加密密匙在任何一个签名工具上进行验证(不包括自身)在进行验证签名文件时,生成签名文件的签名工具必须在生成签名文件后输出其加密的私有密匙(使用公有密匙对硬件内的两条私有密匙进行加密,然后输出)。
软件首先获取该签名文件的签名工具(简称原签名工具)的加密后的私有密匙,然后将加密后的私有密匙送入要验证的签名工具(简单称验证工具),由验证工具使用公有密匙对输入的加密密匙解密,生成原签名工具的两条私有密匙,这样,验证工具就可以使用原签名工具的私有密匙对由原签名工具进行签名的文件进行验证了,验证方法同上,这里不再累述。
三、使用由签名硬件输出的由随机数加密的密匙在指定的签名工具上进行验证这种验证方法与上一验证方法的最大不同在于,没有授权的签名工具无法对其进行验证,这样就增加了签名的文件的安全性,就不会因由于输出的加密密匙被窃取而导致签名文件被未被授权的人查看。
1、被授权的签名工具(简称被授权工具)首先要生成一个随机数,然后将该随机数与自身ID按一定的规则混合,然后使用公有密匙对其进行加密,然后将加密后的数据输出。
2、软件将输出的加密后的数据送入到原签名工具,原签名工具使用公有密匙对该数据进行解密,还原成随机数及被授权工具ID,然后使用随机数对原签名工具内的私有密匙进行加密,然后将加密后的私有密匙及被授权工具ID输出,软件获得加密后的私有密匙的同时,将被授权工具ID显示给用户,以验证其身份。
3、软件将由随机数加密后的加密密匙送入被授权工具,被授权工具使用其生成的随机数对加密密匙进行解密,生成原签名工具的两条私有密匙,这样,验证工具就可以使用原签名工具的私有密匙对由原签名工具进行签名的文件进行验证了,验证方法同上。
提供一种采用上述数字签名方法的数字签名工具,包括工具盒体、设置在盒体中的单片机,在盒体中还设有与所述单片机交换信息的如下单元硬件加密算法单元及解密算法单元、唯一的ID号发生单元、至少一条公有密匙单元、至少两条私有密匙、随机数发生器单元、随机数储存区单元、时钟计数器单元,在盒体上还设有用于与外围设备进行通讯的外围接口和长期供电装置。
本发明提供的签名工具具有如下优点一、具有不可复制性,即硬件无法被完整地复制(除发行机构),这样就在硬件层面上保证了硬件的唯一性。
二、硬件是一个黑盒子,可以由类似智能卡或单片机的器件组成,。
三、硬件可以内置硬件加密及解密算法,亦可以使用软件加密及解密算法。
四、硬件内有一唯一ID号,该ID号作为该硬件的身份证明。
五、硬件内有一条或多条公有密匙。
六、硬件内有两条或多条私有密匙七、硬件有一外围接口可以与外围设备进行通讯。
八、硬件有一长期供电系统(例如电池供电)及备用供电系统,并可以有一电量指示装置。
九、硬件内的时钟不可以被修改或设置(除发行机构外),且该时钟在出厂时就已被发行机构设置成与国际时间同步。
十、硬件一经掉电,将立即失效,即无法对其进行任何操作,即使其被重新上电,亦无法对其进行操作,从而保证了硬件时钟的不可被非法修改。
十一、硬件内部有一随机数发生器,用于生成随机数。
十二、硬件内部有一随机数储存区,用于储存最近一些生成的随机数。硬件内部系统还具有如下功能当外部发出加密数据指令时,首先将当前硬件时钟及硬件ID与输入的要加密的数据按照一定的规则混合后生成一组新的要加密的数据,然后使用硬件内置的私有密匙一及私有密匙二分别对该新生成的混合数据进行加密,生成两份不同的加密后的数据,再输出给外围设备。举例如下假设加密数据分组为128位,假设要加密的数据为0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,硬件内部系统首先将系统时钟(相对于某一固定时间经过的毫秒数)假设为0x45,0x67,0x89,0x10,硬件内部唯一ID假设为0x01,0x02,0x03,0x04,组成一个128位的分组,然后分别用私有密匙一pkey1及私有密匙二pkey2对该分组数据进行加密,生成两组加密后的数据,这样这两组加密后的数据在被分别正确解密后,都包括有硬件ID及签证时的时间。
一、当外部发出加密pkey1及pkey2密匙命令时,硬件内部系统使用公有密匙ckey1分别对pkey1,pkey2进行加密然后输出到外围系统。
二、当外部发出命令要求硬件输出随机数时,硬件内部系统使用公有密匙ckey1对产生的随机数进行加密后并输出。
三、当外部发出使用随机数据加密pkey1及pkey2密匙命令时,硬件内部系统使用公用密匙ckey1分别对pkey1,pkey2进行加密,生成一组加密数据,再使用输入的随机数据对刚才生成的加密数再进行加密,然后输出到外围系统。
四、当外部发出要求使用自身密匙解密数据时,硬件系统分别使用私有密匙一pkey1及私有密匙二pkey2对该输入的两组分组数据进行解密,然后将解密后的两组数据进行比较并输出。
五、当外部发出要求使用输入的加密密匙解密数据时,硬件内部系统先使用公用密匙对输入的加密的私有密匙一及私有密匙二进行解密,然后使用该两条私有密匙对输入的两组分组加密数据进行解密,然后将解密后的两组数据进行比较并输出。
六、当外部发出要求使用硬件中的随机数据及输入的加密密匙解密数据时,硬件内部系统先使用硬件中的公用密匙对输入的加密后的随机密匙进行解密,然后使用该随机数据对输入的加密密匙进行解密,然后再使用公用密匙对输入的加密的私有密匙一及私有密匙二进行解密,然后使用该两条私有密匙对输入的两组分组加密数据进行解密,然后将解密后的两组数据进行比较并输出。
七、当外部要求硬件输出自身ID时,硬件内部系统将自身的ID输出到外围系统。
九、为了防止遗失或被盗签名工具而被别人滥用签名,可以在使用签名工具时,硬件要求输入密码进行验证或其它验证才工作。
除了硬件之外,还有一软件用于对硬件进行操纵。该软件必须实现如下功能1、发出命令要求硬件对输入的数据进行加密,然后对输出的两组数据进行处理。
2、发出命令要求硬件对硬件内的私有密匙进行加密,然后对输出的数据进行处理。
3、发出命令要求硬件输出加密后的随机密匙。
4、发出命令要求硬件使用随机数据加密pkey1及pkey2密匙,然后对输出的数据进行处理。
5、发出命令要求硬件使用自身密匙解密数据,然后将输出的两组数据进行处理。
6、发出命令要求使用输入的加密密匙解密数据,然后将输出的两组数据进行处理。
7、发出命令要求使用硬件中的随机数据及输入的加密密匙解密数据,然后将输出的两组数据进行处理。
8、读出硬件内部唯一ID。
图1是本发明数字签名工具的组成方框图;图2是数字签名工具的电路原理图;图3本发明数字签名方法的工作流程方框图。
具体实施例方式
数字签名工具的结构如图1、图2所示,在工具盒体中设有单片机,在盒体中还设有与单片机交换信息的如下单元硬件加密算法单元及解密算法单元、唯一的ID号发生单元、一条或多条公有密匙单元、两条或多条私有密匙、随机数发生器单元、随机数储存区单元、时钟计数器单元,在盒体上还设有用于与外围设备进行通讯的外围接口和长期供电装置。
下面结合图3进一步说明本发明数字签名方法的工作原理签名流程生成签名文件软件将要签名的文件分成多个数据分组,然后将这些数据分组分批送入到签名硬件中,然后发出加密指令。硬件内部首先将输入的数据与硬件ID及当前时间按照一定的规则混合,然后使用硬件内部的两条私有密匙分别对混合后的数据进行加密,然后分别输出给软件,软件接收这两组加密数据后,将这些数据再重新组织成一个新的签名文件。该签名文件包含两部分,一部分为由私有密匙一对原文加密的密文,另一部分为由私有密匙二对原文加密的密文。这样,这个新生成的签名文件就在原文的基础上具有基于硬件身份及时间的唯一性,同时还具有加密特性。
验证签名流程使用自身密匙进行验证软件将要签名的文件的由私有密匙一加密的部分送入到硬件中,然后发出解密指令,要求硬件使用自身的私有密匙一对其进行解密。硬件内部就会使用私有密匙一将送入的数据进行解密,然后将解密后的数据返回给软件。
接着,软件将要签名的文件的由私有密匙二加密的部分送入到硬件中,然后发出解密指令,要求硬件使用自身的私有密匙二对其进行解密。硬件内部就会使用私有密匙二将送入的数据进行解密,然后将解密后的数据返回给软件。
软件将前后两次解密的结果进行比较,如果不相同,表示文件已被修改,这时可以提示错误,将不同的地方显示出来。如果相同,表示签名后的文件未被修改,由于解密后还原的数据中包含有硬件的ID及签名时的时间以及原有的原文内容,这时软件就可以将这些数据分离出来,生成该签名文件的原文副本,同时显示签名者身份及签名时的时间。
使用由签名硬件输出的加密密匙在任何一个签名工具上进行验证(不包括自身)在进行验证签名文件时,生成签名文件的签名工具必须在生成签名文件后输出其加密的私有密匙(使用公有密匙对硬件内的两条私有密匙进行加密,然后输出)。
软件首先获取该签名文件的签名工具(简称原签名工具)的加密后的私有密匙,然后将加密后的私有密匙送入要验证的签名工具(简单称验证工具),由验证工具使用公有密匙对输入的加密密匙解密,生成原签名工具的两条私有密匙,这样,验证工具就可以使用原签名工具的私有密匙对由原签名工具进行签名的文件进行验证了,验证方法同上,这里不再累述。
使用由签名硬件输出的由随机数加密的密匙在指定的签名工具上进行验证这种验证方法与上一验证方法的最大不同在于,没有授权的签名工具无法对其进行验证,这样就增加了签名的文件的安全性,就不会因由于输出的加密密匙被窃取而导致签名文件被未被授权的人查看。
被授权的签名工具(简称被授权工具)首先要生成一个随机数,然后将该随机数与自身ID按一定的规则混合,然后使用公有密匙对其进行加密,然后将加密后的数据输出。
软件将输出的加密后的数据送入到原签名工具,原签名工具使用公有密匙对该数据进行解密,还原成随机数及被授权工具ID,然后使用随机数对原签名工具内的私有密匙进行加密,然后将加密后的私有密匙及被授权工具ID输出,软件获得加密后的私有密匙的同时,将被授权工具ID显示给用户,以验证其身份。
软件将由随机数加密后的加密密匙送入被授权工具,被授权工具使用其生成的随机数对加密密匙进行解密,生成原签名工具的两条私有密匙,这样,验证工具就可以使用原签名工具的私有密匙对由原签名工具进行签名的文件进行验证了,验证方法同上,这里不再累述。
私有密匙、硬件ID及硬件申请人的身份确认由一发行机构进行统一分配及管理,这样就可以保证私有密匙、硬件ID的唯一性。
权利要求
1.一种数字签名方法,其特征在于,包括如下步骤签名步骤1)生成签名文件将要签名的文件分成多个数据分组,然后将这些数据分组分批送入到签名硬件中,然后发出加密指令;2)硬件内部首先将输入的数据与硬件ID及当前时间按照一定的规则混合,然后使用硬件内部的两条私有密匙分别对混合后的数据进行加密,然后分别输出给软件;3)软件接收这两组加密数据后,将这些数据再重新组织成一个新的签名文件;该签名文件包含两部分,一部分为由私有密匙一对原文加密的密文,另一部分为由私有密匙二对原文加密的密文;这个新生成的签名文件就在原文的基础上具有基于硬件身份及时间的唯一性,同时还具有加密特性;验证签名步骤1)使用自身密匙进行验证软件将要签名的文件的由私有密匙一加密的部分送入到硬件中,然后发出解密指令,要求硬件使用自身的私有密匙一对其进行解密。硬件内部就会使用私有密匙一将送入的数据进行解密,然后将解密后的数据返回给软件;软件将要签名的文件由私有密匙二加密的部分送入到硬件中,然后发出解密指令,要求硬件使用自身的私有密匙二对其进行解密;硬件内部使用私有密匙二将送入的数据进行解密,然后将解密后的数据返回给软件;软件将前后两次解密的结果进行比较,如果不相同,表示文件已被修改,可提示错误,将不同的地方显示出来;如果相同,表示签名后的文件未被修改,解密后还原的数据中包含有硬件的ID及签名时的时间以及原有的原文内容,软件将这些数据分离出来,生成该签名文件的原文副本,同时显示签名者身份及签名时的时间;2)使用由签名硬件输出的加密密匙在任何一个签名工具上进行验证在进行验证签名文件时,生成签名文件的签名工具必须在生成签名文件后输出其加密的私有密匙,使用公有密匙对硬件内的两条私有密匙进行加密,然后输出;软件首先获取该签名文件的签名工具,简称原签名工具的加密后的私有密匙,然后将加密后的私有密匙送入要验证的签名工具,由验证工具使用公有密匙对输入的加密密匙解密,生成原签名工具的两条私有密匙,这样,验证工具就可以使用原签名工具的私有密匙对由原签名工具进行签名的文件进行验证了,验证方法同上;3)用由签名硬件输出的由随机数加密的密匙在指定的签名工具上进行验证被授权的签名工具首先生成一个随机数,然后将该随机数与自身ID按一定的规则混合,然后使用公有密匙对其进行加密,然后将加密后的数据输出;软件将输出的加密后的数据送入到原签名工具,原签名工具使用公有密匙对该数据进行解密,还原成随机数及被授权工具ID,然后使用随机数对原签名工具内的私有密匙进行加密,然后将加密后的私有密匙及被授权工具ID输出,软件获得加密后的私有密匙的同时,将被授权工具ID显示给用户,以验证其身份;软件将由随机数加密后的加密密匙送入被授权工具,被授权工具使用其生成的随机数对加密密匙进行解密,生成原签名工具的两条私有密匙,验证工具以使用原签名工具的私有密匙对由原签名工具进行签名的文件进行验证。
2.一种采用如权利要求1所述数字签名方法的数字签名工具,其特征在于,包括工具盒体、设置在盒体中的单片机,在盒体中还设有与所述单片机交换信息的如下单元硬件加密算法单元及解密算法单元、唯一的ID号发生单元、至少一条公有密匙单元、至少两条私有密匙、随机数发生器单元、随机数储存区单元、时钟计数器单元,在盒体上还设有用于与外围设备进行通讯的外围接口和长期供电装置。
3.根据权利要求2所述数字签名工具,其特征在于,在所述盒体中设有多条公有密匙单元和多条私有密匙单元。
全文摘要
本发明公开了一种数字签名方法及签名工具,包括如下步骤将要签名的文件分成多个数据分组,然后将这些数据分组分批送入到签名硬件中,硬件内部的两条私有密匙分别对混合后的数据进行加密,然后分别输出给软件;软件接收这两组加密数据后,将这些数据再重新组织成一个新的签名文件;该签名文件包含两部分,一部分为由私有密匙一对原文加密的密文,另一部分为由私有密匙二对原文加密的密文;本发明具有如下优点被签名的数字文件能被任何拥有合法权限的人清楚地知道该签名文件的内容、身份、来源、作者、文件最后的签名时间;任何被签名的数字文件都具有唯一性,即没有一个被签名后的文件是相同的;对被签名的数字文件所作的任何修改都是可知的。
文档编号H04L9/00GK1722656SQ20041002678
公开日2006年1月18日 申请日期2004年4月8日 优先权日2004年4月8日
发明者梁庆生 申请人:梁庆生