CN110830257B - 一种文件签名方法、装置、电子设备及可读存储介质 - Google Patents
一种文件签名方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN110830257B CN110830257B CN201810922990.2A CN201810922990A CN110830257B CN 110830257 B CN110830257 B CN 110830257B CN 201810922990 A CN201810922990 A CN 201810922990A CN 110830257 B CN110830257 B CN 110830257B
- Authority
- CN
- China
- Prior art keywords
- file
- digital signature
- public key
- value
- user
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (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文件。相应地,本发明实施例中的第二文件包括但并不局限于:WPS文件、PPT文件和PDF文件。当然并不局限于此。
参见图1,该文件签名方法可以包括如下步骤:
S101:在用户对第一文件的文件内容进行修改后,计算对第一文件进行修改后所得到的第二文件的第二信息摘要值;其中,第一文件的第一信息摘要值、第一数字签名,以及对第一文件进行数字签名的签名者的公钥对应存储在区块链分布式账本中;
由于第一文件具有第一数字签名,因而第一文件是进行过数字签名的文件。另外,由于第一文件的第一信息摘要值、第一数字签名,以及对第一文件进行数字签名的签名者的公钥是对应存储在区块链分布式账本中的。并且,由于区块链分布式账本是集体维护的分布式数据库,具有去中心化和信息不可篡改性等特点。因而,存储在该区块链分布式账本中的第一数字签名和对应存储的公钥是不可篡改的,此时存储至区块链分布式账本中的第一数字签名即为签名者的数字签名,从而可以保证该第一数字签名的有效性。
当用户对第一文件进行修改之后得到第二文件。此时,可以利用预设的信息摘要算法来计算第二文件的第二信息摘要值。其中,该预设的信息摘要算法包括但并不局限于:CRC(Cyclic Redundancy Check,循环冗余校验)算法、SHA(Secure Hash Algorithm,安全散列算法)算法、RIPEMD(RACE Integrity Primitives Evaluation Message Digest,RACE原始完整性校验消息摘要)算法、MD4(Message-Digest Algorithm 4,信息摘要算法版本4)算法,以及MD5(Message-Digest Algorithm 5,信息摘要算法版本5)算法。
其中,计算第一信息摘要值所采用的信息摘要算法,可以与计算第二信息摘要值所采用的信息摘要算法相同,也可以不相同,这都是合理的。
另外,计算第一文件的第一信息摘要值具体可以是指:对第一文件的文件内容进行信息摘要计算。计算第二文件的第二信息摘要值具体可以是指:对第二文件的文件内容进行信息摘要计算。
S102:利用用户的私钥对第二信息摘要值进行加密计算,得到用户对第二文件的第二数字签名;
举例而言,当计算得到的第二信息摘要值为MD5值时,可以利用该用户(即修改者)的私钥对该MD5值进行加密计算,从而可以得到该用户对该第二文件的第二数字签名。
其中,可以从区块链私钥存储软件中,加载该用户的私钥加密文件。然后,利用该用户输入的私钥解密密钥对私钥加密文件进行解密,得到私钥。其中,该种加载私钥加密文件的方式,可以避免直接加载签名者的私钥,从而可以避免私钥泄露,提高私钥的安全性。当然,也可以从区块链私钥存储软件中加载该用户的私钥,这都是合理的。
该区块链私钥存储软件包括但并不局限于数字钱包。数字钱包是一种能使用户在网上支付货款的软件,在此不对数字钱包进行详细描述。
S103:利用公钥对第二数字签名进行解密;
S104:若解密成功,确定用户与签名者为同一用户,并将第二信息摘要值、第二数字签名、公钥和第一信息摘要值对应存储至区块链分布式账本中;
在计算得到第二数字签名之后,可以利用对第一文件进行数字签名的签名者的公钥对第二数字签名进行解密。这样,当利用该公钥对第二数字签名解密成功时,则可以确定该用户的私钥与第一文件的签名者的私钥相同。此时,可以确定该用户与签名者为同一用户。在该种情况下,该用户具有对第一文件修改得到的第二文件进行继续签名的权限。
反之,当利用该签名者的公钥对第二数字签名解密未成功时,则可以确定该用户的私钥与第一文件的签名者的私钥不相同。此时,可以确定该用户与签名者为不同用户。在该种情况下,该用户不具有对第一文件修改得到的第二文件进行继续签名的权限。
其中,当该用户具有对第二文件进行继续签名的权限时,可以将第二文件的第二信息摘要值、第二数字签名、该用户的公钥(即该签名者的公钥)和第一文件的第一信息摘要值对应存储至区块链分布式账本中。
具体地,可以利用第二信息摘要值、第二数字签名、该用户的公钥和第一信息摘要值构建一个区块链发布块,实现第二信息摘要值、第二数字签名、公钥和第一信息摘要值的对应存储。
然后,调用区块链SDK(Software Development Kit,软件开发工具包)将该发布块存储至区块链分布式账本中,从而实现该发布块的全网发布。其中,该区块链SDK为任意可以将发布块存储至区块链分布式账本中的软件,在此不做详述。
其中,将第二信息摘要值、第二数字签名和公钥对应存储至区块链分布式账本中,可以便于后续利用该第二信息摘要值和公钥对该第二数字签名进行验证。
由于区块链分布式账本是集体维护的分布式数据库,具有去中心化和信息不可篡改性等特点。因而,使得存储至该区块链分布式账本中的第二数字签名是不可篡改的,从而可以保证该第二数字签名的有效性。进而,可以避免将信息泄露给恶意用户的情况发生,保证了数据的安全性。
对于背景技术所举的示例而言,现有技术中在使用数字签名过程中,常需要依赖数字证书来证明李四得到的公钥确实为张三的公钥,从而在一定程度上来确保张三的数字签名的有效性。其中,数字证书是证书授权中心机构进行数字签名的、包含公钥拥有者信息以及公钥的文件,该数字证书可以用于证明:公钥拥有者合法拥有该证书中列出的公钥。
但是,证书授权中心机构是中心化机构,该机构很可能会遭受到黑客的攻击。当该机构遭到攻击时,该机构所颁发的数字证书很可能是被黑客篡改的证书。并且,当该机构所颁发的张三的数字证书被黑客篡改时,此时无法确保张三的数字签名的有效性,使数据的安全受到威胁。
而在本发明实施例中,由于存储在该区块链分布式账本中的数字签名以及对应存储的公钥是不可篡改的,因而能够确保存储至区块链分布式账本中的该数字签名即为该公钥所对应的签名者的数字签名,从而可以保证该数字签名的有效性。
另外,还可以通过对应存储在区块链账本中的第二信息摘要值、第二数字签名、该用户的公钥和第一信息摘要值,来追溯该第二文件在历史上经历了几次修改,以及修改所对应的修改时间。
具体地,假设第一文件为初始文件,用户A对第一文件进行数字签名后,得到第一数字签名。并假设将第一文件的第一信息摘要值、第一数字签名和用户A的公钥对应存储至区块链分布式账本中。而且,在存储过程中,获得一个第一时间戳。
此外,假设用户A对第一文件进行修改之后,得到第二文件。并对第二文件进行数字签名,得到第二数字签名,并将第二文件的第二信息摘要值、第二数字签名、用户A的公钥和第一文件的第一信息摘要值对应存储至区块链分布式账本中。在存储过程中,获得一个第二时间戳。
在该种情况下,可以利用与第二数字签名对应存储的第一信息摘要值,对区块链分布式账本进行查找。从而,可以查找到第一文件所对应的第一数字签名和第一时间戳。进而,可以确定该第二文件为版本2文件,第一文件为版本1文件。从而,可以确定该第二文件是在历史上经历了1次修改所得到的文件,并可以确定修改时间为第二时间戳所对应的时间。
示例性地,还可以假设用户A对第二文件进行修改之后,得到第三文件。并对第三文件进行数字签名,得到第三数字签名。并将第三文件的第三信息摘要值、第三数字签名、用户A的公钥和第二文件的第二信息摘要值对应存储至区块链分布式账本中。在存储过程中,获得一个第三时间戳。
在该种情况下,可以利用与第三数字签名对应存储的第二信息摘要值,对区块链分布式账本进行查找。从而,可以查找到第二文件所对应的第二数字签名和第二时间戳。另外,还可以利用与第二数字签名对应存储的第一信息摘要值,对区块链分布式账本进行查找,从而可以查找到第一文件所对应的第一数字签名和第一时间戳。进而,可以确定该第三文件为版本3文件、第二文件为版本2文件,第一文件为版本1文件。从而,可以确定该第三文件是在历史上经历了2次修改所得到的文件,并可以确定第一次修改时间为第二时间戳所对应的时间,第二次修改时间为第三时间戳所对应的时间。
S105:在第二文件中写入第二签名标记,第二签名标记用于标记已对第二文件进行数字签名。
为了便于后续能够确定该第二文件是经过了第二数字签名的文件,从而避免重复对该第二文件进行数字签名,并便于对该第二文件的数字签名进行验证,还可以在第二文件中写入第二签名标记。
其中,该签名标记可以是由本领域技术人员根据具体需求而设定的标记。为了清晰说明,后续对该第二签名标记进行详细说明。
在本发明实施例中,在用户对第一文件的文件内容进行修改后,可以计算对第一文件进行修改后所得的第二文件第二信息摘要值。其中,第一文件的第一信息摘要值、第一数字签名和对该第一文件进行数字签名的签名者的公钥是对应存储在区块链分布式账本中的。在计算得到第二信息摘要值后,可以利用该用户的私钥对第二信息摘要值进行加密计算,得到用户对该第二文件的第二数字签名。然后,利用该签名者的公钥对第二数字签名进行解密。当解密成功时,则可以确定该用户与该签名者为同一用户。此时,可以将第二信息摘要值、第二数字签名、该签名者的公钥和第一信息摘要值对应存储至区块链分布式账本中,使得对第一文件进行数字签名的用户可以对修改得到的第二文件进行再次签名。
由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,该种数字签名方式,可以避免现有技术中将数字签名写在文件尾部所造成的数字签名容易被篡改的情况发生,确保了第一数字签名和第二数字签名的有效性,从而可以保证数据的安全。
另外,将该第二信息摘要值、第二数字签名、该用户的公钥和第一信息摘要值对应存储至区块链分布式账本中,可以便于后续利用该第二信息摘要值和公钥对该第二数字签名进行验证。而且,在将第二信息摘要值、第二数字签名、该用户的公钥和第一信息摘要值对应存储至区块链分布式账本中之后,还可以在第二文件中写入第二签名标记。这样,可以记录该第二文件是已经进行了数字签名的文件,便于后续对该第二文件的第二数字签名进行验证,或者,便于后续追溯该第二文件在历史上被修改的次数和修改时间。
下面以第一文件为PDF文件为示例,对本发明实施例提供的文件签名方法进行说明。
假设电子设备中安装有PDF客户端,当该PDF客户端接收到针对第一文件的打开指令时,可以计算该第一文件的当前信息摘要值作为目标信息摘要值。其中,该当前信息摘要值为:该PDF客户端收到针对第一文件的打开指令时,对此时的第一文件进行信息摘要计算所得到的信息摘要值。
其中,该第一文件为进行过第一数字签名的文件。而且,该第一文件的第一信息摘要值、第一数字签名,以及对所述第一文件进行数字签名的签名者(假设为用户A)的公钥对应存储在区块链分布式账本中。其中,该第一文件的第一信息摘要值为:对第一文件进行数字签名并得到第一数字签名时,该第一文件的信息摘要值。
在计算得到该第一文件的目标信息摘要值后,还可以基于该目标信息摘要值来确定第一文件的文件内容是否被篡改。当确定该第一文件的文件内容未被篡改时,则打开该第一文件。若确定该第一文件的文件内容被篡改时,可以向用户提示该第一文件已被修改,并询问用户是否继续打开该第一文件;当接收到用户发出的、继续打开该第一文件的指令后,打开该第一文件。
具体地,可以判断该区块链分布式账本中是否存在与该目标信息摘要值相匹配的摘要信息值。若不存在,表明第一文件的文件内容发生了变化,从而导致目标信息摘要值与第一信息摘要值不匹配。此时,可以确定第一文件的文件内容被篡改。
另外,当第一文件中写入有携带该用户A的公钥的第一签名标记,并判断区块链分布式账本中存在与该目标信息摘要值相匹配的摘要信息值时,还可以判断该区块链分布式账本中与目标信息摘要值对应存储的公钥是否与第一签名标记中的公钥相匹配。若不匹配,表明与目标信息摘要值对应存储的公钥不是用户A的公钥。由于当第一文件的文件内容未被篡改时,可以查找到与目标信息摘要值对应存储的公钥,且所查找到的公钥与用户A的公钥相匹配。因而,此时也可以确定该第一文件的文件内容被篡改。
其中,当区块链分布式账本中存在与该目标信息摘要值相匹配的摘要信息值、用户A的公钥与该摘要信息值对应存储的公钥相匹配,并且,利用该公钥解密对应存储的第一数字签名得到的信息摘要值与目标信息摘要值相匹配时,则确定该第一文件的文件内容未被篡改。
假设该PDF客户端确定该第一文件的文件内容未被篡改,并打开该第一文件。在打开该第一文件后,用户A对该第一文件的文件内容进行修改,得到第二文件。该PDF客户端计算第二文件的第二信息摘要值。然后,获得用户A的私钥,并利用用户A的私钥对第二信息摘要值进行加密计算,得到用户A对第二文件的第二数字签名。然后,利用用户A的公钥对该第二数字签名进行解密,此时,可以利用用户A的公钥对第二数字签名进行成功解密。
另外,假设该PDF客户端确定该第一文件的文件内容未被篡改,并打开该第一文件。在打开该第一文件后,用户B对该第一文件的文件内容进行修改,得到第二文件。该PDF客户端计算第二文件的第二信息摘要值。然后,获得用户B的私钥,并利用用户B的私钥对第二信息摘要值进行加密计算,得到用户B对第二文件的第二数字签名。然后,利用用户A的公钥对该第二数字签名进行解密。此时,由于用户A的公钥只能解密用户A的私钥所加密的数据,因而用户A的公钥无法对第二数字签名进行解密。
其中,当利用用户A的公钥对第二数字签名进行成功解密时,可以确定此时对第一文件进行修改的修改者与对第一文件进行数字签名的签名者为同一用户(即用户A)。在该种情况下,用户A具有对第一文件修改得到的第二文件进行继续签名的权限。
此时,可以将第二文件的第二信息摘要值、第二数字签名、用户A的公钥(即该签名者的公钥)和第一文件的第一信息摘要值对应存储至区块链分布式账本中。这样,使得存储至该区块链分布式账本中的第二数字签名是不可篡改的,从而可以保证该第二数字签名的有效性。
其中,为了能够更准确地追溯该第二文件在历史上经历了几次修改,以及修改所对应的修改时间。还可以将第二信息摘要值、第二数字签名、用户A的公钥、第一信息摘要值和第一数字签名对应存储至区块链分布式账本中。从而,可以利用第一信息摘要值和第一数字签名来追溯对第一文件进行数字签名(或修改)的时间。
相应地,若第一文件为用户A对初始文件进行第一次修改后所得到的文件时,那么,还可以将该第一文件的第一信息摘要值、第一数字签名、用户A的公钥、初始文件的初始信息摘要值,以及利用用户A的私钥对初始信息摘要值进行加密计算得到的初始签名对应存储在区块链分布式账本中。从而,可以利用初始信息摘要值和初始签名来追溯对初始文件进行数字签名(或修改)的时间。
另外,在将第二信息摘要值、第二数字签名、用户A的公钥和第一信息摘要值对应存储至区块链分布式账本中之后,为了后续便于对第二文件的第二数字签名进行验证,还可以给该第二文件标记一个第二签名标记,以标记该第二文件已经完成了数字签名。
这样,在完成对该第二文件的第二数字签名之后,该PDF客户端还可以通过该第二文件中记录的第二签名标记,识别该第二文件是经过数字签名的文件。
另外,在后续使用第二文件的过程中,还可以基于该第二数字签名来验证该第二文件的文件内容是否被篡改。其中,为了验证该第二文件的文件内容是否被篡改,该PDF客户端还可以计算该第二文件当前的信息摘要值(例如MD5值)。然后,查找区块链分布式账本中的、与当前的MD5值匹配的MD5值。当在该区块链分布式账本中查找不到与当前的MD5值匹配的MD5值时,则表明该第二文件的文件内容被篡改。
当在该区块链分布式账本中能够查找到与当前的MD5值匹配的MD5值时,该PDF客户端还可以获取区块链分布式账本中与该MD5值对应存储的公钥和数字签名。然后,利用获取得到的公钥对该数字签名进行解密,并利用解密得到的MD5值与当前的MD5值进行匹配。若匹配不成功,则表明该数字签名很可能是恶意用户伪造的数字签名,该种情况下可以确定第二文件的文件内容被篡改。此时,为了保证用户A的数字签名的有效性,可以重新对该第二文件进行数字签名,即生成新的第二数字签名。若匹配成功,则表明该第二文件的文件内容未被篡改。
其中,为了更有效地对第二数字签名进行验证,第二签名标记中可以包括第二信息摘要值、签名者的公钥、第二数字签名的签名时间和签名者的身份标识中的至少一项。当第二签名标记中包括第二信息摘要值时,在对第二数字签名进行验证的过程中,可以先计算第二文件当前的MD5值,然后利用该MD5值与第二签名标记中的第二信息摘要值进行匹配。若匹配不成功,则表明该第二文件的文件内容被篡改。若匹配成功,则查找区块链分布式账本中是否存在该当前的MD5值,并根据查找结果执行相应的操作。
当第二签名标记中还包括:公钥、第二数字签名的签名时间和用户A的身份标识中的至少一项。这样,还可以先根据该第二签名标记中所记录的信息来验证该第二文件的文件内容是否被篡改。
其中,当签名标记中携带有用户A的身份标识时,在数字签名验证过程中,可以先向用户展示用户A的身份标识。当用户对这个身份标识进行确认之后,即在用户确认是用户A的数字签名后,PDF客户端可以利用计算得到的该当前的MD5值与签名标记中携带的第二信息摘要值进行匹配。反之,当用户对该身份标识进行否认时,则确定该第二文件被篡改。
当该签名标记中还携带第二数字签名的签名时间时,而且,在该区块链分布式账本中能查找到与当前的MD5值匹配的MD5值时,还可以确定该查找到的MD5值所对应的存储时间戳。并判断该存储时间戳与第二数字签名的签名时间的时间间隔是否小于预设阈值。若大于等于预设阈值,则确定第二文件被篡改。其中,该预设阈值可以由本领域技术人员根据实际情况进行设定,在此不做限定。
反之,若小于预设阈值,则可以确定第二文件未被篡改。其中,当该第二签名标记中还携带有该公钥时,还可以判断区块链分布式账本中与第二信息摘要值对应存储的公钥是否与该签名标记中携带的公钥匹配。若不匹配,则确定该第二文件被篡改。
若匹配,则利用该公钥对区块链分布式账本中与第二信息摘要值对应存储的第二数字签名进行解密。若解密失败,则表明该对应存储的第二数字签名很可能是伪造的,此时确定第二文件被篡改。若解密成功,判断解密得到的信息摘要值是否与第二信息摘要值相同。若相同,确定第二文件未被篡改。若不相同,则表明该第二数字签名很可能是恶意用户伪造的数字签名。此时,为了保证第二数字签名的有效性,可以重新对利用上述数字签名方式对第二文件进行签名,从而得到新的第二数字签名。
其中,为了第二签名标记中所携带的内容不被恶意用户篡改,还可以利用用户A的私钥对该第二签名标记中所携带的内容进行数字签名,这是合理的。
综上,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,应用本发明实施例提供的文件签名方法,可以将数字签名存储至区块链分布式账本中,从而可以确保数字签名不被篡改,提高了数据的安全性。而且,使得对第一文件进行数字签名的用户可以对修改得到的第二文件进行再次签名,保证了该用户对第二文件进行数字签名的权益。
相应于上述方法实施例,本发明实施例还提供了一种文件签名装置,参见图2,该装置可以包括:
第一计算模块201,用于在用户对第一文件的文件内容进行修改后,计算对第一文件进行修改后所得到的第二文件的第二信息摘要值;其中,第一文件的第一信息摘要值、第一数字签名,以及对第一文件进行数字签名的签名者的公钥对应存储在区块链分布式账本中;
第二计算模块202,用于利用用户的私钥对第二信息摘要值进行加密计算,得到用户对第二文件的第二数字签名;
解密模块203,用于利用公钥对第二数字签名进行解密;
存储模块204,用于当用公钥对第二数字签名解密成功时,确定用户与签名者为同一用户,并将第二信息摘要值、第二数字签名、公钥和第一信息摘要值对应存储至区块链分布式账本中;
标记模块205,用于在第二文件中写入第二签名标记,第二签名标记用于标记已对第二文件进行数字签名。
应用本发明实施例提供的装置,在用户对第一文件的文件内容进行修改后,可以计算对第一文件进行修改后所得的第二文件第二信息摘要值。其中,第一文件的第一信息摘要值、第一数字签名和对该第一文件进行数字签名的签名者的公钥是对应存储在区块链分布式账本中的。在计算得到第二信息摘要值后,可以利用该用户的私钥对第二信息摘要值进行加密计算,得到用户对该第二文件的第二数字签名。然后,利用该签名者的公钥对第二数字签名进行解密。当解密成功时,则可以确定该用户与该签名者为同一用户。此时,可以将第二信息摘要值、第二数字签名、该签名者的公钥和第一信息摘要值对应存储至区块链分布式账本中,使得对第一文件进行数字签名的用户可以对修改得到的第二文件进行再次签名。
由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,该种数字签名方式,可以避免现有技术中将数字签名写在文件尾部所造成的数字签名容易被篡改的情况发生,确保了第一数字签名和第二数字签名的有效性,从而可以保证数据的安全。
另外,将该第二信息摘要值、第二数字签名、该用户的公钥和第一信息摘要值对应存储至区块链分布式账本中,可以便于后续利用该第二信息摘要值和公钥对该第二数字签名进行验证。而且,在将第二信息摘要值、第二数字签名、该用户的公钥和第一信息摘要值对应存储至区块链分布式账本中之后,还可以在第二文件中写入第二签名标记。这样,可以记录该第二文件是已经进行了数字签名的文件,便于后续对该第二文件的第二数字签名进行验证,或者,便于后续追溯该第二文件在历史上被修改的次数和修改时间。
可选地,在本发明实施例中,该装置还可以包括:
第三计算模块,用于在计算对第一文件进行修改后所得到的第二文件的第二信息摘要值之前,在接收到针对第一文件的打开指令后,计算第一文件的当前信息摘要值作为目标信息摘要值;
第一确定模块,用于基于目标信息摘要值,确定第一文件的文件内容是否被篡改;
打开模块,用于当第一文件的文件内容未被篡改时,打开第一文件;
询问模块,用于当第一文件的文件内容被篡改时,询问用户是否继续打开第一文件,并在接收到用户继续打开第一文件的指令后,触发打开模块打开第一文件。
可选地,在本发明实施例中,该第一确定模块可以包括:
第一判断子模块,用于判断区块链分布式账本中是否存在与目标信息摘要值相匹配的摘要信息值;
确定子模块,用于当区块链分布式账本中不存在与目标信息摘要值相匹配的摘要信息值时,确定第一文件的文件内容被篡改。
可选地,在本发明实施例中,第一文件中写入有第一签名标记,第一签名标记中携带有签名者的公钥;该装置还可以包括:
判断模块,用于当区块链分布式账本中存在与目标信息摘要值相匹配的摘要信息值时,判断区块链分布式账本中与目标信息摘要值对应存储的公钥是否与第一签名标记中携带的公钥匹配;
触发模块,用于当区块链分布式账本中与目标信息摘要值对应存储的公钥与第一签名标记中携带的公钥不匹配时,触发确定子模块执行确定第一文件的文件内容被篡改的操作。
可选地,在本发明实施例中,存储模块204具体可以用于:
将第二信息摘要值、第二数字签名、公钥、第一信息摘要值和第一数字签名对应存储至区块链分布式账本中。
可选地,第二签名标记中携带有第二信息摘要值、签名者的公钥、第二数字签名的签名时间和签名者的身份标识中的至少一项。
相应于上述方法实施例,本发明实施例还提供了一种电子设备,参见图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 SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、可读存储介质和包含指令的计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种文件签名方法,其特征在于,所述方法包括:
在用户对已进行数字签名的第一文件的文件内容进行修改后,计算对所述第一文件进行修改后所得到的第二文件的第二信息摘要值;其中,所述第一文件的第一信息摘要值、第一数字签名,以及对所述第一文件进行数字签名的签名者的公钥对应存储在区块链分布式账本中;
利用所述用户的私钥对所述第二信息摘要值进行加密计算,得到所述用户对所述第二文件的第二数字签名;
利用所述公钥对所述第二数字签名进行解密;
若解密成功,确定所述用户与所述签名者为同一用户,并将所述第二信息摘要值、所述第二数字签名、所述公钥和所述第一信息摘要值对应存储至区块链分布式账本中;
在所述第二文件中写入第二签名标记,所述第二签名标记用于标记已对所述第二文件进行数字签名。
2.根据权利要求1所述的方法,其特征在于,在所述在用户对已进行数字签名的第一文件的文件内容进行修改后,计算对所述第一文件进行修改后所得到的第二文件的第二信息摘要值的步骤之前,还包括:
在接收到针对所述第一文件的打开指令后,计算所述第一文件的当前信息摘要值作为目标信息摘要值;
基于所述目标信息摘要值,确定所述第一文件的文件内容是否被篡改;
若未被篡改,打开所述第一文件;
若被篡改,询问用户是否继续打开所述第一文件,并在接收到用户继续打开所述第一文件的指令后,触发所述打开所述第一文件的步骤。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标信息摘要值,确定所述第一文件的文件内容是否被篡改的步骤,包括:
判断所述区块链分布式账本中是否存在与所述目标信息摘要值相匹配的摘要信息值;
若不存在,确定所述第一文件的文件内容被篡改。
4.根据权利要求3所述的方法,其特征在于,所述第一文件中写入有第一签名标记,所述第一签名标记中携带有所述签名者的公钥;所述方法还包括:
若存在,判断所述区块链分布式账本中与所述目标信息摘要值对应存储的公钥是否与所述第一签名标记中携带的公钥匹配;
若不匹配,触发所述确定所述第一文件的文件内容被篡改的步骤。
5.根据权利要求1所述的方法,其特征在于,所述将所述第二信息摘要值、所述第二数字签名、所述公钥和所述第一信息摘要值对应存储至区块链分布式账本中的步骤,包括:
将所述第二信息摘要值、所述第二数字签名、所述公钥、所述第一信息摘要值和所述第一数字签名对应存储至区块链分布式账本中。
6.根据权利要求1所述的方法,其特征在于,所述第二签名标记中携带有所述第二信息摘要值、所述签名者的公钥、所述第二数字签名的签名时间和所述签名者的身份标识中的至少一项。
7.一种文件签名装置,其特征在于,所述装置包括:
第一计算模块,用于在用户对已进行数字签名的第一文件的文件内容进行修改后,计算对所述第一文件进行修改后所得到的第二文件的第二信息摘要值;其中,所述第一文件的第一信息摘要值、第一数字签名,以及对所述第一文件进行数字签名的签名者的公钥对应存储在区块链分布式账本中;
第二计算模块,用于利用所述用户的私钥对所述第二信息摘要值进行加密计算,得到所述用户对所述第二文件的第二数字签名;
解密模块,用于利用所述公钥对所述第二数字签名进行解密;
存储模块,用于当用所述公钥对所述第二数字签名解密成功时,确定所述用户与所述签名者为同一用户,并将所述第二信息摘要值、所述第二数字签名、所述公钥和所述第一信息摘要值对应存储至区块链分布式账本中;
标记模块,用于在所述第二文件中写入第二签名标记,所述第二签名标记用于标记已对所述第二文件进行数字签名。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三计算模块,用于在计算对所述第一文件进行修改后所得到的第二文件的第二信息摘要值之前,在接收到针对所述第一文件的打开指令后,计算所述第一文件的当前信息摘要值作为目标信息摘要值;
第一确定模块,用于基于所述目标信息摘要值,确定所述第一文件的文件内容是否被篡改;
打开模块,用于当所述第一文件的文件内容未被篡改时,打开所述第一文件;
询问模块,用于当所述第一文件的文件内容被篡改时,询问用户是否继续打开所述第一文件,并在接收到用户继续打开所述第一文件的指令后,触发所述打开模块打开所述第一文件。
9.根据权利要求8所述的装置,其特征在于,所述第一确定模块包括:
第一判断子模块,用于判断所述区块链分布式账本中是否存在与所述目标信息摘要值相匹配的摘要信息值;
确定子模块,用于当所述区块链分布式账本中不存在与所述目标信息摘要值相匹配的摘要信息值时,确定所述第一文件的文件内容被篡改。
10.根据权利要求9所述的装置,其特征在于,所述第一文件中写入有第一签名标记,所述第一签名标记中携带有所述签名者的公钥;所述装置还包括:
判断模块,用于当所述区块链分布式账本中存在与所述目标信息摘要值相匹配的摘要信息值时,判断所述区块链分布式账本中与所述目标信息摘要值对应存储的公钥是否与所述第一签名标记中携带的公钥匹配;
触发模块,用于当所述区块链分布式账本中与所述目标信息摘要值对应存储的公钥与所述第一签名标记中携带的公钥不匹配时,触发所述确定子模块执行确定所述第一文件的文件内容被篡改的操作。
11.根据权利要求7所述的装置,其特征在于,所述存储模块具体用于:
将所述第二信息摘要值、所述第二数字签名、所述公钥、所述第一信息摘要值和所述第一数字签名对应存储至区块链分布式账本中。
12.根据权利要求7所述的装置,其特征在于,所述第二签名标记中携带有所述第二信息摘要值、所述签名者的公钥、所述第二数字签名的签名时间和所述签名者的身份标识中的至少一项。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6中任一所述的方法步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810922990.2A CN110830257B (zh) | 2018-08-14 | 2018-08-14 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810922990.2A CN110830257B (zh) | 2018-08-14 | 2018-08-14 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110830257A CN110830257A (zh) | 2020-02-21 |
CN110830257B true CN110830257B (zh) | 2023-01-03 |
Family
ID=69547233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810922990.2A Active CN110830257B (zh) | 2018-08-14 | 2018-08-14 | 一种文件签名方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110830257B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382561B (zh) * | 2020-03-13 | 2022-11-01 | 北大方正集团有限公司 | 文件校验方法、装置、设备及存储介质 |
CN112560064A (zh) * | 2020-12-23 | 2021-03-26 | Oppo广东移动通信有限公司 | 文件检测方法、装置、存储介质及用户终端 |
CN112769573B (zh) * | 2020-12-26 | 2022-08-05 | 西安电子科技大学 | 一种基于grs码的数字签名方法、验签方法及其装置 |
CN113342374B (zh) * | 2021-06-15 | 2022-12-13 | 东莞新能安科技有限公司 | 电池管理系统升级方法及电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631022A (zh) * | 2009-08-04 | 2010-01-20 | 北京飞天诚信科技有限公司 | 一种签名方法和系统 |
CN107864039A (zh) * | 2017-11-08 | 2018-03-30 | 深圳市金立通信设备有限公司 | 一种应用签名方法、终端以及计算机可读存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138378A1 (en) * | 2003-12-22 | 2005-06-23 | Makan Pourzandi | Method and computer system operated software application for digital signature |
US9858569B2 (en) * | 2014-03-21 | 2018-01-02 | Ramanan Navaratnam | Systems and methods in support of authentication of an item |
CN106022775A (zh) * | 2016-05-13 | 2016-10-12 | 邓迪 | 基于区块链的文件签名方法及系统 |
WO2018100227A1 (en) * | 2016-11-30 | 2018-06-07 | Nokia Technologies Oy | Electronic documents management |
CN106780033A (zh) * | 2016-12-16 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种基于联盟链的数字票据交易系统构建方法 |
CN107086920A (zh) * | 2017-06-20 | 2017-08-22 | 无锡井通网络科技有限公司 | 基于区块链的版权确权方法 |
CN107171794B (zh) * | 2017-06-27 | 2019-10-22 | 葛峰 | 一种基于区块链和智能合约的电子文书签署方法 |
CN107657553A (zh) * | 2017-09-21 | 2018-02-02 | 浙江惠码科技有限公司 | 一种基于联盟链的电子合同生成方法、溯源信息防伪方法 |
CN107832624A (zh) * | 2017-10-25 | 2018-03-23 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链的可视化签名系统和方法 |
CN107947939A (zh) * | 2017-11-21 | 2018-04-20 | 杭州尚尚签网络科技有限公司 | 支持sm3密码杂凑算法和sm2数字签名算法的pdf签名方法和系统 |
-
2018
- 2018-08-14 CN CN201810922990.2A patent/CN110830257B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631022A (zh) * | 2009-08-04 | 2010-01-20 | 北京飞天诚信科技有限公司 | 一种签名方法和系统 |
CN107864039A (zh) * | 2017-11-08 | 2018-03-30 | 深圳市金立通信设备有限公司 | 一种应用签名方法、终端以及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Data management and searching system and method to provide increased security for IoT platform;Moon Yong Jung等;《2017 International Conference on Information and Communication Technology Convergence (ICTC)》;20171214;全文 * |
基于区块链技术的去中心化数字出版平台研究;张岩等;《出版科学》;20171113;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110830257A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110830257B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN107342867B (zh) | 签名验签方法和装置 | |
CN110830256A (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
CN110826092A (zh) | 一种文件签名处理系统 | |
CN110826091B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN110826107B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN110958319B (zh) | 一种基于区块链的侵权存证管理方法及装置 | |
CN104283860A (zh) | 一种基于代码签名的elf文件鉴别方法和装置 | |
CN112507328A (zh) | 一种文件签名方法、计算设备及存储介质 | |
CN110008719B (zh) | 一种文件处理、文件检测方法及装置 | |
CN110909082A (zh) | 生成作品的区块链存证证书的方法及装置 | |
CN112651031A (zh) | 数字签名方法、数字验签方法、电子设备及存储介质 | |
CN113225324A (zh) | 区块链匿名账户创建方法、系统、设备及存储介质 | |
CN111479265B (zh) | 信息传播方法、装置、计算机设备和存储介质 | |
CN114238874A (zh) | 数字签章验证方法、装置、计算机设备和存储介质 | |
CN113343313A (zh) | 验证报告有效性鉴定方法、法律服务系统和可读存储介质 | |
CN110826034B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
EP3742367A1 (en) | Method for determining information integrity and computer system using the same | |
CN106888094B (zh) | 一种签名方法及服务器 | |
CN110602051B (zh) | 基于共识协议的信息处理方法及相关装置 | |
CN109756344B (zh) | 一种文档的数字签名及其验证方法和装置 | |
WO2020057389A1 (zh) | 一种签名验证方法、装置、电子设备及可读存储介质 | |
CN111062030A (zh) | 一种应用程序被篡改的识别方法及装置 | |
CN111079155A (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 |