欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种密钥更新方法与系统独创技术16124字

一种密钥更新方法与系统

2021-02-01 00:52:16

一种密钥更新方法与系统

  技术领域

  本发明属于信息安全技术领域,更具体地,涉及一种密钥更新方法与系统。

  背景技术

  终端设备作为家庭网络与外部网络的连接单元,承载着用户的数据、语音、视频等综合接入需求,如何保障终端设备的安全性进而保障用户和网络的安全性是各运营商十分看重的特性。安全升级作为设备管理安全特性的一部分,保护软件包的信息不被泄露、伪造和篡改,避免黑客利用软件包的漏洞入侵设备,进行盗取用户信息或者攻击网络等非法行为。

  软件包加密作为一种常见的安全升级方法,通常在发布软件包前对软件包进行加密,在升级软件包时对软件包进行解密,加解密采用共享的密钥;如果密钥泄露将会导致升级的安全性被破坏,因此需要一种能动态更新密钥的机制来保障软件包的加解密密钥的安全性。

  现有的软件包加密机制,有些未考虑密钥动态更新问题,如果密钥泄露将会导致升级的安全性被破坏;而考虑了密钥动态更新问题的一般采用的是以下两个方法:

  通信双方预置软件包密钥U的加密密钥K,在更新软件包密钥U时使用预置的密钥K对其进行加密,然后在软件包包头中进行传输,但这种情况如果预置的密钥K泄露则会导致软件包密钥U同时泄露;

  依据当前密钥计算新密钥,但这种情况当前密钥和新密钥之间存在关联,如果当前密钥被泄露,会影响新密钥的安全性;

  DH(Diffie-Hellman,迪菲-赫尔曼)密钥交换算法需要通信双方进行多轮协商来最终确定更新的密钥,不适合升级这种点对多点单向通信的场景。

  发明内容

  针对现有技术的以上缺陷或改进需求,本发明提供了一种密钥更新方案,其目的在于有效实现终端设备软件升级点对多点单向通信场景下密钥动态更新的需求。

  为实现上述目的,按照本发明的一个方面,提供了一种密钥更新方法,包括:

  密钥主动更新方选择一个大素数对和两个大随机数,所述大素数对包括第一大素数和第二大素数,所述两个大随机数包括第一大随机数和第二大随机数;

  密钥主动更新方根据第一大素数、第二大素数和第二大随机数计算第一中间数;密钥主动更新方根据第一中间数、第二大素数和第一大随机数计算出第一密钥;

  密钥主动更新方根据第一大素数、第二大素数和第一大随机数计算第二中间数;密钥主动更新方向密钥被动更新方传递选择的大素数对的索引值、第二中间数和第二大随机数;

  密钥被动更新方根据收到的大素数对的索引值查找大素数对中的第二大素数;密钥被动更新方根据收到的第二中间数、第二大随机数以及查找到的第二大素数计算出第二密钥。

  本发明的一个实施例中,在所述密钥主动更新方和密钥被动更新方本地保存有一致的多个大素数对,以及各个大素数对所对应的索引值。

  本发明的一个实施例中,在云端保存有多个大素数对以及各个大素数对所对应的索引值,所述密钥主动更新方从云端选择并下载一个大素数对及其所对应的索引值,密钥被动更新方在收到密钥主动更新方发送的索引值后,根据密钥主动更新方发送的索引值从云端选择并下载所需要的大素数。

  本发明的一个实施例中,在多个大素数对以及各个大素数对所对应的索引值保存在云端时,密钥主动更新方或/和密钥被动更新方通过HTTPS从云端下载数据。

  本发明的一个实施例中,大素数对的索引值为大素数对经过消息摘要算法得到的值。

  本发明的一个实施例中,密钥主动更新方根据第一大素数、第二大素数和第二大随机数计算第一中间数;密钥主动更新方根据第一中间数、第二大素数和第一大随机数计算出第一密钥,包括:

  计算第一密钥K1=Ba mod p{j},其中第一中间数B=g{j}b mod p{j},g{j}为第一大素数,p{j}为第二大素数,a为第一大随机数,b为第二大随机数,mod为求余运算。

  本发明的一个实施例中,密钥主动更新方根据第一大素数、第二大素数和第一大随机数计算第二中间数;密钥主动更新方向密钥被动更新方传递选择的大素数对的索引值、第二中间数和第二大随机数,包括:

  计算第二中间数A=g{j}a mod p{j};

  将第二中间数A、第二大随机数b和选择的大素数对g{j},p{j}的索引值key{j}发送给密钥被动更新方。

  本发明的一个实施例中,密钥被动更新方根据收到的大素数对的索引值查找大素数对中的第二大素数;密钥被动更新方根据收到的第二中间数、第二大随机数以及查找到的第二大素数计算出第二密钥,包括:

  密钥被动更新方通过密钥主动更新方发送的索引值key{j}查找大素数对中的第二大素数p{j};

  密钥被动更新方根据密钥主动更新方发送的第二中间数A和第二大随机数b计算第二密钥K2=Ab mod p{j}。

  按照本发明的另一方面,还提供了一种密钥更新系统,包括密钥主动更新方和密钥被动更新方:

  所述密钥主动更新方,用于选择一个大素数对和两个大随机数,所述大素数对包括第一大素数和第二大素数,所述两个大随机数包括第一大随机数和第二大随机数;根据第一大素数、第二大素数和第二大随机数计算第一中间数;根据第一中间数、第二大素数和第一大随机数计算出第一密钥;根据第一大素数、第二大素数和第一大随机数计算第二中间数;向密钥被动更新方传递选择的大素数对的索引值、第二中间数和第二大随机数;

  所述密钥被动更新方,根据收到的大素数对的索引值查找大素数对中的第二大素数;密钥被动更新方根据收到的第二中间数、第二大随机数以及查找到的第二大素数计算出第二密钥。

  本发明的一个实施例中,在云端保存有多个大素数对以及各个大素数对所对应的索引值,所述密钥主动更新方从云端选择并下载一个大素数对及其所对应的索引值,密钥被动更新方在收到密钥主动更新方发送的索引值后,根据密钥主动更新方发送的索引值从云端选择并下载所需要的大素数。

  总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:

  (1)本发明技术方案可以有效实现终端设备软件升级点对多点单向通信场景下的密钥动态更新需求;

  (2)本发明技术方案在密钥更新过程无更新后的密钥传输,避免密钥在传输过程中泄露风险;

  (3)本发明技术方案中,新密钥独立于原始密钥,避免原始密钥泄露影响新密钥安全性的风险;

  (4)本发明技术可用于安全软件包的升级、加密通信等众多需要加密的应用场景。

  附图说明

  图1为现有技术中DH密钥交换算法的原理示意图;

  图2为本发明实施例中密钥更新方法的原理示意图;

  图3为本发明实施例中密钥更新方法在安全升级软件包中的应用示意图。

  具体实施方式

  为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

  DH密钥交换算法允许通信双方在非安全的信道中安全的交换密钥,且密钥之间相互独立,如图1所示:DH密钥交换算法涉及到两个实体,密钥主动更新方和密钥被动更新方。DH密钥交换算法包括如下步骤:

  第一步,密钥主动更新方确定两个大素数g和p;

  第二步,密钥主动更新方选择一个大随机数a,并计算A=ga mod p;

  第三步,密钥主动更新方将g、p和A发送给密钥被动更新方;

  第四步,密钥被动更新方选择一个大随机数b,并计算B=gb mod p;

  第五步,密钥被动更新方将B发给密钥主动更新方;

  第六步,密钥主动更新方计算密钥K1=Ba mod p,密钥被动更新方计算密钥K2=Abmod p;

  K1=K2,则密钥主动更新方和密钥被动更新方通过交换得到了同样的密钥。

  实施例1

  本发明根据升级点对多点单向通信的特点改进了DH密钥交换算法:

  原始的DH密钥交换算法,一方选择一对大素数和一个大随机数,传递选择的大素数对和根据大素数对及选择的大随机数得出的计算结果;另一方选择一个大随机数,传递根据收到的大素数对及选择的大随机数得出的计算结果,双方依赖于收到的对方的计算结果来计算出密钥,保护的是选择的大随机数。

  改进后的DH密钥交换算法,一方选择一对大素数和两个大随机数,根据选择的大素数对和大随机数计算出密钥,传递选择的大素数对的索引值(大素数对的索引值为大素数对-经过消息摘要算法得到的值,可以采用MD5(Message Digest Algorithm MD5,消息摘要算法)、SHA(Secure Hash Algorithm,安全散列算法)等算法)、根据大素数对及其中一个大随机数得出的计算结果和另一个大随机数;另一方根据收到的大素数对的索引值查找大素数对,结合收到的计算结果和另一个大随机数计算出密钥,保护的是大素数对。

  具体地,本发明提供了一种密钥更新方法,包括:

  密钥主动更新方选择一个大素数对和两个大随机数,所述大素数对包括第一大素数和第二大素数,所述两个大随机数包括第一大随机数和第二大随机数;

  密钥主动更新方根据第一大素数、第二大素数和第二大随机数计算第一中间数;密钥主动更新方根据第一中间数、第二大素数和第一大随机数计算出第一密钥;

  密钥主动更新方根据第一大素数、第二大素数和第一大随机数计算第二中间数;密钥主动更新方向密钥被动更新方传递选择的大素数对的索引值、第二中间数和第二大随机数;

  密钥被动更新方根据收到的大素数对的索引值查找大素数对中的第二大素数;密钥被动更新方根据收到的第二中间数、第二大随机数以及查找到的第二大素数计算出第二密钥。

  具体的操作步骤如下:通过密钥主动更新方在共享的大素数对中随机选择一组数据{key{j},g{j},p{j}},其中key{j}=md5(g{j},p{j})(本发明中大素数对的索引值以MD5为例),然后选择两个大随机数a,b,计算A=g{j}a mod p{j},将计算得出的A,选择的大随机数b和选择的大素数对MD5值key{j}发送给密钥被动更新方;

  密钥主动更新方计算B=g{j}b mod p{j},由此得到密钥K1=Ba mod p{j};密钥被动更新方通过key{j}在共享的大素数对中找到p{j},由此得到密钥K2=Ab mod p{j};通信双方各自计算得到的K1=K2,则达到了动态安全独立更新密钥的效果;

  本发明实施例中,g{j}为第一大素数,p{j}为第二大素数,a为第一大随机数,b为第二大随机数,mod为求余运算,K1为第一密钥,K2为第二密钥,B为第一中间数,A为第二中间数,key{j}为大素数对g{j},p{j}的索引值。

  共享的大素数对可以在密钥主动更新方和密钥被动更新方本地保存,也可以放在云端保存,需要使用的时候从云端下载。

  实施例2

  本发明实施例提供了一种密钥更新方法,该方法针对点对多点单向通信场景中对DH密钥交换算法进行优化,如图2所示,所述方法包括:

  密钥主动更新方和密钥被动更新方共享大素数对{key{j},p{j},g{j}},其中key{j}=md5(p{j},g{j});上述大素数对可以是多对。

  (1)密钥主动更新方在大素数对中选择一组数据key{j},p{j},g{j};

  (2)密钥主动更新方选择一个大随机数a,并计算A=g{j}a mod p{j};

  (3)密钥主动更新方选择一个大随机数b,并计算B=g{j}b mod p{j};

  (4)密钥主动更新方计算密钥K1=Ba mod p{j};

  (5)密钥主动更新方将选择的大素数对的md5值key{j}、计算得到的A和选择的大随机数b传给密钥被动更新方;

  (6)密钥被动更新方利用大素数对的md5值key{j}查询到p{j};

  (7)密钥被动更新方计算密钥K2=Ab mod p{j}。

  当密钥主动更新方和密钥被动更新方通过上述流程更新密钥后,密钥K1和密钥K2相等,通信双方可以分别通过密钥K1和密钥K2进行加密和解密,实现加密通信。

  实施例3

  本发明实施例提供了一种利用本发明密钥更新方法在安全升级软件包中的应用,如图3所示:

  镜像制作服务器和终端设备之间共享的大素数对可以通过预置的方式分别预置在服务器和终端中,也可以通过云端共享的方式服务器和终端通过安全的传输途径(例如HTTPS)分别从云端获取数据;

  镜像制作服务器通过图3的第1到5步得到第一密钥K1,使用第一密钥K1对原始镜像进行加密得到加密镜像M,将选择的大素数对的md5值key{j}、计算得到的A和选择的大随机数b附加到加密镜像M的软件头中打包得到软件包U,然后将U分发给终端;

  终端收到软件包后首先剥离软件头和加密镜像M,然后通过图3的第7到9步得到第二密钥K2,使用第二密钥K2对加密镜像M进行解密得到原始镜像。

  实施例4

  本发明实施例提供了一种密钥更新系统,包括密钥主动更新方和密钥被动更新方,其中:

  所述密钥主动更新方,用于选择一个大素数对和两个大随机数,所述大素数对包括第一大素数和第二大素数,所述两个大随机数包括第一大随机数和第二大随机数;根据第一大素数、第二大素数和第二大随机数计算第一中间数;根据第一中间数、第二大素数和第一大随机数计算出第一密钥;根据第一大素数、第二大素数和第一大随机数计算第二中间数;向密钥被动更新方传递选择的大素数对的索引值、第二中间数和第二大随机数;

  所述密钥被动更新方,根据收到的大素数对的索引值查找大素数对中的第二大素数;密钥被动更新方根据收到的第二中间数、第二大随机数以及查找到的第二大素数计算出第二密钥。

  进一步地,在云端保存有多个大素数对以及各个大素数对所对应的索引值,所述密钥主动更新方从云端选择并下载一个大素数对及其所对应的索引值,密钥被动更新方在收到密钥主动更新方发送的索引值后,根据密钥主动更新方发送的索引值从云端选择并下载所需要的大素数。

  本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

《一种密钥更新方法与系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)