技术领域
[0001] 本
发明实施例涉及通信技术领域,尤其涉及一种公钥修改方法及装置。
背景技术
[0002] 公钥加密,也叫非对称(密钥)加密(public key encryption),属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。它解决了密钥的发布和管理问题,是目前商业密码的核心。在公钥加密体制中,没有公开的是私钥,公开的是公钥。
[0003] 公钥(Public Key)与私钥(Private Key)是通过一种
算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
[0004] 公钥一般记录在
分布式账本中,由具备记账权的用户进行记录并广播给其他的用户。而私钥是由用户自己保存的,用户可能保存在移动介质或者个人电脑中,如果移动介质发生丢失,联网的电脑可以被黑客入侵,这样假如某个用户的私钥因为某种原因泄露了,这将是非常严重的安全事故,因此需要修改自己的公钥,但是
现有技术中提供的公钥修改方法的安全性低。
发明内容
[0005] 本发明实施例提供一种公钥修改方法及装置,以提高修改公钥的安全性。
[0006] 本发明实施例的一个方面是提供一种公钥修改方法,包括:
[0007]
对等网络中的
节点接收用户终端发送的
申请信息,所述申请信息包括所述用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,所述至少一个签名信息是与所述用户终端有关联关系的其他用户终端对所述用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息;
[0008] 所述节点对所述至少一个签名信息进行验证;
[0009] 如果验证通过,则所述节点记录所述用户终端的用户名、更新的公钥、更新公钥的时间戳。
[0010] 本发明实施例的另一个方面是提供一种公钥修改装置,包括:
[0011] 接收模
块,用于接收用户终端发送的申请信息,所述申请信息包括所述用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,所述至少一个签名信息是与所述用户终端有关联关系的其他用户终端对所述用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息;
[0012] 验证模块,用于对所述至少一个签名信息进行验证;
[0013] 记录模块,用于当验证通过时,记录所述用户终端的用户名、更新的公钥、更新公钥的时间戳。
[0014] 本发明实施例提供的公钥修改方法及装置,通过节点接收用户终端发送的申请信息,申请信息包括用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,签名信息是与用户终端有关联关系的其他用户终端对用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息,该节点可根据至少一个签名信息对该申请信息验证,当黑客或攻击者以该用户终端的名义修改公钥时,由于无法得到与该用户终端关联的其他用户终端的签名信息,因此对等网络中的节点无法对黑客或攻击者发送的申请信息验证通过,即黑客或攻击者无法修改该用户终端的公钥,从而提高了修改公钥的安全性。
附图说明
[0015] 图1为本发明实施例提供的公钥修改方法
流程图;
[0016] 图2为本发明实施例提供的公钥修改装置的结构图;
[0017] 图3为本发明另一实施例提供的公钥修改装置的结构图。
具体实施方式
[0018] 图1为本发明实施例提供的公钥修改方法流程图。本发明实施例提供了公钥修改方法,具体的公钥修改方法步骤如下:
[0019] 步骤S101、对等网络中的节点接收所述用户终端发送的注册信息,所述注册信息包括所述用户终端的用户名、原始公钥、原始公钥的时间戳、所述其他用户终端的用户名。
[0020] 用户终端A首次加入对等网络(Peer to Peer,P2P)时,生成一对自己的私钥Key-A11和公钥Key-A1,其中,公钥Key-A1可以作为用户终端A的原始公钥,后续用户终端A可能会修改自己的公钥。用户终端A向对等网络中的节点发送注册信息,该注册信息包括用户终端A的用户名例如A、原始公钥例如Key-A1、原始公钥的时间戳例如2016-03-13 13:22:24、与用户终端A有关联关系的其他用户终端例如用户终端B和用户终端C的用户名例如B和C,此处只是示意性说明,本实施例不限定与用户终端A有关联关系的其他用户终端的个数以及具体的用户终端。该注册信息的具体格式如表1所示:
[0021] 表1
[0022]用户名 公钥 时间戳 其他用户
A Key-A1 2016-03-13 13:22:24 B,C
[0023] 步骤S102、所述节点接收用户终端发送的申请信息,所述申请信息包括所述用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,所述至少一个签名信息是与所述用户终端有关联关系的其他用户终端对所述用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息。
[0024] 如果用户A自己存放的私钥的介质丢失或者用户A认为自己的电脑被入侵,那么用户A的私钥可能被黑客获取的可能,则用户A可通过用户终端A向P2P网络发起修改自己公钥A的申请,具体的,用户A通过用户终端A向P2P网络中的节点发送申请信息,申请信息的具体格式如表2所示:
[0025] 表2
[0026] 用户名 公钥 时间戳 用户B的签名 用户C的签名A Key-A2 2017-02-23 13:22:24 签名信息-B 签名信息-C
[0027] 如表2所示,用户A通过用户终端A将自己的公钥从Key-A1修改为Key-A2,该申请信息中包括用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24、用户B的签名即签名信息-B、用户C的签名即签名信息-C,其中,签名信息-B的生成过程为:用户终端A将用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-
2313:22:24发送给用户终端B,用户终端B用自己的私钥对用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24整体进行加密得到该签名信息-B,用户终端B将签名信息-B发送给用户终端A,用户终端A将签名信息-B放入如表2所示的申请信息中,并发布到对等网络中;同理,签名信息-C和签名信息-B的生成过程原理一致,此处不再赘述。
[0028] 步骤S103、所述节点对所述至少一个签名信息进行验证。
[0029] 所述节点确定与所述用户终端有关联关系的其他用户终端的用户名。所述节点根据所述其他用户终端的用户名,获得所述其他用户终端的公钥。
[0030] 当对等网络中的节点接收到如表2所示的申请信息后,根据步骤S101中用户终端A发送的注册信息如表1所示,确定出与用户终端A有关联关系的其他用户终端的用户名为B和C,该节点根据用户终端B的用户名B和用户终端C的用户名C,获得用户终端B的公钥例如Key-B和用户终端C的公钥例如Key-C,其中,用户终端B和用户终端C首次加入对等网络时,生成一对自己的私钥和公钥,并将自己的用户名和公钥如表1所示的格式公布到对等网络中,因此,对等网络中的节点可以根据用户终端B和用户终端C历史公布的注册信息分别获取到用户终端B的公钥例如Key-B和用户终端C的公钥例如Key-C。
[0031] 所述节点采用所述其他用户终端的公钥对所述至少一个签名信息进行解密,得到解密后的信息。由于签名信息-B是用户终端B用自己的私钥对用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-2313:22:24整体进行加密得到的,因此,对等网络中的节点可以采用用户终端B的公钥例如Key-B对签名信息-B进行解密,得到解密后的信息。
[0032] 步骤S104、如果验证通过,则所述节点记录所述用户终端的用户名、更新的公钥、更新公钥的时间戳。
[0033] 所述解密后的信息与所述用户终端的用户名、更新的公钥、更新公钥的时间戳一致。如果节点采用用户终端B的公钥例如Key-B对签名信息-B进行解密后得到解密后的信息与用户终端A公布的如表2所示的用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24是一致的,则表示用户终端B已经确认用户终端A的申请信息;同理,如果节点采用用户终端C的公钥例如Key-C对签名信息-C进行解密后得到解密后的信息与用户终端A公布的如表2所示的用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24是一致的,则表示用户终端C已经确认用户终端A的申请信息。
[0034] 当节点采用用户终端B的公钥例如Key-B对签名信息-B进行解密后得到解密后的信息与用户终端A公布的如表2所示的用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24一致,且节点采用用户终端C的公钥例如Key-C对签名信息-C进行解密后得到解密后的信息与用户终端A公布的如表2所示的用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24一致时,节点确定对用户终端A的申请信息验证通过,记录用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24,同时,用更新的公钥Key-A2替换原始公钥例如Key-A1,用更新公钥的时间戳2017-02-23 13:22:24替换原始公钥的时间戳例如2016-03-13 13:22:24。此外,该节点还可以将用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23
13:22:24广播给对等网络中的其他节点,以使其他节点也用更新的公钥Key-A2替换原始公钥例如Key-A1,用更新公钥的时间戳2017-02-23 13:22:24替换原始公钥的时间戳例如
2016-03-13 13:22:24,从而实现了用户终端修改自己公钥的机制。
[0035] 此外,如果节点采用用户终端B的公钥例如Key-B对签名信息-B进行解密后得到解密后的信息与用户终端A公布的如表2所示的用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24不一致,或者节点采用用户终端C的公钥例如Key-C对签名信息-C进行解密后得到解密后的信息与用户终端A公布的如表2所示的用户终端A的用户名A、更新的公钥Key-A2、更新公钥的时间戳2017-02-23 13:22:24不一致时,该节点对用户终端A的申请信息验证识别,将用户终端A发布的如表2所示的申请信息丢弃。
[0036] 本发明实施例通过节点接收用户终端发送的申请信息,申请信息包括用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,签名信息是与用户终端有关联关系的其他用户终端对用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息,该节点可根据至少一个签名信息对该申请信息验证,当黑客或攻击者以该用户终端的名义修改公钥时,由于无法得到与该用户终端关联的其他用户终端的签名信息,因此对等网络中的节点无法对黑客或攻击者发送的申请信息验证通过,即黑客或攻击者无法修改该用户终端的公钥,从而提高了修改公钥的安全性。
[0037] 图2为本发明实施例提供的公钥修改装置的结构图。本发明实施例提供的公钥修改装置可以执行公钥修改方法实施例提供的处理流程,如图2所示,20包括:接收模块21、验证模块22、记录模块23,其中,接收模块21用于接收用户终端发送的申请信息,所述申请信息包括所述用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,所述至少一个签名信息是与所述用户终端有关联关系的其他用户终端对所述用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息;验证模块22用于对所述至少一个签名信息进行验证;记录模块23用于当验证通过时,记录所述用户终端的用户名、更新的公钥、更新公钥的时间戳。
[0038] 本发明实施例通过节点接收用户终端发送的申请信息,申请信息包括用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,签名信息是与用户终端有关联关系的其他用户终端对用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息,该节点可根据至少一个签名信息对该申请信息验证,当黑客或攻击者以该用户终端的名义修改公钥时,由于无法得到与该用户终端关联的其他用户终端的签名信息,因此对等网络中的节点无法对黑客或攻击者发送的申请信息验证通过,即黑客或攻击者无法修改该用户终端的公钥,从而提高了修改公钥的安全性。
[0039] 图3为本发明另一实施例提供的公钥修改装置的结构图。在上述实施例的
基础上,接收模块21还用于接收所述用户终端发送的注册信息,所述注册信息包括所述用户终端的用户名、原始公钥、原始公钥的时间戳、所述其他用户终端的用户名。
[0040] 验证模块22具体用于采用所述其他用户终端的公钥对所述至少一个签名信息进行解密,得到解密后的信息。所述验证通过包括:所述解密后的信息与所述用户终端的用户名、更新的公钥、更新公钥的时间戳一致。
[0041] 另外,公钥修改装置20还包括:确定模块24和获得模块25,确定模块24用于确定与所述用户终端有关联关系的其他用户终端的用户名;获得模块25用于根据所述其他用户终端的用户名,获得所述其他用户终端的公钥。
[0042] 本发明实施例提供的公钥修改装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。
[0043] 本发明实施例通过节点接收用户终端发送的申请信息,申请信息包括用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,签名信息是与用户终端有关联关系的其他用户终端对用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息,该节点可根据至少一个签名信息对该申请信息验证,当黑客或攻击者以该用户终端的名义修改公钥时,由于无法得到与该用户终端关联的其他用户终端的签名信息,因此对等网络中的节点无法对黑客或攻击者发送的申请信息验证通过,即黑客或攻击者无法修改该用户终端的公钥,从而提高了修改公钥的安全性。
[0044] 综上所述,本发明实施例通过节点接收用户终端发送的申请信息,申请信息包括用户终端的用户名、更新的公钥、更新公钥的时间戳、至少一个签名信息,签名信息是与用户终端有关联关系的其他用户终端对用户终端的用户名、更新的公钥、更新公钥的时间戳进行签名后得到的信息,该节点可根据至少一个签名信息对该申请信息验证,当黑客或攻击者以该用户终端的名义修改公钥时,由于无法得到与该用户终端关联的其他用户终端的签名信息,因此对等网络中的节点无法对黑客或攻击者发送的申请信息验证通过,即黑客或攻击者无法修改该用户终端的公钥,从而提高了修改公钥的安全性。
[0045] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些
接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0046] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0047] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用
硬件的形式实现,也可以采用硬件加
软件功能单元的形式实现。
[0048] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,
服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动
硬盘、只读
存储器(Read-Only Memory,ROM)、
随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0049] 本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0050] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。