CN110826034B - 一种文件签名方法、装置、电子设备及可读存储介质 - Google Patents
一种文件签名方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN110826034B CN110826034B CN201810925024.6A CN201810925024A CN110826034B CN 110826034 B CN110826034 B CN 110826034B CN 201810925024 A CN201810925024 A CN 201810925024A CN 110826034 B CN110826034 B CN 110826034B
- Authority
- CN
- China
- Prior art keywords
- signer
- digital signature
- public key
- information
- signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 50
- 238000004364 calculation method Methods 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种文件签名方法、装置、电子设备及可读存储介质。方法包括:确定目标文件,根据第一信息摘要算法计算目标文件的第一信息摘要值;获得签名者的私钥和公钥;私钥为:对携带签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值;利用私钥对第一信息摘要值进行加密计算,得到数字签名;将数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中;在目标文件中写入签名标记。由于私钥是基于签名者的生物特征计算得到的,因而可以实现该签名者和该数字签名的绑定。而且,可以将数字签名存储至区块链分布式账本中,从而确保数字签名的有效性,提高了数据的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种文件签名方法、装置、电子设备及可读存储介质。
背景技术
文件签名是指对文件进行数字签名。其中,数字签名是附加在文件中的一些数据,而且数字签名常常附加在文件尾部。这样,文件的接收者能够根据附加的数据来验证:该文件是否确实是签名者发送的,以及该文件的文件内容是否被篡改。
例如,张三利用私钥对文件A进行数字签名。其中,签名后的文件A的尾部写入有该数字签名。然后,张三将签名后的文件A发送给李四。李四在接收到签名后的文件A后,可以利用张三的公钥解密该数字签名。若李四能够利用张三的公钥解密得到文件A的哈希值,则证明文件A确实是张三发送的。并且,可以对接收到的文件A进行哈希计算,并将计算得到的哈希值与解密得到的哈希值进行比对。若比对结果一致,则表明文件A未被篡改,若比对结果不一致,则表明文件A被篡改。
但是,该种将数字签名附加在文件中的方式,使得数字签名容易被恶意用户篡改,无法保证数字签名的有效性,从而使用户数据的安全受到威胁。
发明内容
本发明实施例的目的在于提供一种文件签名方法、装置、电子设备及可读存储介质,以可以实现签名者和数字签名的绑定,避免数字签名被伪造。并可以确保数字签名的有效性,提高数据的安全性。具体技术方案如下:
第一方面,本发明实施例提供了一种文件签名方法,该方法可以包括:
确定待进行数字签名的目标文件,并根据预设的第一信息摘要算法计算目标文件的第一信息摘要值;
获得要对目标文件进行数字签名的签名者的私钥和公钥;私钥为:对携带签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值;
利用私钥对第一信息摘要值进行加密计算,得到签名者的数字签名;
将签名者的数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中;
在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
可选地,获得要对目标文件进行数字签名的签名者的私钥和公钥的步骤,可以包括:
获得携带有签名者的生物特征的特征图片;
根据预设的第二信息摘要算法计算特征图片的第二信息摘要值,并将第二信息摘要值作为签名者的私钥;
调用区块链公钥生成软件,生成私钥所对应的公钥。
可选地,在调用区块链公钥生成软件,生成私钥所对应的公钥的步骤之后,该方法还可以包括:
将公钥存储至区块链分布式账本中。
可选地,公钥是区块链公钥生成软件基于椭圆加密算法对私钥进行加密计算所得到的。
可选地,生物特征可以包括:签名者的指纹信息、虹膜信息和人脸信息中的至少一项。
可选地,签名标记中可以携带有第一信息摘要值、签名者的公钥、数字签名的签名时间和签名者的身份标识中的至少一项。
第二方面,本发明实施例提供了一种文件签名装置,该装置可以包括:
确定模块,用于确定待进行数字签名的目标文件,并根据预设的第一信息摘要算法计算目标文件的第一信息摘要值;
获得模块,用于获得要对目标文件进行数字签名的签名者的私钥和公钥;私钥为:对携带签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值;
计算模块,用于利用私钥对第一信息摘要值进行加密计算,得到签名者的数字签名;
第一存储模块,用于将签名者的数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中;
标记模块,用于在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
可选地,在本发明实施例中,获得模块可以包括:
获得子模块,用于获得携带有签名者的生物特征的特征图片;
计算子模块,用于根据预设的第二信息摘要算法计算特征图片的第二信息摘要值,并将第二信息摘要值作为签名者的私钥;
调用子模块,用于调用区块链公钥生成软件,生成私钥所对应的公钥。
可选地,在本发明实施例中,该装置还可以包括:
第二存储模块,用于在调用区块链公钥生成软件,生成私钥所对应的公钥之后,将公钥存储至区块链分布式账本中。
可选地,在本发明实施例中,公钥是区块链公钥生成软件基于椭圆加密算法对私钥进行加密计算所得到的。
可选地,生物特征可以包括:签名者的指纹信息、虹膜信息和人脸信息中的至少一项。
可选地,签名标记中可以携带有第一信息摘要值、签名者的公钥、数字签名的签名时间和签名者的身份标识中的至少一项。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现本发明实施例提供的任一项文件签名方法的方法步骤。
第四方面,本发明实施例还提供了一种可读存储介质,可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现:本发明实施例提供的任一项文件签名方法的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行:本发明实施例提供的任一项文件签名方法的方法步骤。
在本发明实施例中,可以确定待进行数字签名的目标文件,并可以根据预设的第一信息摘要算法计算得到该目标文件第一信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。其中,该私钥是:对携带该签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值。由于该私钥是基于签名者的生物特征计算得到的,因而可以利用该私钥来标识该签名者。从而,在利用该私钥对第一信息摘要值进行加密计算,并得到数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定。
在得到数字签名后,可以将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种文件签名方法的流程图;
图2为本发明实施例所提供的一种文件签名装置的结构示意图;
图3为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中存在的技术问题,本发明实施例提供了一种文件签名方法、装置、电子设备及可读存储介质。
下面首先对本发明实施例提供的文件签名方法进行说明。
其中,本发明实施例提供的文件签名方法可以应用于文档阅读客户端。该文档阅读客户端包括但并不局限于:WPS(WPS software,WPS软件)客户端、PPT(PowerPoint,演示文稿)客户端和PDF(Portable Document Format,便携式文档格式)客户端。
相应地,本发明实施例中的目标文件包括但并不局限于:WPS文件、PPT文件和PDF文件,当然并不局限于此。
参见图1,该文件签名方法可以包括如下步骤:
S101:确定待进行数字签名的目标文件,并根据预设的第一信息摘要算法计算目标文件的第一信息摘要值;
预设的第一信息摘要算法包括但并不局限于:CRC(Cyclic Redundancy Check,循环冗余校验)算法、SHA(Secure Hash Algorithm,安全散列算法)算法、RIPEMD(RACEIntegrity Primitives Evaluation Message Digest,RACE原始完整性校验消息摘要)算法、MD4(Message-Digest Algorithm 4,信息摘要算法版本4)算法,以及MD5(Message-Digest Algorithm 5,信息摘要算法版本5)算法。
其中,计算目标文件的第一信息摘要值具体可以是指:对目标文件的文件内容进行信息摘要值计算。
S102:获得要对目标文件进行数字签名的签名者的私钥和公钥;私钥为:对携带签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值;
在一种实现方式中,文档阅读客户端可以获得携带有签名者的生物特征的特征图片。然后,根据预设的第二信息摘要算法计算特征图片的第二信息摘要值,并将第二信息摘要值作为签名者的私钥。之后,可以调用区块链公钥生成软件,生成私钥所对应的公钥。从而可以获得签名者的私钥和公钥。
其中,由于该签名者的生物特征是与该签名者唯一对应的,因而所计算得到第二信息摘要值(即私钥)与该签名者是唯一对应的。这样,实现了该私钥与该签名者的绑定。
预设的第二信息摘要算法包括但并不局限于:CRC算法、SHA算法、RIPEMD算法、MD4算法,以及MD5算法。并且,第二信息摘要算法可以与第一信息摘要算法相同,也可以不相同,这都是合理的。
举例而言,可以利用MD5算法对特征图片进行信息摘要值计算,从而可以获得32位的MD5值。
另外,签名者的生物特征可以包括:该签名者的指纹信息、虹膜信息和人脸信息中的至少一项,当然并不局限于此。
此外,本发明实施例中的区块链公钥生成软件为:能够利用私钥生成该私钥所对应的公钥的任意软件。在此不对区块链公钥生成软件进行具体限定。
在另一种实现方式中,当已存在基于该签名者的特征图片所生成的私钥,以及基于该私钥所生成的公钥时,该文档阅读客户端可以直接加载该签名者的私钥和公钥,这都是合理的。
S103:利用私钥对第一信息摘要值进行加密计算,得到签名者的数字签名;
在获得该签名者的私钥后,可以利用该私钥对第一信息摘要值进行加密计算,从而可以得到该签名者的数字签名。由于该私钥与该签名者是绑定,因而利用该私钥进行签名得到的数字签名与该签名者也是绑定的。即,该数字签名与该签名者是唯一对应的。
S104:将签名者的数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中;
具体地,可以利用该签名者的数字签名、该目标文件的第一信息摘要值和该签名者的公钥构建一个区块链发布块,实现数字签名、第一信息摘要值和公钥的对应存储。然后,调用区块链SDK(Software Development Kit,软件开发工具包)将该发布块存储至区块链分布式账本中,从而实现该发布块的全网发布。其中,该区块链SDK为任意可以将发布块存储至区块链分布式账本中的软件,在此不做详述。
由于区块链分布式账本是集体维护的分布式数据库,具有去中心化和信息不可篡改性等特点。因而,存储在该区块链分布式账本中的数字签名和对应存储的公钥是不可篡改的,确保了该数字签名的有效性。进而,可以避免将信息泄露给恶意用户的情况发生,保证了数据的安全性。
对于背景技术所举的示例而言,现有技术中在使用数字签名过程中,常需要依赖数字证书来证明李四得到的公钥确实为张三的公钥,从而在一定程度上来确保张三的数字签名的有效性。其中,数字证书是证书授权中心机构进行数字签名的、包含公钥拥有者信息以及公钥的文件,该数字证书可以用于证明:公钥拥有者合法拥有该证书中列出的公钥。
但是,证书授权中心机构是中心化机构,该机构很可能会遭受到黑客的攻击。当该机构遭到攻击时,该机构所颁发的数字证书很可能是被黑客篡改的证书。并且,当该机构所颁发的张三的数字证书被黑客篡改时,此时无法确保张三的数字签名的有效性,使数据的安全受到威胁。
而在本发明实施例中,由于存储在该区块链分布式账本中的数字签名以及对应存储的公钥是不可篡改的,因而能够确保存储至区块链分布式账本中的该数字签名即为该公钥所对应的签名者的数字签名,从而可以保证该数字签名的有效性。
另外,在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中后,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
S105:在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
为了便于后续能够确定该目标文件是经过了数字签名的文件,从而避免重复对该目标文件进行数字签名以及便于对该目标文件的数字签名进行验证,还可以在目标文件中写入签名标记。
其中,该签名标记可以是由本领域技术人员根据具体需求而设定的标记。为了清晰说明,后续对签名标记进行详细说明。
在本发明实施例中,可以确定待进行数字签名的目标文件,并可以根据预设的第一信息摘要算法计算得到该目标文件第一信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。其中,该私钥是:对携带该签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值。由于该私钥是基于签名者的生物特征计算得到的,因而可以利用该私钥来标识该签名者。从而,在利用该私钥对第一信息摘要值进行加密计算,并得到数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定。
在得到数字签名后,可以将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
下面以PDF文件为示例,对本发明实施例提供的文件签名方法进行详细说明。
假设电子设备中安装有PDF客户端,并且通过该PDF客户端打开有目标PDF文件。当用户A想要对该目标PDF文件进行数字签名时,该PDF客户端可以根据MD5算法来计算该目标PDF文件的文件内容的第一MD5值。
该PDF客户端还可以获得用户A的私钥和公钥。具体地,该PDF客户端可以询问用户A是否存在基于生物特征所生成的区块链私钥和公钥。若用户A不存在该区块链私钥和公钥,该PDF客户端可以获得携带有用户A的指纹信息的特征图片。然后,可以根据MD5算法来计算该特征图片的第二MD5值,并将该第二MD5值作为用户A的私钥。由于每个人的指纹信息是不相同的,因而可以利用基于用户A的指纹信息所生成的私钥来标识用户A。
其中,在生成用户A的私钥后,还可以调用区块链公钥生成软件生成该私钥所对应的公钥。具体地,区块链公钥生成软件可以基于椭圆加密算法对该私钥进行加密计算,从而得到该私钥对应的公钥。其中,椭圆加密算法是一种建立公开密钥加密的演算法。该椭圆加密算法具体可以为椭圆曲线数字签名算法(Elliptic Curve Digital SignatureAlgorithm,ECDSA)。
在生成该私钥对应的公钥后,还可以将该公钥存储至区块链分布式账本中。这样,全网可以证明该公钥即为用户A的公钥,避免了用户A的公钥被冒充。
若用户A存在该区块链公钥和私钥,该PDF客户端可以直接加载用户A的私钥和公钥,并利用加载得到的私钥对第一MD5值进行加密计算。
当利用该私钥对第一MD5值进行加密计算,得到用户A对该目标PDF文件的数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定,避免了恶意用户将伪造的数字签名作为用户A的数字签名的情况发生。
在得到用户A对该目标PDF文件的数字签名后,可以将该数字签名、第一MD5值和公钥对应存储至区块链分布式账本中。这样,不需要将数字签名写在目标PDF文件的尾部。而且,将数字签名写在区块链分布式账本中的方式可以避免数字签名被篡改,确保了数字签名的有效性。
其中,将该数字签名、第一MD5值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一MD5值和公钥对该数字签名进行验证。
具体地,该PDF客户端还可以计算该目标PDF文件当前的MD5值。然后,调用区块链SDK查找区块链分布式账本中的、与当前的MD5值匹配的MD5值。当在该区块链分布式账本中查找不到与当前的MD5值匹配的MD5值时,则表明该目标PDF文件的文件内容被篡改。
当在该区块链分布式账本中能够查找到与当前的MD5值匹配的MD5值时,还可以获取区块链分布式账本中与该MD5值对应存储的公钥和数字签名。然后,利用与该MD5值对应存储的公钥对与该MD5值对应存储的数字签名进行解密,并利用解密得到的MD5值与该当前的MD5值匹配。若匹配成功,则表明该目标PDF文件的文件内容未被篡改。若匹配失败,则表明该目标PDF文件的文件内容被篡改。
其中,在与该MD5值对应存储的数字签名进行验证的过程中,可以基于用户A指纹信息计算用户A的公钥。当利用该计算出的公钥能成功解密该数字签名时,即能准确地确定该数字签名即为用户A的数字签名。
另外,为了便于后续对目标PDF文件的数字签名进行验证,还可以给该目标PDF文件标记一个签名标记,以标记该目标PDF文件已经完成了数字签名。这样,在完成对该目标PDF文件的数字签名之后,该PDF客户端还可以通过该目标PDF文件中记录的签名标记,识别该目标PDF文件是经过数字签名的文件。
其中,为了更有效地对数字签名进行验证,另外,该签名标记中可以包括:第一信息摘要值、签名者的公钥、数字签名的签名时间和签名者的身份标识中的至少一项。
当签名标记中携带有签名者的身份标识时,设备K也可以在接收到针对该目标PDF文件的数字签名的验证指令时,先向用户展示该签名者的身份标识。当用户对该身份标识进行确认之后,即在用户确认是用户A的数字签名后,设备K可以计算该目标PDF文件当前的MD5值,并可以在区块链分布式账本中查找该当前的MD5值,并根据查找结果执行相应的操作。反之,当用户对该身份标识进行否认时,则确定该目标PDF文件被篡改。
当该签名标记中还携带有第一MD5值时,在计算得到目标PDF文件当前的MD5值之后,该设备K还可以判断签名标记中携带的第一MD5值是否与该当前的MD5值相等。若不相等,则确定该目标PDF文件被篡改。若相等,则相当,则调用区块链SDK查找区块链分布式账本中的、与当前的MD5值匹配的MD5值。
当该签名标记中还携带有数字签名的签名时间时,而且,在该区块链分布式账本中能查找到与当前的MD5值匹配的MD5值时,该设备K还可以确定区块链分布式账本中匹配成功的MD5值所对应的存储时间戳。并判断该存储时间戳与签名时间的时间间隔是否小于预设阈值。若大于等于预设阈值,则确定目标PDF文件被篡改。其中,该预设阈值可以由本领域技术人员根据实际情况进行设定,在此不做限定。
反之,若小于预设阈值,则可以确定目标PDF文件未被篡改。其中,当该签名标记中还携带有数字签名的公钥时,还可以判断区块链分布式账本中该匹配成功的MD5值所对应存储的公钥是否与该签名标记中携带的公钥匹配。若不匹配,则确定该目标文件被篡改。
若匹配,则利用该对应存储的公钥,对区块链分布式账本中的、与该匹配成功的MD5值对应存储的数字签名进行解密。若解密失败,确定目标文件被篡改。若解密成功,判断解密得到的MD5值是否与该匹配成功的MD5值相同。若相同,确定目标PDF文件未被篡改。若不相同,则表明该对应存储的数字签名很可能是恶意用户伪造的数字签名。此时,为了保证签名的数字签名的有效性,可以重新对利用上述数字签名方式对该目标PDF文件进行数字签名。
其中,为了签名标记中所携带的内容不被恶意用户篡改,还可以利用用户A的私钥对该签名标记中所携带的内容进行数字签名,这是合理的。
综上,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,应用本发明实施例提供的文件签名方法,可以确保数字签名的有效性,即可以保证该数字签名不被篡改,从而提高了数据的安全性。而且,可以实现签名者和数字签名的绑定,避免数字签名被伪造。
相应于上述方法实施例,本发明实施例还提供了一种文件签名装置,参见图2,该装置可以包括:
确定模块201,用于确定待进行数字签名的目标文件,并根据预设的第一信息摘要算法计算目标文件的第一信息摘要值;
获得模块202,用于获得要对目标文件进行数字签名的签名者的私钥和公钥;私钥为:对携带签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值;
计算模块203,用于利用私钥对第一信息摘要值进行加密计算,得到签名者的数字签名;
第一存储模块204,用于将签名者的数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中;
标记模块205,用于在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
应用本发明实施例提供的装置,可以确定待进行数字签名的目标文件,并可以根据预设的第一信息摘要算法计算得到该目标文件第一信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。其中,该私钥是:对携带该签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值。由于该私钥是基于签名者的生物特征计算得到的,因而可以利用该私钥来标识该签名者。从而,在利用该私钥对第一信息摘要值进行加密计算,并得到数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定。
在得到数字签名后,可以将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
可选地,在本发明实施例中,获得模块202可以包括:
获得子模块,用于获得携带有签名者的生物特征的特征图片;
计算子模块,用于根据预设的第二信息摘要算法计算特征图片的第二信息摘要值,并将第二信息摘要值作为签名者的私钥;
调用子模块,用于调用区块链公钥生成软件,生成私钥所对应的公钥。
可选地,在本发明实施例中,该装置还可以包括:
第二存储模块,用于在调用区块链公钥生成软件,生成私钥所对应的公钥之后,将公钥存储至区块链分布式账本中。
可选地,在本发明实施例中,公钥是区块链公钥生成软件基于椭圆加密算法对私钥进行加密计算所得到的。
可选地,在本发明实施例中,生物特征可以包括:签名者的指纹信息、虹膜信息和人脸信息中的至少一项。
可选地,签名标记中携带有:第一信息摘要值、签名者的公钥、数字签名的签名时间和签名者的身份标识中的至少一项。
相应于上述方法实施例,本发明实施例还提供了一种电子设备,参见图3,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现上述任一项文件签名方法的方法步骤。
在本发明实施例中,电子设备可以确定待进行数字签名的目标文件,并可以根据预设的第一信息摘要算法计算得到该目标文件第一信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。其中,该私钥是:对携带该签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值。由于该私钥是基于签名者的生物特征计算得到的,因而可以利用该私钥来标识该签名者。从而,在利用该私钥对第一信息摘要值进行加密计算,并得到数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定。
在得到数字签名后,可以将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
相应于上述方法实施例,本发明实施例还提供了一种可读存储介质,可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一项文件签名方法的方法步骤。
本发明实施例提供的可读存储介质中存储的计算机程序被电子设备的处理器执行后,电子设备可以确定待进行数字签名的目标文件,并可以根据预设的第一信息摘要算法计算得到该目标文件第一信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。其中,该私钥是:对携带该签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值。由于该私钥是基于签名者的生物特征计算得到的,因而可以利用该私钥来标识该签名者。从而,在利用该私钥对第一信息摘要值进行加密计算,并得到数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定。
在得到数字签名后,可以将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
相应于上述方法实施例,本发明实施例还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行:上述任一项文件签名方法的方法步骤。
本发明实施例提供的包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以确定待进行数字签名的目标文件,并可以根据预设的第一信息摘要算法计算得到该目标文件第一信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。其中,该私钥是:对携带该签名者的生物特征的特征图片进行信息摘要计算后所得到的第二信息摘要值。由于该私钥是基于签名者的生物特征计算得到的,因而可以利用该私钥来标识该签名者。从而,在利用该私钥对第一信息摘要值进行加密计算,并得到数字签名后,可以保证该数字签名即为该签名者的数字签名,实现了签名者和数字签名的绑定。
在得到数字签名后,可以将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该第一信息摘要值和公钥对该数字签名进行验证。
在将该数字签名、第一信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、可读存储介质和包含指令的计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种文件签名方法,其特征在于,所述方法包括:
确定待进行数字签名的目标文件,并根据预设的第一信息摘要算法计算所述目标文件的第一信息摘要值,其中,所述目标文件为文本类型的文件;
获得携带有要对所述目标文件进行数字签名的签名者的生物特征的特征图片;根据预设的第二信息摘要算法计算所述特征图片的第二信息摘要值,并将所述第二信息摘要值作为所述签名者的私钥;调用区块链公钥生成软件,生成所述私钥所对应的公钥;
利用所述私钥对所述第一信息摘要值进行加密计算,得到所述签名者的数字签名;
将所述签名者的数字签名、所述第一信息摘要值和所述公钥对应存储至区块链分布式账本中;
在所述目标文件中写入签名标记,所述签名标记用于标记已对所述目标文件进行数字签名。
2.根据权利要求1所述的方法,其特征在于,在所述调用区块链公钥生成软件,生成所述私钥所对应的公钥的步骤之后,所述方法还包括:
将所述公钥存储至区块链分布式账本中。
3.根据权利要求1所述的方法,其特征在于,所述公钥是所述区块链公钥生成软件基于椭圆加密算法对所述私钥进行加密计算所得到的。
4.根据权利要求1所述的方法,其特征在于,所述生物特征包括:所述签名者的指纹信息、虹膜信息和人脸信息中的至少一项。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述签名标记中携带有所述第一信息摘要值、所述签名者的公钥、所述数字签名的签名时间和所述签名者的身份标识中的至少一项。
6.一种文件签名装置,其特征在于,所述装置包括:
确定模块,用于确定待进行数字签名的目标文件,并根据预设的第一信息摘要算法计算所述目标文件的第一信息摘要值,其中,所述目标文件为文本类型的文件;
获得模块,包括:获得子模块,用于获得携带有要对所述目标文件进行数字签名的签名者的生物特征的特征图片;计算子模块,用于根据预设的第二信息摘要算法计算所述特征图片的第二信息摘要值,并将所述第二信息摘要值作为所述签名者的私钥;调用子模块,用于调用区块链公钥生成软件,生成所述私钥所对应的公钥;
计算模块,用于利用所述私钥对所述第一信息摘要值进行加密计算,得到所述签名者的数字签名;
第一存储模块,用于将所述签名者的数字签名、所述第一信息摘要值和所述公钥对应存储至区块链分布式账本中;
标记模块,用于在所述目标文件中写入签名标记,所述签名标记用于标记已对所述目标文件进行数字签名。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二存储模块,用于在调用区块链公钥生成软件,生成所述私钥所对应的公钥之后,将所述公钥存储至区块链分布式账本中。
8.根据权利要求6所述的装置,其特征在于,所述公钥是所述区块链公钥生成软件基于椭圆加密算法对所述私钥进行加密计算所得到的。
9.根据权利要求6所述的装置,其特征在于,所述生物特征包括:所述签名者的指纹信息、虹膜信息和人脸信息中的至少一项。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述签名标记中携带有所述第一信息摘要值、所述签名者的公钥、所述数字签名的签名时间和所述签名者的身份标识中的至少一项。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5中任一所述的方法步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5中任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810925024.6A CN110826034B (zh) | 2018-08-14 | 2018-08-14 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810925024.6A CN110826034B (zh) | 2018-08-14 | 2018-08-14 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110826034A CN110826034A (zh) | 2020-02-21 |
CN110826034B true CN110826034B (zh) | 2022-09-02 |
Family
ID=69547289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810925024.6A Active CN110826034B (zh) | 2018-08-14 | 2018-08-14 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110826034B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI809552B (zh) * | 2021-11-04 | 2023-07-21 | 核心智識股份有限公司 | 整合生物辨識資訊之電子文件自動簽名裝置、系統及其方法 |
CN114448687A (zh) * | 2022-01-18 | 2022-05-06 | 徐工汉云技术股份有限公司 | 一种基于rsa的图像文件加密方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064847A1 (en) * | 2003-12-22 | 2005-07-14 | Telefonaktiebolaget L M Ericsson (Publ) | Method and computer system operated software application for digital signature |
US7024558B1 (en) * | 1999-11-24 | 2006-04-04 | Fujitsu Limited | Apparatus and method for authenticating digital signatures and computer-readable recording medium thereof |
CN107832624A (zh) * | 2017-10-25 | 2018-03-23 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链的可视化签名系统和方法 |
CN107864039A (zh) * | 2017-11-08 | 2018-03-30 | 深圳市金立通信设备有限公司 | 一种应用签名方法、终端以及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426170B (zh) * | 2017-05-24 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN108055258B (zh) * | 2017-12-08 | 2021-02-05 | 苏州朗润创新知识产权运营有限公司 | 一种身份数据管理方法、系统和计算机可读存储介质 |
CN108377187B (zh) * | 2018-03-21 | 2022-03-04 | 超越科技股份有限公司 | 一种基于生物特征的区块链私钥使用方法与装置 |
-
2018
- 2018-08-14 CN CN201810925024.6A patent/CN110826034B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024558B1 (en) * | 1999-11-24 | 2006-04-04 | Fujitsu Limited | Apparatus and method for authenticating digital signatures and computer-readable recording medium thereof |
WO2005064847A1 (en) * | 2003-12-22 | 2005-07-14 | Telefonaktiebolaget L M Ericsson (Publ) | Method and computer system operated software application for digital signature |
CN107832624A (zh) * | 2017-10-25 | 2018-03-23 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链的可视化签名系统和方法 |
CN107864039A (zh) * | 2017-11-08 | 2018-03-30 | 深圳市金立通信设备有限公司 | 一种应用签名方法、终端以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110826034A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550935B2 (en) | Method, apparatus, and electronic device for blockchain-based recordkeeping | |
CN107342867B (zh) | 签名验签方法和装置 | |
CN108111314B (zh) | 数字证书的生成和校验方法及设备 | |
CN107463806B (zh) | 一种Android应用程序安装包的签名和验签方法 | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
CN110830256A (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN110830257B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN110391913B (zh) | 车辆的绑定方法及装置 | |
CN110826091B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN109905360B (zh) | 数据验证方法及终端设备 | |
CN110826092A (zh) | 一种文件签名处理系统 | |
CN110958319B (zh) | 一种基于区块链的侵权存证管理方法及装置 | |
CN104283860A (zh) | 一种基于代码签名的elf文件鉴别方法和装置 | |
CN113225324B (zh) | 区块链匿名账户创建方法、系统、设备及存储介质 | |
CN110008719B (zh) | 一种文件处理、文件检测方法及装置 | |
CN112165382A (zh) | 软件授权方法、装置、授权服务端及终端设备 | |
CN110826107B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN110826034B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN110602051B (zh) | 基于共识协议的信息处理方法及相关装置 | |
CN109756344B (zh) | 一种文档的数字签名及其验证方法和装置 | |
WO2020057389A1 (zh) | 一种签名验证方法、装置、电子设备及可读存储介质 | |
CN111079155A (zh) | 数据处理方法、装置、电子设备和计算机存储介质 | |
CN110535663B (zh) | 一种基于区块链的可信时间戳服务的实现方法及系统 | |
CN114172689A (zh) | 一种信息处理方法及设备 | |
WO2016172986A1 (zh) | 数据认证方法、装置和系统、计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |