文件名称:ibe具有认证功能算法
- 所属分类:
- 密码/编码算法
- 资源属性:
- [Windows] [Visual C] [源码]
- 上传时间:
- 2009-05-04
- 文件大小:
- 1.43mb
- 下载次数:
- 1次
- 提 供 者:
- michelle.yaer@163.com
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
1 Boneh-Franlin的IBE算法主要由四个子算法组成:Setup,Extract,Encrypt和Decrypt,分别完成系统参数建立、密钥提取、加密和解密的功能。假定消息的明文空间为 ,密文空间 。
(1)、建立: 给定一个安全参数 k蝂+
Step 1: 执行G生成一个素数q, 两个q阶群G1, G2 , 和一个可用的双线性映射 ê: G1碐1瓽2。 此外选取G1 任一生成元 P蜧1,再选取两个HASH函数 H3:{ 0, 1}n×{0, 1}n。 -?, H4:。 :{ 0, 1}n鄘0, 1}n
Setp 2: 随机选取一个 s? 令 Ppub=sP。
Step 3: 选择两个算法函数, H1: {0, 1}*?, H2: G2畕0, 1}n 。(对于安全验证,将所有的散列函数看作是随机的数据系统)。 消息空间为M= {0, 1}n。 密文空间为 C = 磠0, 1}n。 输出系统参数为 p = {q, G1, G2, ê, n, P, Ppub, H1, H2 H3, H4,}。 主密钥为 s?。
(2)、提取: 对于一个给定的字符串 Id蝱0, 1}* 算法如下:
Step 4: 计算 QId = H1(Id) ?。
Step 5: 设私钥为 SId 则 SId = (QId)s 其中s为主密钥。
(3)、加密: 利用公钥 Id加密m蜯 算法如下:
Step 6: 计算 QId = H1(Id) ?。
Step 7: 选择一个随机数 σ?。
Step 8: 设r= H3 (σ,m)
Step 9:建立密文为:c=
(4)、解密: 令c = 为用公钥加密的密文。如果U不属于 ,则拒绝该密文, 使用私钥要解密 SId? :
Step 10:计算σ=V臜2(ê(SId, U))
Step 11:得出m=W H4 (σ)
Step 12:设r = H3 (σ,m),验证U与rσ是否相等,如果不等则拒绝。
由上述算法的一般形式可以看出,基本的基于身份的广播加密机制,在解密时需要解一个n个变量的线性方程组(n为用户的数目),虽然有相对有效的方法解方程组但是对于WSN中的节点来说,需要的存储空间和计算量都太大,不适合。
针对上述问题提出了改进的基于身份的广播加密机制[17]。改进的算法不需要解方程组,它基于数学变换利用双线性的特性,在解密时只需要节点自己的私钥和已知的其他节点的公钥即可。采用了IBE算法的简要版本(simple)使用两个hash函数。对于改进基于身份认证的组播认证机制不需要解决任何的线性系统的方程和没有复杂的操作,更适用于计算和存储等能力都受限制的无线传感网络。
2 IBE算法性能分析
2.1 算法安全性
不管对于传统网络还是无线传感器网络,密钥管理方案的安全性都是首要考虑的因素,包括保密性、完整性、有效性等。
现在我们就来分析一下上述IBE算法的安全性。基于椭圆曲线的IBE算法的安全性依赖于给定P和rP条件下计算出r的难度,即求解椭圆曲线对数问题的时间复杂性。节点对明文加密后,将密文连同rP一起发出。解密密文时,当节点正常接收,只要用私钥dID经过计算就可以得到明文;当信息被攻击节点截取时,由于缺少私钥dID,攻击节点要算出密钥只能沿用发送节点的公式: ,假设攻击节点可以知道公钥QId和系统参数P和Ps,同时rP也是连同密文一起发送的,因此只要由P和rP解出发送节点选择的r,就可以得到gID。但是,解出r是几乎不可能的,所以IBE的安全性很高。
(1)、建立: 给定一个安全参数 k蝂+
Step 1: 执行G生成一个素数q, 两个q阶群G1, G2 , 和一个可用的双线性映射 ê: G1碐1瓽2。 此外选取G1 任一生成元 P蜧1,再选取两个HASH函数 H3:{ 0, 1}n×{0, 1}n。 -?, H4:。 :{ 0, 1}n鄘0, 1}n
Setp 2: 随机选取一个 s? 令 Ppub=sP。
Step 3: 选择两个算法函数, H1: {0, 1}*?, H2: G2畕0, 1}n 。(对于安全验证,将所有的散列函数看作是随机的数据系统)。 消息空间为M= {0, 1}n。 密文空间为 C = 磠0, 1}n。 输出系统参数为 p = {q, G1, G2, ê, n, P, Ppub, H1, H2 H3, H4,}。 主密钥为 s?。
(2)、提取: 对于一个给定的字符串 Id蝱0, 1}* 算法如下:
Step 4: 计算 QId = H1(Id) ?。
Step 5: 设私钥为 SId 则 SId = (QId)s 其中s为主密钥。
(3)、加密: 利用公钥 Id加密m蜯 算法如下:
Step 6: 计算 QId = H1(Id) ?。
Step 7: 选择一个随机数 σ?。
Step 8: 设r= H3 (σ,m)
Step 9:建立密文为:c=
(4)、解密: 令c = 为用公钥加密的密文。如果U不属于 ,则拒绝该密文, 使用私钥要解密 SId? :
Step 10:计算σ=V臜2(ê(SId, U))
Step 11:得出m=W H4 (σ)
Step 12:设r = H3 (σ,m),验证U与rσ是否相等,如果不等则拒绝。
由上述算法的一般形式可以看出,基本的基于身份的广播加密机制,在解密时需要解一个n个变量的线性方程组(n为用户的数目),虽然有相对有效的方法解方程组但是对于WSN中的节点来说,需要的存储空间和计算量都太大,不适合。
针对上述问题提出了改进的基于身份的广播加密机制[17]。改进的算法不需要解方程组,它基于数学变换利用双线性的特性,在解密时只需要节点自己的私钥和已知的其他节点的公钥即可。采用了IBE算法的简要版本(simple)使用两个hash函数。对于改进基于身份认证的组播认证机制不需要解决任何的线性系统的方程和没有复杂的操作,更适用于计算和存储等能力都受限制的无线传感网络。
2 IBE算法性能分析
2.1 算法安全性
不管对于传统网络还是无线传感器网络,密钥管理方案的安全性都是首要考虑的因素,包括保密性、完整性、有效性等。
现在我们就来分析一下上述IBE算法的安全性。基于椭圆曲线的IBE算法的安全性依赖于给定P和rP条件下计算出r的难度,即求解椭圆曲线对数问题的时间复杂性。节点对明文加密后,将密文连同rP一起发出。解密密文时,当节点正常接收,只要用私钥dID经过计算就可以得到明文;当信息被攻击节点截取时,由于缺少私钥dID,攻击节点要算出密钥只能沿用发送节点的公式: ,假设攻击节点可以知道公钥QId和系统参数P和Ps,同时rP也是连同密文一起发送的,因此只要由P和rP解出发送节点选择的r,就可以得到gID。但是,解出r是几乎不可能的,所以IBE的安全性很高。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
压缩包 : ibe具有认证功能算法.rar 列表 ibe具有认证功能算法/cplx.cpp ibe具有认证功能算法/cplx.h ibe具有认证功能算法/cplxecc.cpp ibe具有认证功能算法/cplxecc.h ibe具有认证功能算法/Debug/cplx.obj ibe具有认证功能算法/Debug/cplx.sbr ibe具有认证功能算法/Debug/cplxecc.obj ibe具有认证功能算法/Debug/cplxecc.sbr ibe具有认证功能算法/Debug/Ecc.obj ibe具有认证功能算法/Debug/Ecc.sbr ibe具有认证功能算法/Debug/field.obj ibe具有认证功能算法/Debug/field.sbr ibe具有认证功能算法/Debug/ibe.obj ibe具有认证功能算法/Debug/ibe.sbr ibe具有认证功能算法/Debug/main.obj ibe具有认证功能算法/Debug/main.sbr ibe具有认证功能算法/Debug/mp.obj ibe具有认证功能算法/Debug/mp.sbr ibe具有认证功能算法/Debug/MPLib.bsc ibe具有认证功能算法/Debug/MPLib.exe ibe具有认证功能算法/Debug/MPLib.ilk ibe具有认证功能算法/Debug/MPLib.pch ibe具有认证功能算法/Debug/MPLib.pdb ibe具有认证功能算法/Debug/MPLibTest.obj ibe具有认证功能算法/Debug/MPLibTest.sbr ibe具有认证功能算法/Debug/print.obj ibe具有认证功能算法/Debug/print.sbr ibe具有认证功能算法/Debug/random.obj ibe具有认证功能算法/Debug/random.sbr ibe具有认证功能算法/Debug/RunningTime.obj ibe具有认证功能算法/Debug/RunningTime.sbr ibe具有认证功能算法/Debug/vc60.idb ibe具有认证功能算法/Debug/vc60.pdb ibe具有认证功能算法/Ecc.cpp ibe具有认证功能算法/Ecc.h ibe具有认证功能算法/field.cpp ibe具有认证功能算法/field.h ibe具有认证功能算法/ibe.cpp ibe具有认证功能算法/ibe.h ibe具有认证功能算法/main.cpp ibe具有认证功能算法/mp.cpp ibe具有认证功能算法/mp.h ibe具有认证功能算法/MPLib.dsp ibe具有认证功能算法/MPLib.dsw ibe具有认证功能算法/MPLib.ncb ibe具有认证功能算法/MPLib.opt ibe具有认证功能算法/MPLib.plg ibe具有认证功能算法/MPLibTest.cpp ibe具有认证功能算法/MPLibTest.h ibe具有认证功能算法/MPLibTest1.cpp ibe具有认证功能算法/mssccprj.scc ibe具有认证功能算法/params.h ibe具有认证功能算法/print.cpp ibe具有认证功能算法/print.h ibe具有认证功能算法/random.cpp ibe具有认证功能算法/random.h ibe具有认证功能算法/readme.txt ibe具有认证功能算法/RunningTime.cpp ibe具有认证功能算法/RunningTime.h ibe具有认证功能算法/test.cpp ibe具有认证功能算法/vssver.scc ibe具有认证功能算法/运行截图.doc ibe具有认证功能算法/Debug ibe具有认证功能算法