首页 / 专利库 / 资料储存系统 / 分布式账本 / 一种文件签名方法、装置、电子设备及可读存储介质

一种文件签名方法、装置、电子设备及可读存储介质

阅读:511发布:2020-05-21

专利汇可以提供一种文件签名方法、装置、电子设备及可读存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种文件签名方法、装置、 电子 设备及可读存储介质。该方法包括:确定待进行数字签名的目标文件,并根据预设的信息 摘要 算法 计算目标文件的信息摘要值;获得要对目标文件进行数字签名的签名者的私钥和公钥;利用私钥对信息摘要值进行加密计算,得到签名者的数字签名;将签名者的数字签名、信息摘要值和公钥对应存储至 区 块 链 分布式账本 中;在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。这样,可以将数字签名存储至区块链分布式账本中,从而可以确保数字签名的有效性,提高了数据的安全性。,下面是一种文件签名方法、装置、电子设备及可读存储介质专利的具体信息内容。

1.一种文件签名方法,其特征在于,所述方法包括:
确定待进行数字签名的目标文件,并根据预设的信息摘要算法计算所述目标文件的信息摘要值;
获得要对所述目标文件进行数字签名的签名者的私钥和公钥;
利用所述私钥对所述信息摘要值进行加密计算,得到所述签名者的数字签名;
将所述签名者的数字签名、所述信息摘要值和所述公钥对应存储至分布式账本中;
在所述目标文件中写入签名标记,所述签名标记用于标记已对所述目标文件进行数字签名。
2.根据权利要求1所述的方法,其特征在于,所述获得要对所述目标文件进行数字签名的签名者的私钥和公钥的步骤,包括:
从区块链私钥公钥对存储软件中,加载要对所述目标文件进行数字签名的签名者的私钥加密文件和公钥;
利用用户输入的私钥解密密钥对所述私钥加密文件进行解密,得到所述公钥对应的私钥。
3.根据权利要求1所述的方法,其特征在于,所述获得要对所述目标文件进行数字签名的签名者的私钥和公钥的步骤,包括:
调用区块链私钥公钥对生成软件,生成要对所述目标文件进行数字签名的签名者的私钥和公钥。
4.根据权利要求3所述的方法,其特征在于,在所述调用区块链私钥公钥对生成软件,生成要对所述目标文件进行数字签名的签名者的私钥和公钥的步骤之后,所述方法还包括:
获得所述签名者的身份标识;
将所述身份标识和所述公钥对应存储至所述区块链分布式账本中。
5.根据权利要求1所述的方法,其特征在于,所述签名标记中包括所述信息摘要值。
6.根据权利要求5所述的方法,其特征在于,所述签名标记中还包括:
所述公钥、所述签名者的数字签名的签名时间和所述签名者的身份标识中的至少一项。
7.一种文件签名装置,其特征在于,所述装置包括:
确定模块,用于确定待进行数字签名的目标文件,并根据预设的信息摘要算法计算所述目标文件的信息摘要值;
第一获得模块,用于获得要对所述目标文件进行数字签名的签名者的私钥和公钥;
计算模块,用于利用所述私钥对所述信息摘要值进行加密计算,得到所述签名者的数字签名;
第一存储模块,用于将所述签名者的数字签名、所述信息摘要值和所述公钥对应存储至区块链分布式账本中;
标记模块,用于在所述目标文件中写入签名标记,所述签名标记用于标记已对所述目标文件进行数字签名。
8.根据权利要求7所述的装置,其特征在于,所述第一获得模块包括:
加载子模块,用于从区块链私钥公钥对存储软件中,加载要对所述目标文件进行数字签名的签名者的私钥加密文件和公钥;
解密子模块,用于利用用户输入的私钥解密密钥对所述私钥加密文件进行解密,得到所述公钥对应的私钥。
9.根据权利要求7所述的装置,其特征在于,所述第一获得模块包括:
调用子模块,用于调用区块链私钥公钥对生成软件,生成要对所述目标文件进行数字签名的签名者的私钥和公钥。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获得模块,用于在调用区块链私钥公钥对生成软件,生成要对所述目标文件进行数字签名的签名者的私钥和公钥之后,获得所述签名者的身份标识;
第二存储模块,用于将所述身份标识和所述公钥对应存储至所述区块链分布式账本中。
11.根据权利要求7所述的装置,其特征在于,所述签名标记中包括所述信息摘要值。
12.根据权利要求11所述的装置,其特征在于,所述签名标记中还包括:
所述公钥、所述签名者的数字签名的签名时间和所述签名者的身份标识中的至少一项。
13.一种电子设备,其特征在于,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6中任一所述的方法步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一所述的方法步骤。

说明书全文

一种文件签名方法、装置、电子设备及可读存储介质

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种文件签名方法、装置、电子设备及可读存储介质。

背景技术

[0002] 文件签名是指对文件进行数字签名。其中,数字签名是附加在文件中的一些数据,而且数字签名常常附加在文件尾部。这样,文件的接收者能够根据附加的数据来验证:该文件是否确实是签名者发送的,以及该文件的文件内容是否被篡改。
[0003] 例如,张三利用私钥对文件A进行数字签名。其中,签名后的文件A的尾部写入有该数字签名。然后,张三将签名后的文件A发送给李四。李四在接收到签名后的文件A后,可以利用张三的公钥解密该数字签名。若李四能够利用张三的公钥解密得到文件A的哈希值,则证明文件A确实是张三发送的。并且,可以对接收到的文件A进行哈希计算,并将计算得到的哈希值与解密得到的哈希值进行比对。若比对结果一致,则表明文件A未被篡改,若比对结果不一致,则表明文件A被篡改。
[0004] 但是,该种将数字签名附加在文件中的方式,使得数字签名容易被恶意用户篡改,无法保证数字签名的有效性,从而使用户数据的安全受到威胁。

发明内容

[0005] 本发明实施例的目的在于提供一种新的文件签名方法、装置、电子设备及可读存储介质,以可以确保数字签名的有效性,提高数据的安全性。技术方案如下:
[0006] 第一方面,本发明实施例提供了一种文件签名方法,该方法可以包括:
[0007] 确定待进行数字签名的目标文件,并根据预设的信息摘要算法计算目标文件的信息摘要值;
[0008] 获得要对目标文件进行数字签名的签名者的私钥和公钥;
[0009] 利用私钥对信息摘要值进行加密计算,得到签名者的数字签名;
[0010] 将签名者的数字签名、信息摘要值和公钥对应存储至分布式账本中;
[0011] 在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
[0012] 可选地,在一种实现方式中,获得要对目标文件进行数字签名的签名者的私钥和公钥的步骤,可以包括:
[0013] 从区块链私钥公钥对存储软件中,加载要对目标文件进行数字签名的签名者的私钥加密文件和公钥;
[0014] 利用用户输入的私钥解密密钥对私钥加密文件进行解密,得到公钥对应的私钥。
[0015] 可选地,在另一种实现方式中,获得要对目标文件进行数字签名的签名者的私钥和公钥的步骤,可以包括:
[0016] 调用区块链私钥公钥对生成软件,生成要对目标文件进行数字签名的签名者的私钥和公钥。
[0017] 可选地,在调用区块链私钥公钥对生成软件,生成要对目标文件进行数字签名的签名者的私钥和公钥的步骤之后,该方法还可以包括:
[0018] 获得签名者的身份标识;
[0019] 将身份标识和公钥对应存储至区块链分布式账本中。
[0020] 可选地,签名标记中可以包括信息摘要值。
[0021] 可选地,签名标记中还可以包括:
[0022] 公钥、签名者的数字签名的签名时间和签名者的身份标识中的至少一项。
[0023] 第二方面,本发明实施例还提供了一种文件签名装置,该装置可以包括:
[0024] 确定模块,用于确定待进行数字签名的目标文件,并根据预设的信息摘要算法计算目标文件的信息摘要值;
[0025] 第一获得模块,用于获得要对目标文件进行数字签名的签名者的私钥和公钥;
[0026] 计算模块,用于利用私钥对信息摘要值进行加密计算,得到签名者的数字签名;
[0027] 第一存储模块,用于将签名者的数字签名、信息摘要值和公钥对应存储至区块链分布式账本中;
[0028] 标记模块,用于在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
[0029] 可选地,在一种实现方式中,第一获得模块可以包括:
[0030] 加载子模块,用于从区块链私钥公钥对存储软件中,加载要对目标文件进行数字签名的签名者的私钥加密文件和公钥;
[0031] 解密子模块,用于利用用户输入的私钥解密密钥对私钥加密文件进行解密,得到公钥对应的私钥。
[0032] 可选地,在另一种实现方式中,第一获得模块可以包括:
[0033] 调用子模块,用于调用区块链私钥公钥对生成软件,生成要对目标文件进行数字签名的签名者的私钥和公钥。
[0034] 可选地,在本发明实施例中,该装置还可以包括:
[0035] 第二获得模块,用于在调用区块链私钥公钥对生成软件,生成要对目标文件进行数字签名的签名者的私钥和公钥之后,获得签名者的身份标识;
[0036] 第二存储模块,用于将身份标识和公钥对应存储至区块链分布式账本中。
[0037] 可选地,签名标记中可以包括信息摘要值。
[0038] 可选地,签名标记中还可以包括:
[0039] 公钥、签名者的数字签名的签名时间和签名者的身份标识中的至少一项。
[0040] 第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0041] 存储器,用于存放计算机程序
[0042] 处理器,用于执行存储器上所存放的程序时,实现本发明实施例提供的任一项文件签名方法的方法步骤。
[0043] 第四方面,本发明实施例还提供了一种可读存储介质,可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现:本发明实施例提供的任一项文件签名方法的方法步骤。
[0044] 第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行:本发明实施例提供的任一项文件签名方法的方法步骤。
[0045] 在本发明实施例中,可以确定待进行数字签名的目标文件,并可以根据预设的信息摘要算法计算得到该目标文件的信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。之后,利用该私钥对信息摘要值进行加密计算,得到该签名者的数字签名。在得到数字签名后,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。其中,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0046] 在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。附图说明
[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1为本发明实施例所提供的一种文件签名方法的流程图
[0049] 图2为本发明实施例所提供的一种文件签名装置的结构示意图;
[0050] 图3为本发明实施例所提供的一种电子设备的结构示意图。

具体实施方式

[0051] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052] 为了解决现有技术中存在的技术问题,本发明实施例提供了一种文件签名方法、装置、电子设备及可读存储介质。
[0053] 下面首先对本发明实施例提供的文件签名方法进行说明。
[0054] 其中,本发明实施例提供的文件签名方法可以应用于文档阅读客户端。该文档阅读客户端包括但并不局限于:WPS(WPS software,WPS软件)客户端、PPT(PowerPoint,演示文稿)客户端和PDF(Portable Document Format,便携式文档格式)客户端。
[0055] 相应地,本发明实施例中的目标文件包括但并不局限于:WPS文件、PPT文件和PDF文件,当然并不局限于此。
[0056] 参见图1,该文件签名方法可以包括如下步骤:
[0057] S101:确定待进行数字签名的目标文件,并根据预设的信息摘要算法计算目标文件的信息摘要值;
[0058] 预设的信息摘要算法包括但并不局限于: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)算法。
[0059] 其中,计算目标文件的信息摘要值具体可以是指:计算目标文件的文件内容的信息摘要值。
[0060] S102:获得要对目标文件进行数字签名的签名者的私钥和公钥;
[0061] 其中,当要对目标文件进行数字签名的签名者已经有私钥公钥对时,可以直接从区块链私钥公钥对存储软件中,加载该签名者的私钥加密文件和公钥。
[0062] 然后,利用用户输入的私钥解密密钥对私钥加密文件进行解密,得到公钥对应的私钥。其中,该种加载私钥加密文件的方式,可以避免直接加载签名者的私钥,从而可以避免私钥泄露,提高私钥的安全性。
[0063] 该区块链私钥公钥对存储软件包括但并不局限于数字钱包。其中,数字钱包为现有概念,在此不对数字钱包进行详细描述。
[0064] 当要对目标文件进行数字签名的签名者还没有私钥公钥对时,可以调用区块链私钥公钥对生成软件,生成该签名者的私钥和公钥。
[0065] 其中,区块链私钥公钥对生成软件可以为包括:任意可以生成区块链私钥公钥对的软件。
[0066] S103:利用私钥对信息摘要值进行加密计算,得到签名者的数字签名;
[0067] 举例而言,当信息摘要值为MD5值时,可以利用私钥对该MD5值进行加密计算,从而可以得到该签名者的数字签名。
[0068] S104:将签名者的数字签名、信息摘要值和公钥对应存储至区块链分布式账本中;
[0069] 具体地,可以利用该签名者的数字签名、该目标文件的信息摘要值和该签名者的公钥构建一个区块链发布块,实现数字签名、信息摘要值和公钥的对应存储。然后,调用区块链SDK(Software Development Kit,软件开发工具包)将该发布块存储至区块链分布式账本中,从而实现该发布块的全网发布。其中,该区块链SDK为任意可以将发布块存储至区块链分布式账本中的软件,在此不做详述。
[0070] 由于区块链分布式账本是集体维护的分布式数据库,具有去中心化和信息不可篡改性等特点。因而,使得存储至该区块链分布式账本中的数字签名是不可篡改的,保证了该数字签名的有效性。进而,可以避免将信息泄露给恶意用户的情况发生,保证了数据的安全性。
[0071] 对于背景技术所举的示例而言,现有技术中在使用数字签名过程中,常需要依赖数字证书来证明李四得到的公钥确实为张三的公钥,从而在一定程度上来确保张三的数字签名的有效性。其中,数字证书是证书授权中心机构进行数字签名的、包含公钥拥有者信息以及公钥的文件,该数字证书可以用于证明:公钥拥有者合法拥有该证书中列出的公钥。
[0072] 但是,证书授权中心机构是中心化机构,该机构很可能会遭受到黑客的攻击。当该机构遭到攻击时,该机构所颁发的数字证书很可能是被黑客篡改的证书。并且,当该机构所颁发的张三的数字证书被黑客篡改时,此时无法确保张三的数字签名的有效性,使数据的安全受到威胁。
[0073] 而在本发明实施例中,由于存储在该区块链分布式账本中的数字签名以及对应存储的公钥是不可篡改的,因而能够确保存储至区块链分布式账本中的该数字签名即为该公钥所对应的签名者的数字签名,从而可以保证该数字签名的有效性。
[0074] 另外,在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中后,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0075] S105:在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
[0076] 为了便于后续能够确定该目标文件是经过了数字签名的文件,从而避免重复对该目标文件进行数字签名,并便于对该目标文件的数字签名进行验证,还可以在目标文件中写入签名标记。
[0077] 其中,该签名标记可以是由本领域技术人员根据具体需求而设定的标记。为了清晰说明,后续对签名标记进行详细说明。
[0078] 在本发明实施例中,可以确定待进行数字签名的目标文件,并可以根据预设的信息摘要算法计算得到该目标文件的信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。之后,利用该私钥对信息摘要值进行加密计算,得到该签名者的数字签名。在得到数字签名后,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。其中,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0079] 在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
[0080] 下面以PDF文件为示例,对本发明实施例提供的文件签名方法进行详细说明。
[0081] 假设电子设备中安装有PDF客户端,并且通过该PDF客户端打开有目标PDF文件。当用户A想要对该目标PDF文件进行数字签名时,该PDF客户端可以根据MD5算法来计算该目标PDF文件的文件内容的MD5值。
[0082] 该PDF客户端还可以获得用户A的私钥和公钥。具体地,该PDF客户端可以询问用户A是否存在区块链公钥和私钥。若用户A存在区块链公钥和私钥,则从用户A用于存储公钥和私钥的区块链私钥公钥对存储软件中加载该用户A的私钥和公钥。其中,为了保证私钥的安全,可以加载私钥加密文件,然后根据用户A输入的私钥解密秘钥解密得到私钥。
[0083] 若用户A不存在区块链公钥和私钥,则可以调用区块链私钥公钥对生成软件来生成用户A的私钥和公钥。然后,PDF客户端可以利用所生成的私钥对MD5值进行数字签名。
[0084] 其中,在生成用户A的私钥和公钥之后,还可以获得用户A的身份标识。然后,将用户A的身份标识和用户A的公钥对应存储至区块链分布式账本中。这样,使得区块链分布式账本中可以记录有:用户A的身份标识和用户A的公钥的对应关系。也就是说,此时全网可以证明:用户A合法拥有该公钥,避免了用户A的公钥被冒充。
[0085] 该PDF客户端在获得用户A的私钥后,可以利用所获得的私钥对该MD5值进行加密计算,从而得到针对该目标PDF文件的数字签名。进而,将该数字签名、MD5值和公钥对应存储至区块链分布式账本中。这样,不需要将数字签名写在目标PDF文件的尾部。而且,将数字签名写在区块链分布式账本中的方式可以避免数字签名被篡改,确保了数字签名的有效性。
[0086] 其中,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。另外,为了便于后续对目标PDF文件的数字签名进行验证,还可以给该目标PDF文件标记一个签名标记,以标记该目标PDF文件已经完成了数字签名。
[0087] 这样,在完成对该目标PDF文件的数字签名之后,该PDF客户端还可以通过该目标PDF文件中记录的签名标记,识别该目标PDF文件是经过数字签名的文件。
[0088] 为了验证该目标PDF文件的文件内容是否被篡改,该PDF客户端还可以计算该目标PDF文件当前的MD5值。然后,调用区块链SDK查找区块链分布式账本中的、与当前的MD5值匹配的MD5值。当在该区块链分布式账本中查找不到与当前的MD5值匹配的MD5值时,则表明该目标PDF文件的文件内容被篡改。
[0089] 当在该区块链分布式账本中能够查找到与当前的MD5值匹配的MD5值时,该PDF客户端还可以获取区块链分布式账本中与该MD5值对应存储的公钥和数字签名。然后,利用获取得到的公钥对该数字签名进行解密,并利用解密得到的MD5值与当前的MD5值进行匹配。若匹配不成功,则表明该数字签名很可能是恶意用户伪造的数字签名。此时,为了保证用户A的数字签名的有效性,可以重新对该目标PDF文件进行数字签名。
[0090] 若匹配成功,则表明该目标PDF文件的文件内容未被篡改,且表明该目标PDF文件确实是用户A签名的。
[0091] 其中,为了更有效地对数字签名进行验证,签名标记中可以包括信息摘要MD5值。这样,在数字签名验证过程中,可以利用计算得到的当前的MD5值与该信息摘要值先进行匹配。若匹配不成功,则表明该目标PDF文件的文件内容被篡改。若匹配成功,则查找区块链分布式账本中是否存在该签名标记的中的MD5值,并根据查找结果执行相应的操作。
[0092] 另外,该签名标记中还可以包括:公钥、签名者的数字签名的签名时间和签名者的身份标识中的至少一项。这样,可以先根据该签名标记中所记录的信息来验证该目标PDF文件的文件内容是否被篡改。
[0093] 其中,当签名标记中携带有签名者的身份标识时,在数字签名验证过程中,可以先向用户展示签名者的身份标识。当用户对这个身份标识进行确认之后,即在用户确认是签名者的数字签名后,PDF客户端可以利用计算得到的该当前的MD5值与签名标记中携带的信息摘要值进行匹配,并根据匹配结果执行相应的操作。反之,当用户对该身份标识进行否认时,则确定该目标文件被篡改。
[0094] 当该签名标记中还携带数字签名的签名时间时,而且,在该区块链分布式账本中能查找到与当前的MD5值匹配的MD5值时,还可以确定该查找到的MD5值所对应的存储时间戳。并判断该存储时间戳与该数字签名的签名时间的时间间隔是否小于预设阈值。若大于等于预设阈值,则确定目标文件被篡改。其中,该预设阈值可以由本领域技术人员根据实际情况进行设定,在此不做限定。
[0095] 反之,若小于预设阈值,则可以确定目标文件未被篡改。其中,当该签名标记中还携带有该公钥时,还可以判断区块链分布式账本中与该信息摘要值对应存储的公钥是否与该签名标记中携带的公钥匹配。若不匹配,则确定该目标文件被篡改。
[0096] 若匹配,则利用该公钥对区块链分布式账本中与该信息摘要值对应存储的数字签名进行解密。若解密失败,则表明该对应存储的数字签名很可能是伪造的,此时确定该目标文件被篡改。若解密成功,判断解密得到的信息摘要值是否与该对应存储的信息摘要值相同。若相同,确定目标文件未被篡改。若不相同,则表明该数字签名很可能是恶意用户伪造的数字签名。此时,为了保证数字签名的有效性,可以重新对利用上述数字签名方式对目标文件进行签名,从而得到新的数字签名。
[0097] 其中,为了签名标记中所携带的内容不被恶意用户篡改,还可以利用用户A的私钥对该签名标记中所携带的内容进行数字签名,这是合理的。
[0098] 综上,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,应用本发明实施例提供的文件签名方法,可以将数字签名存储至区块链分布式账本中,从而可以确保数字签名不被篡改,提高了数据的安全性。
[0099] 相应于上述方法实施例,本发明实施例还提供了一种文件签名装置,参见图2,该装置可以包括:
[0100] 确定模块201,用于确定待进行数字签名的目标文件,并根据预设的信息摘要算法计算目标文件的信息摘要值;
[0101] 第一获得模块202,用于获得要对目标文件进行数字签名的签名者的私钥和公钥;
[0102] 计算模块203,用于利用私钥对信息摘要值进行加密计算,得到签名者的数字签名;
[0103] 第一存储模块204,用于将签名者的数字签名、信息摘要值和公钥对应存储至区块链分布式账本中;
[0104] 标记模块205,用于在目标文件中写入签名标记,签名标记用于标记已对目标文件进行数字签名。
[0105] 应用本发明实施例提供的装置,可以确定待进行数字签名的目标文件,并可以根据预设的信息摘要算法计算得到该目标文件的信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。之后,利用该私钥对信息摘要值进行加密计算,得到该签名者的数字签名。在得到数字签名后,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。其中,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0106] 在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
[0107] 可选地,在本发明的一个实施例中,第一获得模块202可以包括:
[0108] 加载子模块,用于从区块链私钥公钥对存储软件中,加载要对目标文件进行数字签名的签名者的私钥加密文件和公钥;
[0109] 解密子模块,用于利用用户输入的私钥解密密钥对私钥加密文件进行解密,得到公钥对应的私钥。
[0110] 可选地,在本发明的另一个实施例中,第一获得模块202可以包括:
[0111] 调用子模块,用于调用区块链私钥公钥对生成软件,生成要对目标文件进行数字签名的签名者的私钥和公钥。
[0112] 可选地,在本发明实施例中,该装置还可以包括:
[0113] 第二获得模块,用于在调用区块链私钥公钥对生成软件,生成要对目标文件进行数字签名的签名者的私钥和公钥之后,获得签名者的身份标识;
[0114] 第二存储模块,用于将身份标识和公钥对应存储至区块链分布式账本中。
[0115] 可选地,在本发明实施例中,签名标记中可以包括信息摘要值。
[0116] 可选地,在本发明实施例中,签名标记中还可以包括:公钥、签名者的数字签名的签名时间和签名者的身份标识中的至少一项。
[0117] 相应于上述方法实施例,本发明实施例还提供了一种电子设备,参见图3,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
[0118] 存储器303,用于存放计算机程序;
[0119] 处理器301,用于执行存储器303上所存放的程序时,实现上述任一项文件签名方法的方法步骤。
[0120] 在本发明实施例中,电子设备可以确定待进行数字签名的目标文件,并可以根据预设的信息摘要算法计算得到该目标文件的信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。之后,利用该私钥对信息摘要值进行加密计算,得到该签名者的数字签名。在得到数字签名后,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。其中,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0121] 在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
[0122] 相应于上述方法实施例,本发明实施例还提供了一种可读存储介质,可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一项文件签名方法的方法步骤。
[0123] 本发明实施例提供的可读存储介质中存储的计算机程序被电子设备的处理器执行后,电子设备可以确定待进行数字签名的目标文件,并可以根据预设的信息摘要算法计算得到该目标文件的信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。之后,利用该私钥对信息摘要值进行加密计算,得到该签名者的数字签名。在得到数字签名后,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。其中,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0124] 在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
[0125] 相应于上述方法实施例,本发明实施例还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行:上述任一项文件签名方法的方法步骤。
[0126] 本发明实施例提供的包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以确定待进行数字签名的目标文件,并可以根据预设的信息摘要算法计算得到该目标文件的信息摘要值。然后,可以获得要对该目标文件进行数字签名的签名者的私钥和公钥。之后,利用该私钥对信息摘要值进行加密计算,得到该签名者的数字签名。在得到数字签名后,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中。这样,可以将数字签名存储至区块链分布式账本中。其中,由于区块链分布式账本是集体维护的分布式数据库,并具有去中心化和信息不可篡改性等特点。因而,可以避免现有技术中将数字签名写在目标文件尾部所造成的数字签名容易被篡改的情况发生,确保了该数字签名的有效性。另外,将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中,可以便于后续利用该信息摘要值和公钥对该数字签名进行验证。
[0127] 在将该数字签名、信息摘要值和公钥对应存储至区块链分布式账本中之后,还可以在目标文件中写入签名标记。这样,可以方便记录该目标文件是已经进行了数字签名的文件,便于后续对该目标文件的数字签名进行验证。
[0128] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0129] 通信接口用于上述电子设备与其他设备之间的通信。
[0130] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0131] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0132] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、可读存储介质和包含指令的计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0133] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈