专利名称:基于组合公钥算法的IPv6网络层可信传输的方法和系统的制作方法
技术领域:
本发明属于网络通信技术领域,尤其一种涉及IPv6网络层的可信传输技术。
背景技术:
网络间互联协议(Internet Protocol, IP)是大多数网络赖以构建的基础,然而 IP协议本身的缺陷,使得网络安全性、服务质量、可靠性和网络管理难以得到保证。针对网络层的数据窃听、重放攻击、中间人攻击等各种威胁普遍存在,以IP为基础的网络安全面临严重的挑战。为了有效解决IP层的安全问题,从1995年开始hternet工程任务组 (Internet Engineering Task Force, IETF)着手制定了一套用于保护IP通信安全的协议——IP安全协议(IP Security, IPkc)。RFC2401中定义了 IPkc的体系结构认证头 (AH,AuthenticationHeader)实现数据的完整性、原始身份认证和有限的抗重放攻击服务; 封装安全载荷(Encapsulating Security Payload, ESP)实现数据的机密性、数据源认证、 抗重放以及部分数据的完整性等安全服务。在IPkc中,因特网密钥交换协议(Internet Key Exchange, IKE)是其重要组成部分,在IPSec工作的最初阶段,IKE用来动态建立一个安全关联(Security Association, SA),而SA的建立是IPkc中最复杂的内容。所述SA是构成IPkc的基础,它是两个通信实体经过协商建立起来的一种协定,用来定义保护数据的msec协议、模式、算法及密钥、 生存期、抗重播窗口、计数器等,即无论是使用认证头(Authentication Header, AH)还是封装安全荷载(Encapsulated Secure Payload,ESP),选择传输模式还是隧道模式,这些都是由SA来决定的。所述IKE协议用来动态建立所述SA,预共享密钥认证方式下两阶段的 IKE包括第一阶段通信双方之间建立了一个经过身份认证和安全保护的隧道,即IKE SA ; 第二阶段利用这个SA为IPSec协商了具体的IPkc SA。经过分析发现,IKE实现十分的复杂,它包含了很多的选项,带来了很强的灵活性,但是这不仅仅使系统分析人员理解其表现时十分困难,工程实现难度较大,而且某些选项本身就是不安全的,同时容易遭受拒绝服务攻击、变换载荷攻击和反射攻击等。此外,通过IKE建立SA的过程中,首先要完成的工作就是在两个实体之间实现实体身份可以认证的密钥交换。IKE第一阶段中,根据使用的密钥类型,有三种方式来完成认证的密钥交换预共享对称密钥、公钥加密密钥和公钥验证签名密钥。IKE第一阶段使用预共享对称密钥建立的会话密钥,该方式要求通信双方在通信之前通过网络之外的其他途径获得共享的对称密钥,这种方式在组织规模不大的情况下是比较合适的。在组织规模扩展到一定程度后,任意一对IPSec实体之间都需要共享一个对称密钥, 这给对称密钥的分配和发布带来很大的负担。同样道理,其他两种使用公钥的密钥交换方式,当规模扩展到一定程度时,也不可能通过保密的方式来分配公、私钥对,必须要引入某种认证系统来实现身份认证,IPSec使用的是公钥基础设施(Public Key Infrastructure, PKI)
发明内容
本发明的目的在于提供基于组合公钥算法的IPv6网络层可信传输的方法,解决了 IP层数据完整性、数据加密和IPv6源地址的真实性的问题。根据本发明的一个方面,本发明提供的基于组合公钥算法的IPv6网络层可信传输的方法包括密钥管理中心向每个终端分配唯一的IPv6地址和利用IPv6地址生成的私钥,并下发利用IPv6地址计算公钥的公钥算法;发送终端利用其私钥和发送数据,生成数字签名数据,并将所述数字签名数据、发送数据、源地址和目标地址封装成数据包,发送给接收终端;接收终端根据接收数据包的源地址和所述公钥算法算出发送终端公钥,然后利用所述发送终端公钥和所述数据包中的发送数据生成数字签名比对数据,验证所述数字签名数据,并根据验证结果确定数据包是否可信。所述数字签名数据的生成步骤具体为发送终端使用安全散列函数将发送数据转换为定长数据,并使用其私钥对所述定长数据加密,得到数字签名数据。所述数字签名数据的验证步骤具体为接收终端使用安全散列函数将数据包中的发送数据转换为定长数据;利用生成的所述发送终端公钥和所述定长数据生成数字签名比对数据;将所述数字签名比对数据与数据包中的数字签名数据进行比较,若匹配,则接收的数据包可信,否则,丢弃所述数据包。进一步地,所述发送数据是明文。进一步地,所述发送数据包括密钥交换数据和密文,所述密钥交换数据的生成步骤具体为发送终端利用接收终端的IPv6地址和所述公钥算法获得接收终端公钥,将所述接收终端公钥与其生成的随机数相乘得到密钥交换数据;所述密文的生成步骤具体为发送终端将所述随机数与椭圆曲线群的基点相乘得到用于加密明文的对称密钥, 并利用所述对称密钥加密明文得到密文。进一步地,接收终端确定数据包可信后,对密文进行解密,解密步骤具体为接收终端将其私钥进行求逆运算后与发送数据中的所述密钥交换数据相乘得到所述对称密钥,并利用所述对称密钥解密密文以还原数据。进一步地,所述利用IPv6地址和公钥算法生成发送终端公钥或接收终端公钥的步骤包括发送终端或接收终端利用散列函数,将接收终端或发送终端的IPv6地址转换为散列数据;将所述散列数据分组加密,将分组加密输出结果转换成行坐标,并根据所述行坐标生成行坐标指示序列;将所述散列数据分组加密,将分组加密输出结果转换成置换指示码,利用所述置换指示码,将其32元单位置换转换为列坐标指示序列;利用所述行坐标指示序列和所述列坐标指示序列,提取公钥矩阵中的元素,并将
5提取的元素进行椭圆曲线运算后生成接收终端公钥或发送终端公钥;所述公钥矩阵由所述密钥管理中心下发给终端,其元素为椭圆曲线群的基点的倍
点ο根据本发明的另一个方面,本发明提供的基于组合公钥算法的IPv6网络层可信传输的系统包括密钥管理中心、发送终端和接收终端。其中所述密钥管理中心,用于向每个终端分配唯一的IPv6地址和利用IPv6地址生成的私钥,并下发利用IPv6地址计算公钥的公钥算法;所述发送终端包括数字签名生成模块,用于利用其私钥和发送数据,生成数字签名数据;发送模块,用于将所述数字签名数据、发送数据、源地址和目标地址封装成数据包,发送给接收终端;所述接收终端包括公钥生成模块,用于根据接收数据包的源地址和所述公钥算法算出发送终端公钥;数字签名验证模块,用于利用所述发送终端公钥和所述数据包中的发送数据生成数字签名比对数据,验证所述数字签名数据,并根据验证结果确定数据包是否可信。进一步地,所述发送终端还包括公钥生成模块,用于利用接收终端的IPv6地址和所述密钥管理中心下发的公钥算法算出接收终端公钥;随机数生成模块,用于生成随机数;密钥交换数据生成模块,用于将所述随机数与所述接收终端公钥相乘得到密钥交换数据,并将所述密钥交换数据送入所述发送模块和所述数字签名生成模块;对称密钥生成模块,用于利用所述随机数与椭圆曲线群的基点相乘得到用于加密明文的对称密钥;加密模块,用于利用所述对称密钥生成模块生成的对称密钥加密明文得到密文, 并将所述密文送入所述发送模块和所述数字签名生成模块。进一步地,所述接收终端还包括对称密钥生成模块,用于利用接收终端私钥和数据包中的所述密钥交换数据计算对称密钥;解密模块,用于利用所述对称密钥解密密文以还原明文。与现有技术相比,本发明的有益效果在于1、本发明使终端之间不用进行任何事先协商握手,并且任意两个终端之间的安全信道随时可用,即保证了数据传输的安全性,又保证了数据传输的及时性;2、本发明通过利用IPv6地址作为终端标识,不仅实现了超大规模公钥私钥对的生产,而且省去了第三方认证机构,实现了 IPv6地址的可信认证;3、本发明通过使用密钥中心,使所有终端都在统一的管理之中,便于统一部署和监管,防止失控,比较适合为政务或军用网络等专用网络提供可信数据传输。
图1为本发明基于组合公钥算法的IPv6网络层可信传输方法流程图;图2为本发明实施例提供的地址验证头的格式;图3为本发明实施例提供的基于组合公钥算法的IPv6网络层可信传输方法的发送数据处理流程;图4为本发明实施例提供的基于组合公钥算法的IPv6网络层可信传输方法的接收数据处理流程;图5为本发明实施例提供的基于组合公钥算法的IPv6网络层可信传输系统原理框图;图6为本发明实施例提供的数字签名生成模块内部结构示意图;图7为本发明实施例提供的数字签名验证模块内部结构示意图;图8为本发明实施例提供的公钥生成模块内部结构示意图。
具体实施例方式以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限制本发明。图1显示了本发明基于组合公钥算法的IPv6网络层可信传输方法流程图,如图1 所示步骤101 密钥管理中心向每个终端分配唯一的IPv6地址和利用IPv6地址生成的私钥,并下发利用IPv6地址计算公钥的公钥算法;步骤102 发送终端利用其私钥和发送数据,生成数字签名数据,并将所述数字签名数据、发送数据、源地址和目标地址封装成数据包,发送给接收终端;步骤103 接收终端根据接收数据包的源地址和所述公钥算法算出发送终端公钥,然后利用所述发送终端公钥和所述数据包中的发送数据生成数字签名比对数据,验证所述数字签名数据,并根据验证结果确定数据包是否可信。执行步骤101前,申请加入网络的终端向密钥管理中心提交自己的身份和接入网络的地理位置,密钥管理中心核实终端身份后,根据终端所属的接入网络为终端分配唯一的IPv6地址,这样就将身份、地址和终端的地理位置对应起来,实现了 IPv6地址的实名化;进一步地,所述密钥管理中心还用于生成私钥,将获得的私钥经过USB卡或物理芯片等物理防护后送交终端,防止终端知道私钥本身后进行共谋攻击,并将利用IPv6地址计算终端公钥的公钥矩阵和公钥算法下发给终端,使终端可以根据需要计算任意IPv6地址对应的公钥。其中,利用IPv6地址计算对应的公钥和私钥的步骤包括第1步所述密钥管理中心建立公钥矩阵和私钥矩阵,具体为确定椭圆曲线群4仏,13),并选取椭圆曲线群上的点G= (X15Y1)作为基点,由G的所有倍点构成椭圆曲线群的子群S,即S= {G,2G,· · ·,nG} = Kx1, Y1),(x2,J2),..., (xn, yn)} (1)所述椭圆曲线群^>,《由满足三次方程y2 = (x3+ax+b)modp的小于ρ的非负整数对构成的所有解加上一个0点构成,η个所述基点G相加为0点。所述ρ为不等于2和3 的大素数,所述a,b为满足条件^3+27b2 Φ 0的小于ρ的非负整数。
设公钥矩阵PSK为mXh矩阵,矩阵中的元素为子群S中的元素,记作 Xij (1 彡 i 彡 m,1 彡 j 彡 h),即 Xij = (Xij, Yij),则 PSK 记作
权利要求
1.基于组合公钥算法的IPv6网络层可信传输的方法,其特征在于,包括A)密钥管理中心向每个终端分配唯一的IPv6地址和利用IPv6地址生成的私钥,并下发利用IPv6地址计算公钥的公钥算法;B)发送终端利用其私钥和发送数据,生成数字签名数据,并将所述数字签名数据、发送数据、源地址和目标地址封装成数据包,发送给接收终端;C)接收终端根据接收数据包的源地址和所述公钥算法算出发送终端公钥,然后利用所述发送终端公钥和所述数据包中的发送数据生成数字签名比对数据,验证所述数字签名数据,并根据验证结果确定数据包是否可信。
2.根据权利要求1所述的方法,其特征在于,所述步骤B)中,所述数字签名数据的生成步骤具体为发送终端使用安全散列函数将发送数据转换为定长数据,并使用其私钥对所述定长数据加密,得到数字签名数据。
3.根据权利要求1所述的方法,其特征在于,所述步骤C)中,所述数字签名数据的验证步骤具体为接收终端使用安全散列函数将数据包中的发送数据转换为定长数据;利用生成的所述发送终端公钥和所述定长数据生成数字签名比对数据;将所述数字签名比对数据与数据包中的数字签名数据进行比较,若匹配,则接收的数据包可信,否则,丢弃所述数据包。
4.根据权利要求1所述的方法,其特征在于,所述发送数据是明文。
5.根据权利要求1所述的方法,其特征在于,所述发送数据包括密钥交换数据和密文;所述密钥交换数据的生成步骤具体为发送终端利用接收终端的IPv6地址和所述公钥算法获得接收终端公钥,然后将所述接收终端公钥与其生成的随机数相乘得到所述密钥交换数据;所述密文的生成步骤具体为发送终端将所述随机数与椭圆曲线群的基点相乘得到用于加密明文的对称密钥,并利用所述对称密钥加密明文得到密文。
6.根据权利要求1所述的方法,其特征在于,接收终端确定数据包可信后,对密文进行解密,解密步骤具体为接收终端将其私钥进行求逆运算后与发送数据中的所述密钥交换数据相乘得到所述对称密钥,并利用所述对称密钥解密密文以还原数据。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述利用IPv6地址和公钥算法生成发送终端公钥或接收终端公钥的步骤包括发送终端或接收终端利用散列函数,将接收终端或发送终端的IPv6地址转换为散列数据;将所述散列数据分组加密,将分组加密输出结果转换成行坐标,并根据所述行坐标生成行坐标指示序列;将所述散列数据分组加密,将分组加密输出结果转换成置换指示码,利用所述置换指示码,将其32元单位置换转换为列坐标指示序列;利用所述行坐标指示序列和所述列坐标指示序列,提取公钥矩阵中的元素,并将提取的元素进行椭圆曲线运算后生成接收终端公钥或发送终端公钥;所述公钥矩阵由所述密钥管理中心下发给终端,其元素为椭圆曲线群的基点的倍点。
8.基于组合公钥算法的IPv6网络层可信传输的系统,包括密钥管理中心、发送终端和接收终端,其特征在于,所述密钥管理中心,用于向每个终端分配唯一的IPv6地址和利用IPv6地址生成的私钥,并下发利用IPv6地址计算公钥的公钥算法; 所述发送终端包括数字签名生成模块,用于利用其私钥和发送数据,生成数字签名数据; 发送模块,用于将所述数字签名数据、发送数据、源地址和目标地址封装成数据包,发送给接收终端;所述接收终端包括公钥生成模块,用于根据接收数据包的源地址和所述公钥算法算出发送终端公钥; 数字签名验证模块,用于利用所述发送终端公钥和所述数据包中的发送数据生成数字签名比对数据,验证所述数字签名数据,并根据验证结果确定数据包是否可信。
9.根据权利要求8所述的系统,其特征在于,所述发送终端还包括公钥生成模块,用于利用接收终端的IPv6地址和所述密钥管理中心下发的公钥算法算出接收终端公钥;随机数生成模块,用于生成随机数;密钥交换数据生成模块,用于将所述随机数与所述接收终端公钥相乘得到密钥交换数据,并将所述密钥交换数据送入所述发送模块和所述数字签名生成模块;对称密钥生成模块,用于利用所述随机数与椭圆曲线群的基点相乘得到用于加密明文的对称密钥;加密模块,用于利用所述对称密钥生成模块生成的对称密钥加密明文得到密文,并将所述密文送入所述发送模块和所述数字签名生成模块。
10.根据权利要求8所述的系统,其特征在于,所述接收终端还包括对称密钥生成模块,用于利用接收终端私钥和数据包中的所述密钥交换数据计算对称密钥;解密模块,用于利用所述对称密钥解密密文以还原明文。
全文摘要
本发明公开了基于组合公钥算法的IPv6网络层可信传输方法和系统,方法包括密钥管理中心向每个终端分配唯一的IPv6地址和利用IPv6地址生成的私钥,并下发利用IPv6地址计算公钥的公钥算法;发送终端利用其私钥和发送数据,生成数字签名数据,并将所述数字签名数据、发送数据、源地址和目标地址封装成数据包,发送给接收终端;接收终端根据接收数据包的源地址和所述公钥算法算出发送终端公钥,然后利用所述发送终端公钥和所述数据包中的发送数据生成数字签名比对数据,验证所述数字签名数据,并根据验证结果确定数据包是否可信。本发明实现了IPv6地址的可信认证,以及安全、及时的数据传输。
文档编号H04L9/30GK102469173SQ20101054579
公开日2012年5月23日 申请日期2010年11月15日 优先权日2010年11月15日
发明者任远, 吴作顺, 张国卿, 徐启建, 杜飞 申请人:中国人民解放军总参谋部第六十一研究所