密钥保护方法及装置与流程

文档序号:12821848阅读:183来源:国知局
密钥保护方法及装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种密钥保护方法及装置。



背景技术:

公钥(publickey)与私钥(privatekey)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

任何一个用户终端要想获得其他用户终端的安全信任,首先需要将自己的公钥公布在网络中,也就是说需要将自己的用户名+公钥+时间戳发给自己的相邻节点或者是网络的根节点,然后由相邻节点或者根节点转给其他的节点,最终使得网络中的所有的节点都记录有该用户终端的用户名+公钥+时间戳。

如果该用户终端的相邻节点是恶意节点或者该用户终端被恶意节点所代替,则该恶意节点将修改该用户终端的用户名+公钥+时间戳,并将修改后的用户名+公钥+时间戳发布到网络中,则网络中所有的节点记录的该用户终端的用户名+公钥+时间戳可能会不一致,从而造成冲突。



技术实现要素:

本发明实施例提供一种密钥保护方法及装置,以提高密钥保护的安全性。

本发明实施例的一个方面是提供一种密钥保护方法,包括:

对等网络中的节点对所述节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;

所述节点判断所述哈希值是否小于阈值;

若所述哈希值小于阈值,则所述节点至少将所述用户名、所述公钥、所述时间戳和所述哈希值发送给所述对等网络中的其他节点。

本发明实施例的另一个方面是提供一种密钥保护装置,包括:

计算模块,用于对对等网络中的节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;

判断模块,用于判断所述哈希值是否小于阈值;

发送模块,用于当所述哈希值小于阈值时,至少将所述用户名、所述公钥、所述时间戳和所述哈希值发送给所述对等网络中的其他节点。

本发明实施例提供的密钥保护方法及装置,通过对等网络中的节点对节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;当该哈希值小于阈值时,该节点至少将用户名、公钥、时间戳和哈希值发送给对等网络中的其他节点,以使其他节点接收该节点的用户名、公钥,恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现,从而提高了密钥保护的安全性。

附图说明

图1为本发明实施例提供的密钥保护方法流程图;

图2为本发明实施例提供的密钥保护方法适用的网络架构图;

图3为本发明另一实施例提供的密钥保护方法流程图;

图4为本发明实施例提供的密钥保护装置的结构图;

图5为本发明另一实施例提供的密钥保护装置的结构图。

具体实施方式

在介绍本发明实施例之前,先介绍一下数据加密和身份认证的区别。数据加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击,其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。

其次介绍一下公钥和私钥的概念和作用。在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密,即一个公钥对应一个私钥。

比如有两个用户alice和bob,alice想把一段明文通过双钥加密的技术发送给bob,bob有一对公钥和私钥,那么加密解密的过程如下:bob将他的公开密钥传送给alice。alice用bob的公开密钥加密她的消息,然后传送给bob。bob用他的私人密钥解密alice的消息。

公钥(publickey)与私钥(privatekey)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

目前存在防止代码被恶意篡改的方法和装置。包括:嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。可以杜绝防止代码被恶意篡改。

也存在一种p2p直播流传递的方法、系统、数字签名装置及p2p客户端,涉及通讯技术领域,能够防止p2p直播流在传递过程中被恶意篡改,同时避免对p2p系统性能造成较大的冲击。本发明实施例提供的方法包括:生成公钥和私钥数字签名算法密钥对;根据所述私钥对源直播流进行签名,对签名后的源直播流进行切片,并将切片后的直播流下发到点对点客户端;发送所述公钥到点对点客户端,由该点对点客户端根据该公钥对接收的点对点直播流进行签名验证。本发明的实施例既适用于集中式的p2p组网,也适用于基于cdn架构的分布式的p2p组网。

任何一个用户终端要想获得其他用户终端的安全信任,首先需要将自己的公钥公布在网络中,也就是说需要将自己的用户名+公钥+时间戳发给自己的相邻节点或者是网络的根节点,然后由相邻节点或者根节点转给其他的节点,最终使得网络中的所有的节点都记录有该用户终端的用户名+公钥+时间戳。

如果该用户终端的相邻节点是恶意节点或者该用户终端被恶意节点所代替,则该恶意节点将修改该用户终端的用户名+公钥+时间戳,并将修改后的用户名+公钥+时间戳发布到网络中,则网络中所有的节点记录的该用户终端的用户名+公钥+时间戳可能会不一致,从而造成冲突。为了解决该问题,本实施例提供了一种密钥保护方法,下面结合具体的实施例进行说明。

图1为本发明实施例提供的密钥保护方法流程图;图2为本发明实施例提供的密钥保护方法适用的网络架构图。该方法具体步骤如下:

步骤s101、对等网络中的节点对所述节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值。

如图2所示,第一节点、第二节点、第三节点、第四节点构成对等网络(peertopeer,p2p),此处只是示意性说明,并不限定对等网络的具体形式,也不限定对等网络中的节点的个数。每个节点在对等网络中是对等的,各自的消息是可以同步的,每个节点具体可以是用户终端、服务器、服务器集群等设备。每个节点上安装有互联网安全信任p2p代理模块,该代理模块首次启动,弹出一个界面,要求用户输入用户名,并根据预先约定的算法生成该用户名对应的公钥和私钥。该公钥同时可以作为该用户的用户标识用以区分其他的用户。然后该用户终端可以加入到信任的p2p网络中,加入信任的p2p网络的时候,可以通过找到p2p相邻节点的方式加入,也可以通过与p2p根节点建立连接的方式加入,如图2所示,假设第五节点原来不是p2p网络中的节点,现在可通过与其相邻节点即第三节点建立连接的方式加入该p2p网络中,也可以通过与p2p根节点建立连接的方式加入该p2p网络中。

假设第三节点是第五节点的相邻节点,第五节点可通过与第三节点建立连接的方式加入该p2p网络中,并将第五节点的用户名、公钥和本地的时间戳公布到该p2p网络中,具体的公布过程为本实施例提供的步骤。首先,第五节点对自己的用户名、公钥、本地时间戳和随机数进行哈希运算的到哈希值,在本实施例中,第五节点的用户名记为username,第五节点的公钥记为kpub,第五节点的本地时间戳记为timestamp,第五节点进行哈希运算时采用的随机数记为random,哈希值记为hash-a,则hash-a=h(username用户名,kpub公钥,timestamp时间戳,random随机数),其中,h(username用户名,kpub公钥,timestamp时间戳,random随机数)表示对用户名、公钥、时间戳、随机数进行哈希运算。

步骤s102、所述节点判断所述哈希值是否小于阈值。

第五节点判断哈希运算得到的哈希值hash-a是否小于阈值,如果哈希值hash-a小于阈值,则执行后续步骤,如果hash-a大于阈值,则继续选择新的随机数并计算哈希值hash-a,直到哈希值hash-a小于阈值为止,该阈值是预先设定的,该阈值选择的越小,则满足的可能性越低,相应的第五节点计算所需要的时间越长。

步骤s103、若所述哈希值小于阈值,则所述节点至少将所述用户名、所述公钥、所述时间戳和所述哈希值发送给所述对等网络中的其他节点。

当hash-a小于阈值时,第五节点将自己的用户名、公钥、时间戳和哈希值hash-a这四个元素发送给所述对等网络中的其他节点,例如与第五节点相邻的第三节点。第三节点接收到第五节点的用户名、公钥、时间戳和哈希值hash-a时,对第五节点的用户名、公钥、时间戳和哈希值hash-a进行验证,如果验证通过,则将第五节点的用户名、公钥、时间戳和哈希值hash-a转发给对等网络中的其他节点,如果验证不通过,则丢弃。

如果第五节点的相邻节点第三节点是恶意节点,则该恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现。

可选的,只要在恶意节点计算出新的满足条件的hash值之前,第五节点将用户名、公钥、时间戳和哈希值hash-a转发给对等网络中的其他节点,即使该恶意节点冒充第五节点发布第五节点的用户名、公钥、时间戳和哈希值hash-a,也会因为第五节点的发布已经被p2p网络中的其他节点先行接收了而失败。

需要注意的是,原来不在p2p网络中、需要加入p2p网络中的节点发布自己的用户名和公钥的时候可以采用本实施例所述的方法,已经加入p2p网络中的节点在发布某个账本信息的时候,也可以采用本实施例所述的方法,具体不再赘述。

本发明实施例通过对等网络中的节点对节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;当该哈希值小于阈值时,该节点至少将用户名、公钥、时间戳和哈希值发送给对等网络中的其他节点,以使其他节点接收该节点的用户名、公钥,恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现,从而提高了密钥保护的安全性。

图3为本发明另一实施例提供的密钥保护方法流程图。该方法具体步骤如下:

步骤s301、所述节点将所述随机数放置在所述用户名、所述公钥、所述时间戳中的固定位置。

在本实施例中,所述公钥是所述节点根据预设算法对所述用户名计算得到的密钥对中的公钥。如图2所述,第五节点根据预设算法对自己的用户名计算得到密钥对中的公钥,该密钥对包括私钥和公钥。第五节点将其用户名、公钥和本地时间戳构成一个报文,并在该报文中选择一个固定的位置,在该固定的位置放置随机数。

步骤s302、节点对所述节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值。

步骤s302与步骤s101一致,具体方法此处不再赘述。

步骤s303、所述节点判断所述哈希值是否小于阈值。

步骤s303与步骤s102一致,具体方法此处不再赘述。

步骤s304、若所述哈希值小于阈值,则所述节点将述用户名、所述公钥、所述时间戳、所述随机数和所述哈希值发送给所述对等网络中的其他节点。

当第五节点计算出的哈希值hash-a小于阈值时,第五节点具体可以将其用户名、公钥、时间戳、随机数和哈希值hash-a这五个元素发送给对等网络中的其他节点,例如其相邻节点第三节点。

在本实施例中,所述时间戳还可以是所述节点发送所述用户名、所述公钥、所述时间戳、所述随机数和所述哈希值的时刻。

本发明实施例通过对等网络中的节点对节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;当该哈希值小于阈值时,该节点至少将用户名、公钥、时间戳和哈希值发送给对等网络中的其他节点,以使其他节点接收该节点的用户名、公钥,恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现,从而提高了密钥保护的安全性。

图4为本发明实施例提供的密钥保护装置的结构图。本发明实施例提供的密钥保护装置可以执行密钥保护方法实施例提供的处理流程,如图4所示,密钥保护装置40包括计算模块41、判断模块42和发送模块43,其中,计算模块41用于对对等网络中的节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;判断模块42用于判断所述哈希值是否小于阈值;发送模块43用于当所述哈希值小于阈值时,至少将所述用户名、所述公钥、所述时间戳和所述哈希值发送给所述对等网络中的其他节点。

本发明实施例通过对等网络中的节点对节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;当该哈希值小于阈值时,该节点至少将用户名、公钥、时间戳和哈希值发送给对等网络中的其他节点,以使其他节点接收该节点的用户名、公钥,恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现,从而提高了密钥保护的安全性。

图5为本发明另一实施例提供的密钥保护装置的结构图。在上述实施例的基础上,密钥保护装置40还包括放置模块44,用于将所述随机数放置在所述用户名、所述公钥、所述时间戳中的固定位置。

另外,发送模块43具体用于将述用户名、所述公钥、所述时间戳、所述随机数和所述哈希值发送给所述对等网络中的其他节点。

在本实施例中,所述时间戳是所述节点发送所述用户名、所述公钥、所述时间戳、所述随机数和所述哈希值的时刻。所述公钥是所述节点根据预设算法对所述用户名计算得到的密钥对中的公钥。

本发明实施例提供的密钥保护装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过对等网络中的节点对节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;当该哈希值小于阈值时,该节点至少将用户名、公钥、时间戳和哈希值发送给对等网络中的其他节点,以使其他节点接收该节点的用户名、公钥,恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现,从而提高了密钥保护的安全性。

综上所述,本发明实施例通过对等网络中的节点对节点对应的用户名、公钥、时间戳和随机数进行哈希运算得到哈希值;当该哈希值小于阈值时,该节点至少将用户名、公钥、时间戳和哈希值发送给对等网络中的其他节点,以使其他节点接收该节点的用户名、公钥,恶意节点除非能够用自己的公钥重新计算出另一个小于阈值的hash值,否则任何修改都会引起hash计算的失败,而被p2p网络中的其他节点发现,从而提高了密钥保护的安全性。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1