密钥设计范文
密钥设计范文(精选10篇)
密钥设计 第1篇
公开密钥体制的运算多数包含大整数的模乘运算。例如RSA算法, 随着大整数分解理论的发展以及计算机处理性能的提高, 为了保证RSA的安全性, 其密钥的位数一直在增加。目前一般认为RSA需要1024位以上的字长才有较高的安全性, 而现今通用的CPU和嵌入式CPU多为32位或16位。因此, 在通用处理器上实现1024位大整数的运算, 其效率是较低的[1]。尤其是在智能卡处理器上, 公钥密码算法的处理效率太低已成为制约个人智能卡发展的瓶颈。
本文以RSA算法为例, 设计公钥密码处理芯片。因为RSA算法仍是目前应用最广的公钥算法, 而且在几乎所有的实用公开密钥密码系统中, 都涉及到大数运算, 模幂运算采用反复平方取模算法[2]。RSA算法实现中的大整数模乘运算对于ECC算法和DSA算法都是可以借鉴适用的。
1大整数运算的有效算法
RSA密码体制的加解密过程实际上是大整数的模幂运算。
对明文m的加密过程是:
C≡E (M) =Memod n
而解密过程则是:
M≡D (C) =Cdmod n
大整数模幂运算通过分解为一系列的大整数模乘运算实现。因此, RSA算法的实现包括大整数模幂运算的算法和大整数模乘运算的算法。
模幂算法有二进制算法以及在此基础上改进的窗口法、滑动窗口法等。但二进制模幂算法的缺点是要进行的模乘运算次数太多, 可以使用窗口法提高运算速度[3]。Montgomery模乘算法被认为是最成熟的大数模乘算法之一。
1.1大整数模幂算法
二进制模幂算法是根据指数的二进制位依次进行乘方和乘法运算的。在最坏情况下, 需进行2 (k-1) 次模乘运算 (指数e有k位, 且各位均为1的情况) , 平均需要
设窗口的长度为r 位, m=2r, 窗口法的算法描述如下:
输入:M, e, n
计算:C=Memod n
1) 预计算并存储:MWmod n, 其中, w=2, 3, , m-1
2) 将指数e分解为r位长的字Fi, 其中i=0, 1, 2, , s-1
3) C:=MFS-1mod n
4) for i=s-2 downto 0
{C:=Cmmod n
if Fi<>0 then C:=CMFimod n}
5) return C
窗口法在平均情况下, 需要进行
1.2Montgomery模乘算法描述
一般不要超过两行。大数模乘算法ab mod n是公钥密码体制RSA的核心运算。大数模乘算法所带来的极高的硬件复杂性和低效率性, 已经成为制约公钥密码体制发展和应用的瓶颈[6]。Montgomery模乘算法是计算大整数模乘的最有效算法之一。Montgomery算法是一种免除法的快速模乘运算方法, 正是为解决大数模乘运算ab mod n而提出的。
计算:a*b (mod n) ;设n为k比特的模数, 即2k-1<n<2k, (n, r) =1, 通常r=2k;r-1是r模n的逆, 即r r-1=1 (mod n) ;r r-1-n n’=1;a<n, b<n。
实际上, Montgomery算法并不是直接求两个数的模乘, 而是求Montgomery积:MonPro (a, b, r, n) =a.b. r-1mod n;
为了消除r-1的影响, 要进行预处理及后处理运算:
1)
3) Mon Pro (c, l, r, n) =c. r-1mod n=a.b mod n;
Montgomery模乘算法描述:
function MonPro (a, b)
step1 t:=a b;
step2 u:= (t+ (t n’ mod r) n) /r;
step3 if u>=n then return u-n else return u;
上述算法共进行三次大数乘法运算。当a、b和n都为512~2048位的大整数时, 大数相乘将给硬件实现带来困难, 因此必须对大数进行分解。
2RSA算法协处理芯片的设计
RSA作为一种公钥体制, 其抗攻击性是由模长 (模n的二进制位数) 来确定的。模长越长, 对其进行因子分解的计算量也就越大, 抗攻击性也就越强, 目前模及密钥的长度是768~2048位。随着模长的增加, 加解密的速度就成为RSA实现的主要问题, 设计专门的部件实现RSA具有实用意义。
2.1Montgomery模乘器 (CIOS法) 的快速硬件实现
前面给出了Montgomery模乘算法的基本形式, 但还不能直接用于硬件实现。因为算法中包含大整数的乘法运算, 设计1024位的乘法器目前是不现实的, 因此必须分解为若干次短整数的乘法。
存在多种Montgomery模乘的实现算法, 每个算法的基本思想都是将长整数的乘法运算化解为若干短整数的运算。CIOS方法至少对于通用处理器是最好的一种实现。
现在就CIOS方法进行设计说明:设算法中的大整数都采用基W (W=2W) 表示。r表示为r=2k=2sw。a、b可表示为:
a=a[s-1].Ws-1++a[0].W0
b=b[s-1].Ws-1++b[0].W0
CIOS算法描述如下:
该算法的实质是把原始的Montgomery算法的三次大数乘分解为2s2+s次w位整数乘和若干次w位整数的加法运算。因为r一般取值为r=2k, 所以t/r的运算可以通过简单的舍弃低r-1位得到, CIOS方法在每次循环中计算出ab的部分积的同时, 把t/r的运算分摊在每次循环中完成, 最后完成mod n的运算。该算法所有的运算只需要w位乘法器和2w位加法器即可完成, 便于根据不同的实现要求选取w值, 有利于硬件设计, 而且节省了存储空间, 只需要s+3个存储单元 (t[s+1], , t[0]) 。
大数a、b、n各为k个二进制位, 从数据的安全考虑, k取值应在1024比特以上, a、b、n可以表示成由s=k/w个字组成的多精度数。模乘运算a*b (mod n) 的CIOS方法的速度取决于模乘运算的时钟周期数和时钟周期长度。在采用相同设计结构的前提下, w值越大, 硬件的实现规模也就越大, 时钟周期变长, 同时所需的时钟周期越少, 运算速度越快。
w值决定了乘法器和加法器的位数, w值过大会导致芯片的实现面积和时延较大, 也会使硬件实现的复杂度增加。同时, w值增大, 也会使计算的时钟周期数减少, 在相同结构下可以提高运算的速度。因此, w的取值应该根据不同的应用需求和不同的设计结构进行选取, 可以根据不同的实现取8、16、32或64。如果w=2, 则实现中没有乘法器, 硬件实现面积最小。
通过对CIOS的Montgomery算法的观察, 算法的主要流程是两层循环, 外循环s次, 内循环s-1次。因此对于算法实现的并行流水结构, 主要对循环内的运算进行分析考虑。
算法内层循环中的 (C, S) =t[j]+a[j]b[i]+C和 (C, S) =t[j]+mn[j]+C运算可以进行并行处理, t[j] +C和a[j]b[i]在同一个时钟周期内并行处理, 然后在下一个时钟内完成两个计算结果的累加。这样可以在两个时钟周期内完成诸如t[j]+a[j]b[i]+C这类运算, 通过并行提高运算速度。而且, (C, S) =t[j]+a[j]b[i]+C和 (C, S) =t[j]+mn[j]+C是在内循环中的操作, 因此可以在并行的基础上建立两级流水线, 当前一个循环 (j=k) 进行 (C, S) =t[j]+a[j]b[i]+C的最后结果累加时 (时钟2) , 后一个循环 (j=k+1) 进行t[j] +C和a[j]b[i]的值 (时钟1) 。如图1所示。
设计中所用的运算部件以w=32为例说明:内循环中 (C, S) =t[j]+a[j]b[i]+C主要包含32bit的乘法、32bit加32bit的加法以及32bit加64bit的加法, 因此, 运算部件包括32bit加32bit的加法器、32bit加64bit的加法器和32bit的乘法器。
上面采用的两级流水线的方法有一个缺点, 就是后一级流水线的加法运算要比前一级的乘法运算快n倍, 这使得流水线的划分不均衡, 影响计算的效率。提高的方法可以通过单独采用多个乘法器计算乘法 (因为乘法运算彼此独立, 可预先同时计算) , 增加空间存储结果, 最后进行累加计算。
下面再来分析两个内层循环的算法并行性。由于内层循环的 (C, S) =t[j]+a[j]b[i]+C和 (C, S) =t[j]+mn[j]+C运算都要用到上一次循环的计算结果C, 因此试图利用直接循环展开和流水线技术来实现循环展开的流水作业是不可行的。
但是, 通过对外层循环里面的数据流程进行分析, 可以发现, 两个内层循环之间是可以采用并行处理的。每一个内层循环都是通过C进位传递依次计算t[j]的值 (从t[0]依次到t[s]) , 因此, 在第一个内层循环计算t[j]结束时, 第二个内层可以立刻开始计算t[j]的操作。这样, 在采用两级流水线实现 (C, S) =t[j]+a[j]b[i]+C和 (C, S) =t[j]+mn[j]+C操作的基础上, 可以增加一个32bit加32bit的加法器、32bit加64bit的加法器和32bit的乘法器, 实现两个内循环运算的并行处理。采用这样的并行运算不但实现了近似完全的并行处理, 同时也减少了存储器的读写操作。当第一个内循环计算完t[j]时, 不必写回存储器t[j], 而是直接存储在寄存器中, 由下一个内循环作为操作数调用, 这样可以省去一次存储器读、写操作, 节省1/2的存储器读写时间。从并行度方面考虑, 由于后面内循环t[j]的计算需要前面内循环的计算结果, 因此, 并行度提高接近但是略小于2倍。在这种方法中, 如果采用较小的w值性能会更好, 因为较小的w值意味着增加的乘法器、加法器的面积资源也较小。而且循环次数s增加, 使并行的效果更显著。
另外, 对于算法最后n约减的运算, 可以根据补码、反码的转换, 容易将减法运算转化为加法运算, 利用加法器方便地实现。
2.2RSA协处理芯片的结构
为实现以上的算法, 电路可分为四部分:模幂模块、Montgomery模乘模块、RAM存储器和运算模块。
Montgomery模乘模块主要实现Montgomery模乘 (CIOS算法) 运算以及模幂预处理的运算。模乘模块设计成一个有限状态自动机, 通过对运算模块中的加法器、乘法器的控制调用, 以及控制RAM存储器进行中间数据的存取, 实现RSA运算的核心功能。
模幂模块是RSA协处理器的顶层控制模块, 它控制Montgomery模乘模块和RAM存储器, 实现二进制窗口法的大整数模幂运算。为了降低设计的复杂度, 提高电路的效率, 采取直接的硬连线控制, 设计成一个有限状态自动机。
RAM存储器用于存储RSA运算的初始值、预处理的中间数据和最终运算结果等。由于模幂控制模块需从存储器中读取指数, 模乘控制模块需从存储器中读取操作数。为了避免冲突, 同一时刻只允许一个模块控制存储器, 用存储器控制模块协调对存储器的访问。
运算模块是RSA协处理器芯片中进行运算的模块, 包括加法器和乘法器等运算部件。运算模块主要是提高在Montgomery模乘模块的控制调用中完成基本的加法、乘法运算。
3结论
目前国内密码系统的实施中, 密码核心算法的实现基本上是在数字信号处理器 (DSP) 和嵌入式单片机上以软件方式实现的。随着高速宽带网络的发展, 对密码实施的安全性和处理速度都提出了更高的要求, 这使得密码专用芯片的研究成为信息安全领域的一个关键性课题。本文是在参加国家商用密码分组算法、HASH算法标准研制项目的过程中, 对密码芯片的设计理论和技术进行了研究, 在具体工作的基础上形成的。本文主要探讨了公钥密码处理芯片的设计理论和技术, 重点内容是公钥密码芯片的设计以及RSA大整数模乘的快速硬件实现, 其中采用了加法与乘法并行运算以及多级流水线技术以提高性能, 较大地减少了运算时间, 显著提高了模乘器的运算性能。
摘要:以RSA算法为例, 探讨公钥密码处理芯片的设计与优化。首先提出公钥密码芯片实现中的核心问题, 即大整数模幂运算算法和大整数模乘运算算法的实现;然后针对RSA算法, 提出Montgomery模乘算法的CIOS方法的一种新的快速硬件并行实现方法, 其中采用加法与乘法并行运算以及多级流水线技术以提高性能, 较大地减少乘法运算时间, 显著提高模乘器的运算性能。
关键词:密码芯片,RSA算法,并行与流水线,Montgomery模乘
参考文献
[1]Koc C K.RSA Hardware Implementation[J].RSA Labs Technical Re-port TR-801 v1.0, August 1995:201-208.
[2]Koc C K.High-Speed RSA Implementation[J].RSA Labs TechnicalReport TR-201 v2.0, November 1994:150-157.
[3]Montgomery P L.Modular multiplication without trialdivision[J].Mathematics of Computation, 1985, 44 (170) :51-95.
[4]Kaya Koc C, Acar T, Kaliski BSJr.Analyzing and Comparing Mont-gomery Multiplication Algorithms[J].IEEE Micro, 1996, 16 (3) :26-33.
[5]Tiountchik A A, Trichina E.RSA Acceleration with Field Programma-ble Gate Arrays[J].Information Security and Privacy, LNCS, 1999, 1587:164-176.
密钥设计 第2篇
【摘 要】商品包装动态密钥防伪系统克服了普通静态防伪方式的种种缺陷,有着无可比拟的优势。本文首先从包装防伪的承载对象、信息表现形式和鉴别方式这三个要素对目前流行的主要包装防伪技术进行了比较分析,然后对基于RFID和云计算的商品包装动态密钥防伪系统从系统架构和系统组成两方面进行了设计分析,最后总结得出动态密钥防伪的高安全性。
【关键词】RFID 云计算 动态密钥 防伪系统
引言
近年来广大消费者及许多企业饱受假冒坑害之苦,有关调查资料表明,90%以上的消费者和几乎所有名牌产品的生产企业均曾受到过假冒的侵扰。
如何“防伪防假”、“识伪识假”是企业和消费者都很关心的课题。企业花了很大力气,采用各种技术手段防伪,可是造假者想方设法突破防伪。一般的防伪手段一直难以区分复制品,且验伪方法复杂,不易于掌握和推广,已经不能适应现代市场环境的需求[1]。
因此,需要一种创新的有效的防伪技术手段让造假者无法造假。本文主要探讨了在商品包装中如何利用RFID、云计算和动态密钥技术对商品进行有效防伪。
1 主要包装防伪技术
下面将从防伪的承载对象、防伪信息的表现形式和防伪的鉴别方式三个方面对主要包装防伪技术做一介绍。
1.1 防伪载体
目前,市面上通常使用的防伪载体有防伪标、防伪卡、防伪包装、RFID标等。
防伪标又名防伪商标,是能粘贴、印刷、转移在标的物表面、包装或附属物上具有防伪作用的标识。比如普通商品上的铭牌或者挂牌等。
防伪卡就是企业设计出的防止伪造的卡片,防伪卡一般使用众多的防伪技术以防伪造,常见的信用卡就是一种防伪卡。
防伪包装目前有二种方式,一种是直接把标贴在包装上,一种是与包装融合为一体,也就是防伪包装一体化,常见的防伪包装有在包装盒上加贴防伪标签,在包装盒封口上加贴防伪防揭封条,在包装盒外使用激光全息薄膜封装等。
RFID標一般都附着在标的物体上,以标识目标对象,它能存储关于此物体的详细信息,现已被广泛地应用于供应链管理、物流跟踪等各个行业[2]。
1.2 表现形式
防伪信息的表现形式主要有镭射图、二维码、反光水印、RFID芯片标签等。
镭射图,又叫激光全息图,目前激光全息图主要包括彩色全息图、合成全息图、密码全息图。全息图像由于综合了激光、精密机械和物理化学等学科的最新成果,技术含量高,而且,对多数小批量伪造者而言,全套制造技术的掌握和制造设备的购置难以做到,因此此种技术的防伪效果是显著的。
二维码是用某种特定的几何图形按一定规律在平面(二维方向)分布的图形上记录数据符号信息,能够以隐含方式存放被防伪对象的信息进行防伪[3]。
反光水印是指在反光材料上制作的水印,在某个特定的观察角度时可以显现预设的图案和文字,具有简单识别的优势能力,使用时只需转动角度,通过裸眼直视,即可准确地鉴别,是很有效的防伪手段之一。
RFID芯片标签内嵌有芯片,芯片内存储有全球唯一的不可改写的ID号码,还可以存储商品属性数据,我们利用这些存储资源,一方面可以实现防伪认证,另一方面还能实现数据的存储和传递[4]。
1.3 鉴别方式
鉴别方式主要包括消费者的直接观察、触摸、号码查询、阅读器读取等。
显然,镭射图、反光水印等技术的鉴别方式是观察和触摸,二维码可以使用号码查询,而RFID芯片标签则需要专门的阅读器读写。
2 基于RFID和云计算技术的商品包装动态密钥防伪系统设计分析
镭射图形、二维码、反光水印、动感密文和变色荧光等防伪方式的识别信息都是静态的,只要商品一出厂,造假者就可以仿造这些防伪载体,无论标识多复杂,很快就能“山寨”出来,摆脱不了被仿冒的命运。例如刮开序号查询的方式,冒仿者通过在销售点刮开一些产品序号, 抄录后再按这些序号及其规律大量仿制,结果上网查询的结果都是正品。因此,必须设计一种动态的基于密钥体制的防伪系统,下面要介绍的基于RFID和云计算的商品包装防伪系统就是这样一种动态密钥防伪系统。
2.1 动态密钥防伪系统架构
基于RFID和云计算的商品包装动态密钥防伪系统原理机制如图所示[5]。
首先,初始化RFID芯片向防伪芯片写入初始密钥,再由鉴定防伪终端读取芯片,然后,将芯片的序列号、鉴定次数、日期时间等相关商品属性信息写入芯片和后台数据库,芯片和数据库内容保持一致。每一次鉴定的时候,通过终端读取的芯片信息和从网络数据库获取的信息如果一致,则鉴定通过,同时,把芯片的序列号、鉴定次数、日期时间等相关商品属性信息由控制中心生成新的密钥,写入芯片,写入后台数据库;如果不一致,则说明此防伪芯片非法。因为每一次鉴定操作时,芯片和后台中的密钥等信息都成了全新的信息,所以说,即使有人复制了相同的防伪芯片出来,所有的复制品也都将无法通过系统的验证,成为一堆废品。
2.2 动态密钥防伪系统组成
动态密钥的实现,需要以一个物联网验证体系作为基础。该验证体系主要由控制(含数据)中心、通讯网络、终端设备(含芯片)3部分组成。
(1)控制中心(含数据)是本防伪系统的核心,主要通过云计算、云存储技术实现。它的任务就是完成所有防伪的各项控制机制与流程、数据交换、数据存储、安全机制、实时信息发布与监控等,属于信息处理环节。
(2)通讯网络。进行商品鉴定,必须能够实现多终端接入,包括互联网、移动互联网和电话的接入,以保证每一个只要能上网和打电话的地方都能链接到验证鉴定中心。
(3)终端设备(含芯片)。多种终端设备指的是立柜机、壁挂机、NFC手机、便携式RFID终端等,以广泛适应于各种区域和场所,为广大用户提供便利。RFID 芯片是动态密钥的基本载体,用来存储商品相关信息。
结语
基于RFID和云计算技术的商品包装动态密钥防伪系统和传统的静态防伪技术相比,防伪鉴定由芯片数据和数据库数据共同决定,因此使得即使芯片被伪造,也无法正确匹配查询数据库里数据,所以可以达到高强度的防伪。
参考文献
[1]何飞,李开盛.浅析动态密钥对茅台酒防伪的作用[J].酿酒科技,2013,02:122-124.
[2]刘冬生,邹雪城,刘政林,金海. RFID标签芯片的最新研究进展[J].微电子学,2007,06:779-784.
[3]肖朝晖,纪钢.条码技术及其在包装防伪中的应用[J].包装工程,2005,03:68-70.
[4]唐毅.基于RFID技术的贵重商品防伪系统的研究[J].计算机应用与软件,2014,09:86-89.
密钥设计 第3篇
云计算将大量计算资源、存储资源与软件资源链接在一起,形成巨大规模的共享虚拟IT资源池,为远程计算机用户提供“召之即来,挥之即去”且似乎“能力无限”的IT服务[1]。它具有超大规模、虚拟化、通用性等特点,同时为实现用户信息资产安全与隐私保护带来极大的冲击与挑战。密码技术是解决这一安全问题的有效方法之一,而密钥管理是密码技术的核心问题,因此密钥管理成为保障云计算安全的重要技术。
公钥基础设施PKI(Public Key Infrastructure)是传统公钥管理的主要方法之一。它的核心组成是CA(Certificate Authority),通过为用户公钥签发公钥证书来保证系统中用户公钥的真实性和有效性。公钥证书较好地解决了公钥的真实性和有效性问题,使得PKI能够为网络用户提供较好的安全服务。但是对于云计算来说,PKI无法直接部署,有两个原因:(1)云计算覆盖范围广、用户众多,云计算需要提供统一的、标准的密钥管理服务,而各个国家地区的PKI技术标准不同,存在数据格式以及传输协议的差异,互操作性差;(2)需要在客户端安装复杂的工具包,且所有的操作都需要在客户端执行,资源开销很大,部署应用困难,严重影响云计算服务器的效率。
XML密钥管理规范(XML Key Management Specification,简称XKMS)在应用程序与PKI之间建立一个抽象层,屏蔽了PKI底层技术,允许用户使用不同的PKI解决方案,解决了不同PKI系统之间的互操作性问题。文献[2]讨论了XKMS安全性问题,通过在每条消息中添加序列号来防止重放攻击。文献[3]提出了两种方法来解决XKMS消息传输安全性:一是使用边界传输协议的安全服务;二是使用一个没有安全特征的传输层协议。文献[4]通过两阶段协议提供对拒绝服务攻击的保护,并且提出了通过消息签名、身份识别码、撤销码和恢复授权码来分别实现客户端和信任服务的身份验证。文献[5]分析研究了XKMS安全信道的问题,提出三种建立安全信道的方式:XML签字、传输层安全(如SSL、TLS等)和网络层安全(如IPSec)。但是,目前对于XKMS在云计算环境下还没有进行研究。本文通过研究云计算环境的特殊性,基于改进的XKMS建立了四层云计算密钥管理架构,设计了各部分模块,提出了基于信任域的工作模式,最后分析是否满足云计算密钥管理需求。
1 云计算密钥管理架构
1.1 云计算密钥管理特殊性
虚拟化是云计算的关键技术之一,它允许在同一台物理服务器上同时运行多个用户虚拟机。由于每个用户的需求不同,就使得云计算存在以下几个特性:(1)虚拟机中的操作系统不同;(2)一个虚拟机可能存在几种身份,而且每个身份的安全等级会不同;(3)用户对不同的服务,定制的服务质量不同。同时,云计算还具有虚拟机快速部署和动态迁移的特性。
云计算这些不同普通网络的特性,对密钥管理也提出了更高的要求:
(1)云提供商需要提供能够面向不同操作系统和不同密钥管理技术标准的密钥管理客户端,同时该客户端可以快速安装、配置;
(2)要保证密钥在虚拟机迁移过程中和完成后的安全性和可用性;
(3)不同等级间密钥的访问控制更加复杂。
1.2 XKMS概述
XKMS协议由两部分组成:XML密钥信息服务规范(X-KISS)和XML密钥注册服务规范(X-KRSS)。X-KISS和X-KRSS都是按照XML Schema结构化语言定义的,都使用简单对象访问协议(Simple Object Access Protocol,SOAP1.1)进行消息的通讯,它们提供的服务和消息的语法定义都遵守Web服务定义语言(Web Service Definition Language,WSDL1.0)[6]。
X-KISS定义了密钥的信息服务规范,它向密钥使用者提供密钥信息服务,任何客户端实体都可以使用此服务。XKISS提供两种服务:查询和验证。
X-KRSS定义了密钥的管理服务规范,它向密钥管理者提供密钥管理服务,客户端实体在使用该服务之前首先必须通过信任服务的身份验证。XKRSS提供四种服务:注册、重新发布、撤销和恢复。
1.3 云计算密钥管理架构
由于云计算是分布式计算、互联网技术、大规模资源管理等技术的融合与发展,因此其密钥安全性需求更高,管理难度更大。文献[7]中认为,云计算中密钥管理面临的问题和挑战包括:安全密钥存储、密钥访问、密钥备份和可恢复性。它建议密钥管理从云服务提供者中分离出来,这样在经过法律授权需要提供数据时,可以保护云服务提供者和云用户免受冲突。文献[8]提出的云计算密钥管理框架由云计算密钥客户端和云计算密钥管理服务器组成,基于统一管理框架和机制提供全面、有效的云计算密钥管理服务。
目前,云计算以计算中心的方式分布在世界各地,而现有的PKI具有明显的区域性和行业性特征相,因此云计算可以利用现有的PKI提供者来提供密钥管理服务。
根据云计算部署模式,本文设计了四层云计算密钥管理架构,包括密钥管理客户端、信任服务、密钥管理服务中心和PKI提供者。如图一所示。
此架构涵盖四个管理层次,范围从小到大分别包括:虚拟机、云计算物理服务器、云计算中心和整个云。
以中国云计算为例,北京云计算中心、河南云计算中心、广东云计算中心等,形成整个中国云;相对应的,有北京CA、河南CA、广东CA等,作为底层PKI提供者。每个CA分别为本地区的云用户颁发证书。
1.4 模块设计
以上介绍了云计算密钥管理架构,下面介绍各部分的模块组成。
(1)密钥管理客户端部署于云用户虚拟机中,负责将用户应用程序所需的信任服务以soap消息的格式发送给信任服务器端,接收并解析信任服务器端的应答消息,向应用程序提供请求消息的处理结果。它包括:客户端应用交换接口、消息构造/解析模块、加密/解密算法模块、XML签名模块、可信证明模块以及信任服务交互接口。
(2)信任服务器端部署于云计算应用服务器中,属于一个独立的虚拟域,负责接收客户端发来的请求并回复、与密钥管理中心进行通信。信任服务体现了一种“软件转化为服务”的思想,它作为PKI提供者的“代理”,承担了很多原先由PKI用户完成的密钥/证书的操作,如证书解析、LDAP目录访问、CRL等等。云用户不再需要安装、运行庞杂的PKI客户端软件,而只需要使用一种单一的客户端软件,就可以以“享受服务”的方式获取密钥/证书信息。它包括:客户端交互接口、消息解析/构造模块、证书验证模块、XML签名模块以及密钥管理中心交互接口。
(3)密钥管理中心处于云的逻辑边界,是云计算与外界PKI联结的管理中心,负责将云计算中的密钥管理请求整合、调度,并转发至PKI。包括:信任服务交互接口、消息构造/解析模块、任务调度模块、可信证明模块以及PKI交互接口。如图二所示。
1.5 云计算密钥管理方案
(1)系统初始化。系统初始化包括用户端、信任服务端、密钥管理中心和PKI的密钥参数的确定。
(2)用户密钥注册。用户端提交注册请求到信任服务端,信任服务端对消息进行解析并通过数字签名进行验证,之后提交到密钥管理中心,密钥管理中心将请求分配到相应的底层PKI,最后PKI为用户颁发数字证书。信任服务端将用户数字证书保存在本地证书库,供以后查询。
(3)密钥查询。客户端发送
(4)密钥迁移。随着用户虚拟机的迁移,用户密钥也要迁移。密钥管理中心通知原虚拟机所处的信任服务A迁移目的信任服务B,首先信任服务A与B进行身份认证和可信证明,然后信任服务A利用B的公钥加密用户的密钥,传输给B;B收到后用自己的私钥解密,密钥迁移过程结束。这样,通过信任服务之间传输用户密钥,避免了通过密钥管理中心迁移密钥产生的瓶颈问题。
2 基于信任域的工作模型
信任域[9]是公共控制下或服从一组公共策略的系统集,简单来说就是信任的范围。识别信任域及其边界对构建PKI很重要。由于信任的建立实质上取决于实体之间的关系,因此在定义信任域边界和信任关系时,实体之间的主观判断起到了更重要的作用。
本文的信任域包含两层含义:(1)处于同一个云计算服务器内的虚拟机为第一层信任域,以信任服务器为信任锚;(2)处于同一个底层PKI服务范围的虚拟机为第二层信任域,以PKI的CA为信任锚。根据云计算特点以及PKI各信任模型的优缺点,各PKI通过混合信任模型建立信任关系。根据信任域的两层含义,参考文献[10]中提出的两种应用模型,将云计算密钥管理服务分为三种工作模式:处于同一信任服务器的信任域的工作模式;处于同一PKI的信任域的工作模式;处于不同PKI的信任域的工作模式。下面以证书验证请求/响应为例分别说明三种工作模式。
2.1 同一信任服务器域内证书验证
虚拟机发送验证请求到信任服务,信任服务通过查询本地证书库和CRL来对证书进行验证。这里的信任根是信任服务。如图三所示。
2.2 不同信任服务器间证书验证
虚拟机发送验证请求到信任服务,由于信任服务本地证书库和CRL中没有所请求验证的密钥,所以将请求转发到PKI进行验证,并将验证结果返回到信任服务。这里的信任锚是PKI的CA。如图四所示。
2.3 不同PKI提供者之间的证书验证
验证请求到达PKI后,PKI通过桥CA发布的交叉认证证书与其他PKI建立信任关系,验证证书路径,并将结果返回至信任服务。
3 性能和安全性分析
3.1 信任服务模式
信任服务分为代理方式和混合方式两类[2]。
(1)代理方式:仅作为应用程序与PKI解决方案之间的中间层,本身不进行密钥生成、证书签发等操作。仅负责对客户端用户身份的认证,根据XKMS请求与特定的PKI提供者进行交互。这种方式实现简单,安全风险比较小。缺点是用户数量比较少时,与PKI提供者间进行交互所需的通信时间在响应时间中所占比重较大。
(2)混合方式:具备密钥/证书管理功能,是某一类型的PKI提供者,在一定程度上可以担任CA的角色进行证书的签发。如果请求消息的密钥、证书是可以直接处理的,则不再与其他PKI提供者进行交互。这种方式当用户多数是自PKI服务的使用者时,效率比较高,同时由于本身能够提供对密钥证书的处理,可以不依赖其他PKI提供者实现全部的XKMS服务。
根据部署情况,本文采用混合方式的信任服务,但与文献[2]不同,这里的信任服务只提供PKI的验证、查询功能,不提供密钥产生和证书签发服务,在一定程度上增加了信任服务的工作效率,并减少了信任服务的安全威胁。
3.2 异步响应
XKMS支持两种处理模式:同步处理模式和异步处理模式。
(1)同步处理模式:消息发送者在发送消息以后,必须接收到响应者的响应才能继续其他的工作,否则只能处于等待状态。同步传输模式的最大优点在于简化了网络通信的过程,易于实现,而且安全性比较高,对通信双方没有特殊的功能要求;其主要缺点是运行效率比较低,消息发送方在得到响应消息之前必须处于等待状态,这是对资源的一种浪费。
(2)异步处理模式:消息发送者不需要接收者的响应或者不需要接收者立即响应,发送者在完成发送后即可进行其他操作,等接收者处理完请求以后,消息发送者才提取结果。这种机制效率比较高,但它实现起来比较复杂。
针对本文提出的四层密钥管理架构,每层之间的传输需要一定的时间和宽带资源,加之云用户众多、密钥请求数量大,无法保证每个请求都能够及时接收到应答,因此采用异步处理模式。在请求发出后,发送者会定期向服务器发送状态查询Status Request,服务器回复状态查询结果Status Result。直到请求消息处理完成后,服务器以Pending Result返回处理结果。
3.3 可信证明
在云计算环境下,XKMS信任服务作为一个Web服务提供给用户。由于在云环境中,XKMS的客户端处于云服务器的虚拟机中,而虚拟机处于用户的掌控之外,而且没有明确的物理边界,相对于目前普遍使用的个人电脑来说,系统安全性较弱,更容易受到攻击。如果用户在虚拟机遭到攻击的情况下仍然使用密钥管理服务,那么密钥的安全性会大大降低。因此在使用密钥管理服务之前,确保用户虚拟机安全和信任服务器可信是很重要的。基于TPM的可信证明,在客户端申请信任服务之前,增加客户端和信任服务之间相互的可信证明,确保服务的安全性和可靠性。这里客户端的可信包含两个方面:一是虚拟机平台的可信;二是客户端软件的可信。
文献[11]综合阐述了多种可信证明方法,并从证明对象、证明时机等多个角度对这些证明方法进行分析和比较。针对云计算的虚拟化特点,既要证明平台的可信,又要证明应用程序的可信,所以本文利用一个可信虚拟监控器(Trusted Virtual Machine Mointor,简称TVMM)把一个不可篡改的硬件平台转换成为多个虚拟机,并且这些虚拟机彼此被隔离。在现有的技术中,我们可以在云计算服务器中加入可信平台模块(TPM)来作为不可篡改的硬件平台,将其虚拟化为多个v TPM,并利用TVMM进行管理。在程序执行之前,利用每个虚拟机中的v TPM进行完整性度量,保证平台和应用程序在安全、可信的情况下才能进行通信。
4 实验分析
本节对于本文提出的云计算密钥管理方案进行试验仿真。采用澳大利亚墨尔本大学的网格实验室和Gridbus项目提出的云仿真平台Cloud Sim作为试验仿真工具,使用版本为Cloud Sim-2.1.1,并建立100个虚拟机。将这100个虚拟机平均分为两类:一类虚拟机安装XKMS客户端,采用本文提出的密钥管理架构和方案;另外一类安装PKI客户端,直接与底层PKI通信。并分别进行密钥注册、密钥查询、密钥迁移等操作。对其执行过程的平均完成时间(T)、平均通信量(I)、平均占用虚拟机内存(M)的情况进行监测,结果如表一所示。
监测结果显示,本文提出基于XKMS密钥管理方案相对于传统PKI系统来说,在密钥注册、查询和迁移过程中所需要时间和消耗的资源更少,在性能上更优。
5 结束语
本文针对目前云计算尚缺乏完整的、统一的密钥管理方案的问题,提出了基于XKMS的四层云计算密钥管理架构,该架构包括信任服务客户端、信任服务器、密钥管理服务中心和PKI提供者,将传统PKI作为云计算密钥管理的底层服务者,而且利用XKMS作为应用程序与PKI之间的抽象层,屏蔽了PKI的底层技术的差异性,提高了云计算密钥管理的互操作性。本文还针对此架构设计了各部分模块功能,根据不同信任关系设计了三个工作模式。最后,分别从三个方面分析了该架构的性能和安全性,并通过比较,从多种方案中选择出较优的方案。
在下一步工作中,将进一步细化各模块的设计,并就各模块之间的协议进行研究。同时,就信任服务客户端和信任服务器端之间、信任服务器端和密钥管理中心之间的可信证明和身份认证作更进一步进行研究,保证整个系统的安全性。
摘要:基于密钥管理系统管理架构是云计算中各虚拟机提供密钥的产生、分配、验证和撤销服务,是保证云提供商和用户信息安全的基础。本文针对目前云计算环境中尚缺乏一个完整的密钥管理方案,分析了云计算环境密钥管理的特殊安全需求,基于XML(eXtensible Markup Language)密钥管理规范建立了云计算密钥管理框架。首先,设计了云计算密钥管理架构以及各部分模块功能;其次,提出了基于信任域的工作模式;最后,对系统进行了性能和安全性分析,并提出相应的解决方案。通过实验分析结果表明,该方案相对于传统PKI系统性能更高,能够更好地满足云计算密钥管理需求。
关键词:云计算,密钥管理,XML密钥管理规范,信任域,模块设计
参考文献
[1]冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,22(01):71-83.
[2]张啸农.基于XML的密钥管理体系的研究[D].长沙:长沙理工大学,2007.
[3]尹辉.XML密钥管理系统的研究与设计[D].郑州:郑州大学,2006.
[4]高功应.一种基于XKMS的密钥管理模型研究[D].武汉:华中科技大学,2006.
[5]陈越,任年民,兰巨龙.XML安全技术及一个新的基于XML的Web安全模型[J].计算机科学,2004,31(B09):95-97,125.
[6]P Hallam-Baker.XML Key Management Specification(XKMS2.0).W3C Working Draft.http://www.w3.org/TR/2005/REC-xkms2-20050628/.2005.
[7]Jerry Archer.Security Guidance for Critical Areas of Focus in Cloud Computing V2.1.Cloud Security Alliance,www.cloudsecurityalliance.org/guidance2009.
[8]孙磊,戴紫珊,郭锦娣.云计算密钥管理框架研究[J].电信科学,2010,(09):70-73.
[9]关振胜.公钥基础设施PKI及其应用[M].北京:电子工业出版社,2008.
[10]陈莉,张浩军,祝跃飞.XKMS的应用研究[J].计算机应用研究,2006,23(09):116-118.
开启“一带一路”的密钥 第4篇
对于“一带一路”实施,国家从五个方面进行了全面的部署,分别是政策沟通、设施联通、贸易畅通、货币流通、民心相通。
政策沟通:沿线各国可以就经济发展战略和对策进行充分交流对接,共同制定推进区域合作的规划和措施,协商解决合作中的问题,共同为务实合作及大型项目实施提供政策支持。
设施联通:要优先打通缺失路段,畅通瓶颈路段,提升道路通达水平;能源方面,推进跨境电力与输电通道建设,积极开展区域电网升级改造合作;通信方面,共同推进跨境光缆等通信干线网络建设,畅通信息丝绸之路,规划建设洲际海底光缆项目。
贸易畅通:要解决投资贸易便利化问题,消除投资和贸易壁垒;加快边境口岸“单一窗口”建设,降低通关成本,提升通关能力;挖掘贸易新增长点,促进贸易平衡;加快投资便利化进程,消除投资壁垒;拓展相互投资领域,推动新兴产业合作;中国欢迎各国企业来华投资,鼓励本国企业参与沿线国家基础设施建设和产业投资。
货币流通:应扩大沿线国家双边本币互换、结算的范围和规模;共同推进亚洲基础设施投资银行、金砖国家开发银行筹建,有关各方就建立上海合作组织融资机构开展磋商;加快丝路基金组建运营;支持沿线国家政府和信用等级较高的企业以及金融机构在中国境内发行人民币债券;符合条件的中国境内金融机构和企业可以在境外发行人民币债券和外币债券,鼓励在沿线国家使用所筹资金。
民心相通:中国每年将向沿线国家提供1万个政府奖学金名额,联合申请世界文化遗产,提高沿线各国游客签证便利化水平,支持沿线国家申办重大国际体育赛事;医疗卫生上,提高合作处理突发公共卫生事件的能力,为有关国家提供医疗援助和应急医疗救助,扩大在传统医药领域的合作;科技合作上,共建联合实验室(研究中心)、国际技术转移中心、海上合作中心,合作开展重大科技攻关。
行业层面
纺织行业作为传统的“丝绸之路”的代表,在目前的“一带一路”的建设中依然承载着重大责任。那么纺织产业如何利用自身优势,在“一带一路”中抢占先机呢?对此,武汉纺织大学教授胡星辉认为,一带一路沿线省市应该与各个省市的上下游进行战略合作,形成一条闭合式的完整产业链,共同分享“一带一路”所带来的机遇。而在海外进行布局的纺织企业,则要清楚分析海外资源和市场对企业自身发展的利弊,尽量利用收购与兼并的方式在海外投资。
各省市:应共同分享机遇
各省市的纺织行业不要形成恶性竞争,应根据各省市的特点进行专业化的发展。“一带一路”沿线省市应该结合各自省市纺织行业的特点发展。与各个省市的上下游进行战略合作,形成一条闭合式的完整产业链,共同分享“一带一路”所带来的机遇。在西北地区陆地丝绸之路的省市重点发展棉花种植、原材料,利用海外的拓展和省内优势保障国内纺织企业的原材料供给;沿海地区海上丝绸之路的省市应当利用地理区域优势加大纺织品牌的打造,结合“中国制造2025”契机实现纺织企业智能化生产,帮助企业加大海外市场的投入,使企业能走出去。各省市的纺织行业要相互合作形成一家或几家全方位、立体化、网络化的大型纺织企业,能有力地与国外企业在全球市场上形成竞争。
纺织企业:利用收购与兼并方式投资
目前我国国内许多纺织企业在生产、管理上已经具备了较高的水平,但由于国内的市场和环境各方面限制原因无法发挥企业之间1+1﹥2的效应。现在国家实行“一带一路”的战略,给予一定的政策、资金、人才支持,加强外部硬件环境的建设与软实力打造,这对于企业走出去加大投资与合作有着很大的帮助,可通过其他国家与企业合作投资的机会发挥协同效应。
但是纺织企业走出去投资并不是完全没有风险,仍有许多问题需要注意。在海外布局中纺织企业首先要具有大视野和国际观,清楚分析海外资源和市场对企业自身发展的有利之处,不要盲目地非理性地进行海外投资。
其次,企业之间应该相互抱团,以协会的形式去海外考察和投资,单个企业很难开展海外考察和投资,如果企业之间能相互合作抱团在海外地区投资就可以形成上下游关系,相互之间保障企业在海外市场的所需。
最后是企业对海外投资应注重本土化战略实施,尽量利用收购与兼并的方式在海外投资,这种方式有利于企业在海外本土化的战略实施。充分了解当地政治、经济、文化、社会、法律,提供充分的就业岗位,这样能更多地得到当地政府的支持,帮助企业在海外的发展。
密钥设计 第5篇
Web服务技术是一种新的用于分布式环境中的计算模式, 在企业系统集成、电子商务等各方面已经展示出了广阔的应用前景, 得到了众多厂商的支持。Web服务作为一种新兴技术, 安全问题成为其突出问题。由于Web服务是经由Internet来进行信息交换, 存在着信息丢失、被窃听、被篡改等安全性风险, 而且SOAP、UDDI、WSDL等核心规范并不直接提供安全保护机制。W e b服务通常使用简单对象访问协议 (Simple Object Access Protocol, SOAP) 作为消息封装机制。S O A P没有定义底层传输协议, 而现有的实现基本都采用HTTP协议, 因此Web服务应用常常使用HTTP的安全机制 (如SSL) 来保证安全。HTTP的安全机制对于Web服务来说, 还有很多不足, 比如它只能对消息整体进行加密, 不能有选择地进行处理;只能提供传输层的安全, 不能提供端到端消息级的安全。而SOAP消息在到达最终接收点前, 可能会经过多个中间处理节点, 显然这样的安全机制不能满足Web服务的需求。鉴于此, IBM、微软和VeriSign联合推出了Web服务安全标准 (WS-Security) , 用于保证SOAP消息的安全。
WS-Security并不是Web服务安全问题的一揽子解决方案, 它只是定义了如何在SOAP消息中传递安全令牌 (安全令牌表示Client所作的一组声明, X.509证书、Kerberos票据等都是经过权威签名的安全令牌) , 以及如何对SOAP消息进行加密 (XML加密, XML-Encryption) 和签名 (XML签名, XML-Signature) 处理。诸如安全上下文的建立、密钥交换、信任关系的建立等问题并不在此标准的考虑范围之内, 虽然这些问题的解决可以此标准为基础。
本文设计了一个安全协议, 可使服务提供者和使用者方便地进行身份认证和密钥协商。
1 Web服务体系结构
Web服务是由URI标识的软件系统, 其公共接口是使用XML进行定义和描述的。其他的软件系统都可以和这些使用XML的软件系统进行交互。它的定义与W3C中Web服务体系结构小组的定义非常接近。图1就说明了这种体系结构定义。
由图1所反映出的核心信息包括:
(1) Web服务体系结构围绕着XML技术而建立。
(2) Web服务与下层传输机制无关。
(3) 使用者与服务之间的消息交换形成了Web服务体系结构的基础层。
(4) 消息使用“封套”进行打包及交换, 这些封套包括SOAP及其扩展模型。
(5) 对交换的消息以及交互模式的高级描述。这种描述可由任意选择的描述性语言给出。其中, 最引人注目的是Web服务描述语言, 简称WSDL。
(6) 我们可以围绕体系结构模型建立大量的技术。
(7) 其他值得注意的特征是安全和管理, 这是所有的水平体系结构组件所需要的。
2 SOAP及WS-Security
2.1 简单对象访问协议SOAP
SOAP是一种简单且轻量的基于XML的机制, 它用于创建网络应用中进行交换的结构化数据包。
SOAP规范定义了下列基本组件:
(1) 封套, 定义了描述消息结构的框架。
(2) 编码规则集, 表示应用程序定义的数据类型的实例。
(3) 约定, 用于表示远程过程调用 (Remote Procedure Call, RPC) 及响应。
(4) 通过HTTP使用SOAP的规则集。
(5) 消息交换模式 (Message Exchange Pattern, MEP) , 例如请求-响应, 单向传输以及对等会话等。图2展示了简单SOAP消息格式。
正如图2所示, SOAP消息用SOAP:Envelope打包, SOAP:Envelope由零个或多个SOAP头以及一个SOAP体组成。SOAP体和SOAP头可以进一步分为小块。当SOAP体是最终接收者所预期的时候, 那么SOAP头就可以由SOAP的中间介质进行解释。图3展示了这样的消息交换模式。
SOAP头携带诸如安全、会话信息、相关性方面的信息。中间介质可以作用于这些头或者加入更多的块来改变它们, 或者不对它们作任何改变。
SOAP还定义了下面几个属性:
(1) encodingStyle。指定SOAP消息的串行化规则 (数据元素的编码规则) , 它可出现在任何一个元素中, 作用于该元素及其没有指定encodingStyle的子元素。
(2) Actor。一个SOAP消息在到达最终接收点之前, 可能会经过多个中间处理者, Actor属性用于指示Header元素的接收者。
(3) mustUnderstand。用来指示一个Header元素对于接收者是强制性的还是可选的, 若为强制性的, 接收者必须能够处理此Header元素, 否则处理必须失败;若为可选的, 则接收者可选择对此Header元素是否进行处理。
2.2 Web服务安全标准WS-Security
WS-Security规范实际上是对SOAP协议的扩展。WS-Security定义了一系列元素, 支持对消息进行加密和签名处理, 以及传递安全令牌, 这些元素被加入SOAP头 (SOAP Header) 中随消息传送。如果要进行身份认证, 消息的发送者需传送能证明自己身份的安全令牌给接收者, WS-Security定义了三种元素来支持安全令牌的传送。
(1) UsernameToken元素。用来传递发送者的用户名和密码, 其语法定义如下:
其中Username元素和Password元素分别用来表示用户名和密码, Password的Type属性表示密码的类型, 标准定义了两种类型:PasswordText (明文) 及PasswordDigest (密码的SHA1Hash值) 。这是非常简单的身份认证过程, 但是在网络传输的过程中可能会导致泄密的问题。大多数情况下, 这些令牌将以类似于SSL的加密传输网络连接进行传输。
(2) BinarySecurityToken元素。用于传递二进制编码的安全令牌, 如X.509证书和Kerberos票据。下面是其语法定义:其中Id是令牌的一个标志符;EncodingType是令牌的编码方式, 标准预定义了Base64及十六进制两种编码方式;Value-Type表示令牌的类型, 包括X.509证书和Kerberos票据两种类型。
(3) SecurityTokenReference元素。此元素指定令牌的位置, 接收者根据其中的URI可取得令牌。通过此元素发送者向接收者间接地传递了令牌。下面是其语法定义:
3 身份认证和密钥协商协议
身份认证是Web服务安全中的一个核心问题, 我们设计了一个安全协议, 用于解决Web服务中的身份认证和密钥协商问题。
3.1 基于X.509证书的挑战应答协议
用基于X.509证书进行认证时, 声称者不仅需要提供证书, 还必须提供自己拥有相应私钥的证据。解决此问题常用如下的挑战应答协议:
其中A表示客户端, B表示服务器端, IDA表示A的标识, NB为B产生的随机数, 表示A对的签名, Cert (A) 表示A的证书。
挑战-应答协议需要客户端和服务器端间有三次消息交换, 而在Web服务环境中, 调用服务一般只有两次消息交换 (客户请求服务、服务方返回应答) 。挑战应答协议需服务方保存自己产生的随机数, 也就是服务必须设计为有状态的。SOAP和HTTP都是无状态的, 虽然存在SOAP实现可以使服务维持状态信息, 但这样做代价很大, 也极易出错。并且上述挑战应答协议只能进行单向身份认证, 不能进行密钥协商。
3.2 Kerberos协议
Kerberos是美国麻省理工学院 (MIT) 研制的认证协议, 是一种实用的网络认证系统。Kerberos协议的设计目标是通过网络通信的实体可以互相证明彼此的身份, 可以抵抗旁听和重放等方式的攻击, 并且还可以保证通信数据的完整性和保密性。
Kerberos协议可以应用到分布式环境下, 其最初设计是用来提供认证和密钥交换的, 但它不能用来进行数字签名, 因而也不能提供不可否认机制。并且其安全基于对认证服务器 (AS) 和票据发放服务器 (TGS) 的绝对信任。
3.3 无状态Web服务认证密钥协商协议
由于上述原因, 我们设计了一个安全协议, 来解决客户端和服务器端的身份认证和密钥协商。如下所示:
其中, Ki为A生成的部分密钥, Kj为B生成的部分密钥, TSA为A产生的时间戳, TSB为B产生的时间戳, KA表示A的公钥, KB表示B的公钥, KA-1表示A的私钥, KB-1表示B的私钥, 其余符号意义同前。以服务端B为例, 对其收到消息的处理过程进行描述:B收到A发过来的消息{ID, {IDA, IDB, NA}KA-1, Ki, TSA}后, 用其私钥KB-1对该消息进行解密, 解密得到IDA后, 用IDA的公钥来验证签名, 如果验签成功, 则B成功认证A;否则, 认证失败。并且当TSA也在时间允许的范围之内时, 接受该消息;否则, 放弃该条消息。完成协议过程后, A、B双方分别计算KAB=f{Ki, Kj}, 得到共享会话密钥KAB。f为单向函数, 我们这里用Diffie-Hellman算法。把上述协议中的元素加入到SOAP头中后, 扩展后的SOAP消息的格式如下:
3.4 协议的特点及安全性分析
以A发往B的消息为例, 进行说明。
(1) 此协议用两次消息交换 (客户请求服务、服务方返回应答) 就完成通信双方的身份认证和密钥协商;
(2) 在消息中加入时间戳TSA和随机数NA, 可以有效的抵御重放攻击;
(3) 消息中加入可以使B对A进行认证, 提供不可否认机制, 并且有效的抵御中间人攻击;
(4) 把A和B的标识及临时产生的随机数一起进行签名, 可以有效的防止B成功认证A后, 冒充A访问网络上其他节点。
4 结论
Web服务因其松散耦合性、跨平台和跨语言的特性日益受到广泛的关注, 但它的安全性问题却成为阻碍其发展的一个重要因素。而认证又是Web服务的一个核心问题。为了解决这一问题, 本文设计了一个认证和密钥协商协议。以后可以在此协议基础上进行扩展, 以便更加全面的解决Web服务的安全问题。
参考文献
[1]Don Box, David Ehnebuske, Gopal Kakivaya, et al.Simple Object Access Protocol (SOAP) 1.1[EB/OL].2005.
[2]Bob Atkinson, et al.Web Services Security (WS-Security) version1.0[EB/OL].2002.
[3]Takeshi Imamura, Blair Dillaway, Ed Simon.XML Encryption Syntax and Processing[EB/OL].W3C Recommendation.2002.
[4]Mark Bartel, John Boyer, Barb Fox, et al.XML-Signature Syntax and Processing[EB/OL].W3C Recommendation.2002.
[5]http://www.w3.org/2002/ws/arch/.
密钥设计 第6篇
2007年, NVIDIA推出了CUDA (compute unified device architecture, 统一计算设备架构) 。[1]CUDA是一种将GPU作为数据并行计算设备的编程模型和软件环境, 分配和管理所有进行的计算。在CUDA编程模型下, 一个程序分为主机端和设备端, CPU负责执行程序主机端上的部分, 而GPU负责设备端上的部分, 设备端的程序被称为Kernel。
在CUDA编程模型下, 程序执行的最小单位是线程 (Thread) , 若干个Thread组成一个Block, 执行相同程序的Block, 组成Grid。同一个Block中的Thread能够访问同一块Shared memory, 因此, 同一个Block中的Thread能够进行同步, Block中所能包含Thread的最大数目是有限的。不同Block中的Thread无法存取同一个共享的内存, 因此无法直接传递数据或进行同步。因此, 不同Block中的Thread能协同运作的能力较低。
2 IDEA 密码体制的密钥方案
2.1 IDEA 密码体制简介
DEA密码体制属于分组密码, IDEA密码体制的明文和密文分组都是64bits, 运算过程既可用于加密又可用于解密;IDEA密码体制是一种对称密码体制, 即其加密密钥与解密密钥相同, 长度是128bits, 实际用于加、解密的子密钥都可由初始的128bits密钥生成。
2.2 密钥运算
计算IDEA密码体制的加、解密密钥需要用到以下四种运算。其中, 加法与加法逆运算较为简单, 而乘法与乘法逆需用函数实现:
(1) 模216加法运算, 即16bits整数做加法运算:
(2) 16bits整数的加法逆运算, 即X的加法逆元-X:
X的加法逆
0的加法逆为0
(3) 模216+1乘法运算, 即16bits整数做乘法运算:
(4) 16bits整数的乘法逆运算, 即X的乘法逆元X-1:
2.3 密钥生成
IDEA密码体制的加密密钥使用128bits的初始密钥所产生52个16bits的子密钥, 即首先将128bits的密钥分成八个16bits子密钥, 前六个16bits子密钥用于第一轮运算, 后两个16bits子密钥作为第二轮运算的前两个16bits子密钥, 然后128bits初始密钥向左环移25位后再分成八个16bits子密钥, 开始四个16bits子密钥用于第二轮, 后四个bits子密钥用在第三轮运算, 如此六轮25位左环移共产生48个16bits子密钥, 再一次密钥向左环移25位, 只在前64位生成四个16bits子密钥, 合计共52个16bits子密钥完成运算全过程。
IDEA密码体制的解密密钥也分别由52个16bits解密子密钥组成, 这些解密子密钥按一定排列顺序, 由加密子密钥本身、加密子密钥的模216加法逆元、加密子密钥的模216+1乘法逆元构成。
3 基于 CUDA 的 IDEA 密钥生成过程的实现
3.1 加密子密钥的生成
为了便于加密密钥的生成, 将初始密钥key数组长度扩展为16项, 前8项与后8项数据保持一致。加密子密钥生成使用一维Block, 一个线程完成一个加密密钥数据项的计算;使用i/8的值为初始密钥左移25位的轮数, 为避免除法使用i>>3代替i/8。
加密子密钥生成的函数代码为:
3.2 解密子密钥的生成
解密子密钥生成使用二维Block, 对相应位置的加密密钥数据项运算得出解密密钥的相应数据项, 并赋值;Inv () 函数用于求乘法逆元。
解密子密钥生成的函数代码为:
3.3 性能测试
生成加密密钥在CPU上的平均耗时为:7.1微秒;
生成加密密钥在GPU上的平均耗时为:5.2微秒;
生成解密密钥在CPU上的平均耗时为:13.4微秒;
生成解密密钥在GPU上的平均耗时为:4.4微秒。
以上测试均为50轮运算后得出, CPU为CORE2 DuoT6600, GPU为Ge Force 540M。
4 结语
密码体制广泛应用于大量数据的加密领域, 因涉及较多的重复数组运算, 因此适合于GPU并行运算, 本文在此思路下, 提出了在GPU上实现分组密码体制IDEA的加、解密密钥的生成方法, 提升了运行速度。随着GPU并行运算的发展以及CUDA的广泛应用, 必将推动信息安全领域的发展, 使得数据加、解密的速度得到大幅提升。
摘要:本文首先对GPGPU模型CUDA进行了简单的介绍, 描述了IDEA密码体制加、解密密钥生成过程, 最后通过使用CUDA架构在GPU上实现了IDEA密码体制加、解密密钥的生成过程。
关键词:CUDA,IDEA,密钥生成
参考文献
[1]裴定一冯登.密码学导引[M].科学出版社, 1999.
[2]张舒褚艳利赵开勇张钰勃.高性能运算之CUDA[M].中国水利水电出版社, 2009.
[3]Richard Spillman经典密码学与现代密码学[M].清华大学出版社, 2005.
密钥设计 第7篇
关键词:SM2算法,混合密码算法,USB Key硬件加密,密钥安全存储
1 引言
随着互联网技术和移动网络的快速发展, 密钥成为用户验证身份登录应用的重要安全凭据。简单的用户密钥存在易破解、安全性不高等缺点, 不同账户使用同一密钥更极大地降低了用户信息的安全程度。随着用户密钥的安全度不断提高、不同账户密钥不同情况的出现, 简单的用户密钥记忆越发困难。当前密钥的安全存储工具主要包括笔记类工具、在线密钥管理工具和本地密钥管理管理工具。笔记类密钥管理工具直接使用明文记录, 后两种方式则通过设置密钥将用户信息存在服务器或本地计算机, 安全性较低且使用不方便。王卓设计了一种基于网格存储的分布式密钥管理系统, 在用户易用性方面仍存在问题。彭家华设计了一种使用MD5算法的密钥管理系统, 安全性和易用性也有待提高。蔡昌许等人提出了采用二进制域上圆锥曲线算法解决此类问题, 在超大型网络等领域进行了一定尝试。
当前, USB Key技术得到了快速发展, 可用于进行用户身份信息存储, 并可以通过片上系统内置加密算法对用户信息进行加密, 安全等级较高, 可以有效防止用户信息泄露。本系统基于USB Key片上集成SM2加密算法实现了用户密钥的安全存储和自动登录功能。
2 SM2算法介绍
SM2算法全称为SM2椭圆曲线公钥密码算法 , 由国家密码管理局于2010年12月进行公布, 并作为国家密码行业标准。目前, 密码算法主要包括对称密钥算法和非对称密钥算法。SM2算法属于非对称密钥算法, 通过使用公钥加密私钥解密的方式工作。在非对称密钥算法工作过程中, 加密密钥和解密密钥各不相同, 加密密钥是公开使用的, 解密密钥只有用户自己知道, 攻击者无法根据加密密钥计算出解密密钥。
SM2算法的优点主要包括:密钥管理简单, 保密传输时所需要的密钥组数量较少; 密钥可以公开发布, 易传播而不易破解;信息保密的等级较高, 安全性较好;密钥占用存储空间小。因此, SM2算法在我国商用密码体系中主要用来替换传统的RSA算法。但同时, 作为一种非对称密钥加密算法, 它也存在算法复杂、加解密速度较慢, 对大数据块加密效率低等缺点。
3 基于 SM2 的混合加 / 解密流程设计
利用SM2算法加密安全性高、密钥管理简单等优点, 结合USB Key的高速运算能力和安全存储机制, 将两者相结合可以得到更加安全高效的密钥存储系统。它的基本原理为: 在USB Key片上系统内置SM2算法模块, 用户将需要存储的用户名和用户密钥使用特定多维密钥进行加密后保存在USB Key外置存储模块中, 不同的用户名和用户密钥使用特定多维密钥的不同维密钥对应加密存储, 加密时使用SM2算法进行。用户进行加密时使用的特定多维密钥经加密后存储在USB Key的内置ROM模块中, 对特定多维密钥进行加密的算法为SM2算法, 加密密钥由用户自行记忆的特定识别符经SM2算法加密得到。
3.1 用户信息加密流程
用户信息的加密流程是:设定用户自行记忆的特定识别符为[A], 系统随机生成的特定多维密钥为[B]=[B1B2B3... Bn], 用户需要加密的信息为[C]=[C1C2C3... Cn], 具体的流程图如图1所示。
步骤一: 用户在每次使用存储系统时需首先输入PIN码进入USB Key系统;
步骤二:当用户需要加密存储用户信息时, 需要按提示输入特定识别符[A];
步骤三:USB Key片上系统使用内置SM2算法加密识别符[A]得到密钥[Y0];
步骤四:USB Key片上系统使用密钥[Y0]解密存储在USB Key内置ROM模块的特定多维密钥[B], 并将得到的[B]内多维密钥分别存储为密钥组[Y]=[Y1Y2Y3... Yn];
步骤五:USB Key片上系统随机使用密钥组 [Y]内密钥作为加密密钥, 对用户本次需要加密存储的用户信息[C]使用SM2算法进行加密, 得到加密密文[D]=[D1D2D3... Dn], 并将加密后的信息和与密钥组的对应关系[D→Y]保存在USB Key外置存储模块中;
步骤六:反馈信息, 确定本次加密完成。
2.2 用户信息解密流程
用户信息的解密流程如图2所示, 当用户需要读取并解密加密信息[D]=[D1D2D3... Dn]时 , 系统操作的步骤如下:
步骤一:用户在每次使用存储系统时需要首先输入PIN码进入USB Key系统;
步骤二: 当用户需要解密USB Key外置存储模块中的加密信息[D]时, 需要首先按提示输入特定识别符[A];
步骤三:USB Key片上系统使用内置SM2算法加密识别符[A]得到密钥[Y0];
步骤四:USB Key片上系统使用密钥[Y0]解密存储在USB Key内置ROM模块的特定多维密钥[B], 并将得到的[B]内多维密钥分别存储为密钥组[Y]=[Y1Y2Y3... Yn];
步骤五:USB Key片上系统读取外置存储模块中存储的加密信息[D→Y], 并根据该加密信息与密钥组的对应关系从[Y]中选择密钥使用SM2算法解密信息[D], 并将得到的明文信息保存在[C]=[C1C2C3... Cn]中;
步骤六:反馈信息, 确定本次解密完成。
4 安全存储系统关键技术实现
通过使用基于SM2的混合加密与解密算法, 可以实现较高的用户信息安全存储。安全存储系统除完成用户信息的安全存储功能外, 还可以实现用户信息的随身携带和特定应用的安全登录等功能, 具体实现的关键技术有几种。
4.1 SM2 硬件加密技术
SM2算法主要基于椭圆曲线上点群离散对数问题 , 具有椭圆曲线密码算法的优势。由于SM2由国家密码管理部门制定, 是国产安全算法的一种, 因为可以有效避免未知算法后门的影响。目前国内多数厂商都推出了基于片上系统SM2算法的USB Key设备, 该种USBKey设备内置单片机或智能卡芯片 , 拥有较大容量的存储空间, 可以存储用户的密钥等信息, 利用USB Key片上系统内置的加密算法实现对用户身份的认证。由于用户信息保存在密码锁中, 理论上使用任何方式都无法读取, 因此保证了用户信息的安全性。实验中我们选择了东莞市 乐程电脑 软件公司USB Key3000D/USBKey2000D系列设备 , 该设备拥有快速的加解密模块和安全存储模块, 它的主要硬件加密过程如下:
步骤一:设置密钥为key1, 输入加密字符串string1, 并得到字符串的长度为len1;
步骤二:基于随机数发生器生成随机数k∈[1, n-1], n为椭圆曲线上的基点G的阶;
步骤三: 得到比特串类型的曲线上的点C1=[k]G= (x1, y1) ;
步骤四:求曲线上的点S=[h]PB, 并确认S不是一个无穷远点;
步骤五: 按照同样方法求曲线上另一点Q=[k]PB= (x2, y2) ;
步骤六: 按照密钥派生函数fx1求得t=fx1 (x2| y2, len1) , 并判断t是否全部为0, 若全部为0则重新执行步骤1, 若不是则继续步骤七;
步骤七:求得;
步骤八:按照杂凑算法fx2求得) ;
步骤九:得到最后的密文。
该设备的主要硬件解密过程如下:
步骤一 : 设置密钥 为key1, 输入加密 字符串;
步骤二: 在C中提取出C1并将其数据类型转换成椭圆曲线上的点, 并确认其满足椭圆方程;
步骤三:求得S=[h]C1, 并确认S不是无穷远点;
步骤四:求得比特串类型数据) ;
步骤五: 按照密钥派生函数fx1求得) , 并确认t不满足全部为0;
步骤六:在C中提取出C2, 求得t;
步骤七:从C中提取出C3, 并确认;
步骤八:得到明文M'。
4.2 密钥安全存储方法
实验中用户信息的存储主要包括USB Key的内置ROM模块和外置存储模块 , USB Key的内部结构如图3所示。
其中经过二次多维加密后的用户信息存储在USBKey外置存储模块中 , 该部分的数据可以直接得到 , 但由于加密密钥未知, 因此攻击者无法直接破解。存储多维密钥的是USB Key的内置ROM模块, 访问该模块需要得知USB Key的PIN码和特定识别符, 当PIN码错误时, USB Key不能读写ROM内置数据, 且当PIN码连续错误后, ROM中的存储的数据会被自动销毁。即使USB Key的PIN码泄露 , ROM内置模块中保存的也是经过SM2加密后的多维密钥, 攻击者只有同时知道PIN码和特定识别符才能破解。
4.3 密钥安全传输方法
实验中, 除了完成用户信息的安全存储以外, 还要提高用户信息从USB Key提取到使用登录应用过程的安全性。目前攻击者主要通过使用木马、病毒等工具利用键盘记录方式获取用户通过键盘键入的各类敏感信息。实现键盘记录的方式可以分为基于硬件和基于软件两种方式, 其中最常见的是基于Windows Hook (钩子) 方式的键盘输入记录。Hook (钩子) 是Windows系统消息处理机制中的一个监视点, 攻击者可以通过在这里安装钩子函数来监视制定窗口的特定类型消息。钩子通过系统的钩子链表指向特定钩子函数, 钩子函数是回调函数 (Callback Function) 的一种, 窗口的消息首先被钩子函数处理, 钩子函数根据需要对消息进行提取后再将消息发送给窗口。针对攻击者的键盘记录攻击, 目前主流的反键盘 记录方法 主要有主 动防御技 术和NprotectKeycrypt技术。
实验中, 我们通过进程间直接通信的方式将从USBKey提取得到的用户信息直接传递给用户需要使用的应用登录模块。由于消息触发反应时间极短, 且在消息发送中人为添加大量随机伪信息, 攻击者进行消息截获和提取的难度较大, 可以较好的保证用户信息的安全性。常用的Windows应用软件数据通信方式主要有对象链接和嵌入 (OLE) 、动态数据交互 (DDE) 和Send Keys (UCK) , 实验中我们选择采用Send Keys方式。
5 实验结果
针对以上 设计 , 我们选用USB Key3000D/USBKey2000D系列设备。该USB Key设备具有内置硬件SM2算法和1G外置存储空间 , 可以存储较大的用户信息。实验环境为Intel Core i5-4200U处理器、4G内存、Windows 8 64位版, 开发环境为Microsoft Visual Studio2010。软件平台的效果如图4所示。我们分别对系统平台进行不同数据量混合加解密时间测试, 测试数据如表1所示 , 由于统计的时间是对所有数据量进行处理的时间, 可见系统加解密的时间在可以接受的范围之内, 处理速度较为迅速。
6 结束语
该安全存储系统主要通过混合SM2算法加密存储用户使用各类应用的密钥登录信息, 具有移动性、高安全性、易用性等特点, 也可以用来对用户其他信息进行安全加密, 系统加解密时间较短, 稳定性较高, 具有较好的应用前景。
参考文献
[1]严志涛, 徐梦霖, 吴潇岛, 赵辉.基于蓝牙和NFC的防泄露密码使用管理系统[J].信息网络安全, 2013, 12:42-45.
[2]王卓.基于网格的分布式密码管理系统设计与实现[D].解放军信息工程大学, 2009.
[3]彭家华.基于MD5的应用程序授权及密码管理系统[J].福建电脑, 2009, 09:119-120.
[4]蔡昌许, 蔡昌曙, 周洲.超大型网络圆锥曲线密码管理解决方案[J].信息技术, 2010, 03:128-130.
[5]陈锐, 蒋泽军, 陈福.基于Credential Provider的身份认证模型的研究与实现[J].航空计算技术, 2010, 03:131-134.
[6]伍娟.基于国密SM4和SM2的混合密码算法研究与实现[J].软件导刊, 2013, 08:127-130.
[7]陈俊杰, 施勇, 薛质, 陈欣.基于SSDT及回调函数的键盘记录方法[J].计算机工程, 2010, 11:120-122.
密钥设计 第8篇
由于传感器节点在能量、计算能力和通信带宽方面的限制, 不宜采用公钥密码, 应采用对称加密算法、低能耗的认证机制和Hash函数。在传统网络中使用的基于可信第三方的密钥分配协议 (如Kerberos[4]) 也不适用于传感器网络。目前普遍认为可行的方法是采用密钥预分配方案 (Key Pre-distribution Scheme) [5], 把需要的密钥预先装入传感器节点。
近年来不少学者在密钥预分配方面做了大量研究工作, 并提出了不少有效的方案。Eschenauer等提出一种随机密钥预分配方案[6], 传感器节点在部署前, 从事先生成的密钥池中随机选取一定数目的密钥子集, 节点部署到指定区域后, 通信双方在各自的密钥子集中寻找共享密钥。在此方案基础上, 有学者提出了一些改进方案, 比如Chan等提出q重随机密钥预分配方案[7], Du等提出基于部署知识的随机密钥预分配方案[8], 我们也在组合设计基础上提出了基于Cover-Free结构的密钥预分配方案并应用于组密钥的分发和更新[9]。在大部分的密钥预分配方案中, 如何发现共享密钥是一个重要步骤, 通信双方通过交换各自的密钥信息来发现共享密钥, 从而建立会话密钥, 因此发现共享密钥的效率和安全对密钥预分配方案具有重要影响。本文利用秘密同态[10] (Privacy Homomorphism, PH) 和布隆过滤器[11] (Bloom Filter) , 设计了一种安全高效的共享密钥发现协议, 并在嵌入式Linux设备上通过代码设计得到实现, 该协议可以降低通信和计算代价, 提高网络的抗毁性, 而且适用于目前大部分密钥预分配方案。
1秘密同态
秘密同态[10]是由Rivest于1978年提出, 它是允许直接对密文操作的数学变换, 从而实现了在保密状态下完成相关操作, 并保证数据的正确性。为了在无线传感器网络中使用秘密同态来寻找共享密钥, Chan等在文献[12]中作了修改, 并使之满足以下四个性质:
(1) 能够有效抵抗密文攻击。
(2) 设EK () 和DK () 分别代表加密和解密函数, 给定EK (x) 和EK (y) , 不需要知道密钥K、x和y, 根据EK (x) 和EK (y) 就可以算出EK (x+y) 。
(3) 给定EK (x) 和常数c, 不需要知道密钥K和x, 根据EK (x) 就可以算出EK (cx) 。
(4) EK (0) 有很多不同的表现形式, 很难全部搜索。
2布隆过滤器
布隆过滤器 (Bloom Filter) [12]是由Burton Bloom于1970年提出的, 它是一个非常优秀的数据结构, 可用于表示一个集合S = {s1, s2, , sn}, 也可以用于判别某一个元素x是否属于某个特定的集合S。布隆过滤器实际上是由一个m位长的二进制向量和k个相互独立的哈希函数H1 (x) , H2 (x) , , Hk (x) 组成, 哈希函数Hj (x) (1jk) 的值域为 {0, 1, ..., m-1}, 初始化时将二进制向量中每一位置为0。对于元素si∈S (1in) , 二进制向量中对应的H1 (si) , H2 (si) , , Hk (si) 位全部置为1, 这样就将元素si添加到布隆过滤器中, 按照这个方法, 我们可以将S集合中元素都添加到布隆过滤器中, 记为BF-{s1, s2, ..., sn}。
若想查询一个元素x是否属于某个集合S, 只需要计算它的k个哈希地址值Hj (x) (1jk) , 查看集合S对应二进制向量中相应位的值是否全为1。若不是, 则这个元素x必不属于该集合S;若是, 则以一定的误判率判断该元素x是属于集合S, 因为Bloom算法可能对二进制向量中的同一个位多次置1, 但是这个缺陷可以通过调节参数k, m, n的方法来有效降低误判率。
3共享密钥发现协议设计和实现
由于目前大部分密钥预分配方案都包括共享密钥发现阶段, 不失一般性, 我们就以随机密钥预分配方案为例来描述和设计共享密钥发现协议。
3.1密钥预分配阶段
在密钥预分配阶段, 首先生成一个密钥池, 构造k个相互独立的哈希函数, 从而为每个节点生成一个密钥链, 我们可以在PC机上进行编程实现。在实验中, 我们使用k个带不同密钥的MD5哈希函数来表示k个相互独立的哈希函数, 程序中具体变量及其值, 我们设置为密钥池大小keySpaceSize = 1000, 密钥链大小t = 75, 密钥的位数bitLength = 128, 布隆过滤器的参数k = 3和m = 1050, 其具体步骤如下:
(1) 通过手动输入随机种子方式来初始化一个随机数生成器, 利用该随机数生成器来生成密钥池中keySpaceSize个密钥和用来构造相互独立哈希函数的k个密钥。
(2) 为每个节点生成一个密钥链文件, 该文件包括从密钥池中随机取出t个密钥及其每个密钥所对应的k个哈希地址值, 每个节点都有一个唯一ID, 在其协议的实现程序中我们使用节点的IP地址作为节点ID。在部署前, 每个节点预先存储一个密钥链文件。
3.2共享密钥发现阶段
在共享密钥发现阶段, 考虑到代码的通用性和开放性, 选择嵌入式Linux作为嵌入式设备的操作系统。为了便于演示说明, 实验中采用基于gtk+-1.2的嵌入式图形开发库, 程序包括3个线程, 主线程、接收广播信息线程和发现共享密钥线程。每个节点的主线程首先读取预先存储的密钥链文件, 构造出该密钥链对应的布隆过滤器二进制向量u, 并初始化生成三个随机数r、e和f以及两个随机大素数p和q, 其中0
操作1:节点A向所有邻居节点发送广播数据包, 其中包含Ep, q, e, f (rA) 和nA=pAqA, 其中Ep, q, e, f (x) 表示秘密同态中加密函数, rA、pA和qA表示节点A初始化生成的随机数。
操作2:邻居节点B接收到节点A发送的广播数据包, 并获得节点A的IP地址, 即节点A的ID。如果该数据包内容为“Exit”, 即节点A发送退出信息, 则节点B把物理邻居列表和逻辑邻居列表中包含节点A的IP地址的记录内容全部删除, 否则查看当前物理邻居列表中是否包含节点A的IP地址的记录信息, 没有则添加该IP地址记录并且保存Ep, q, e, f (rA) 和nA, 具体如图2所示的接收广播信息线程流程图。其中物理邻居列表用来保存一跳范围内邻居节点, 逻辑邻居列表用来保存一跳范围内能够发现共享密钥的邻居节点。
操作3:根据秘密同态性质, 节点B把自身密钥链所对应布隆过滤器的二进制向量uB和节点A发送的Ep, q, e, f (rA) 及nA, 通过计算得到z=uBEp, q, e, f (rA) mod nA, 然后通过TCP包把z发送给节点A。
操作4:节点A接收到节点B发送的信息z, 利用秘密同态解密函数Dp, q, e, f (rAuB) 得到节点B的二进制向量uB, 因此节点A就可以利用Bloom算法来查找与节点B是否有共享密钥, 如果有则在逻辑邻居列表中添加节点B的IP记录并输出所有共享密钥, 否则显示与节点B没有共享密钥的提示信息, 具体如图3所示的发现共享密钥线程流程图。
因为本文只侧重共享密钥发现阶段的协议实现, 当相邻节点之间没有共享密钥时, 我们不进行路径密钥发现阶段。同样经过上述操作步骤后, 节点B也能发现与节点A之间所有共享密钥, 这样节点A与节点B之间就能建立会话密钥。在这个过程中, 节点A与节点B利用秘密同态加密算法来交换密钥信息, 因此不但节点A与节点B只能发现它们之间的共享密钥, 而且网络中其他节点 (包括攻击者) 都无法知道节点A与节点B的任何密钥信息, 所以攻击者无法进行针对性攻击。
3.3安全性分析
在共享密钥发现阶段, 通信节点利用秘密同态加密算法对交换的密钥信息进行加密, 因此攻击者无法知道通信节点之间交换的密钥信息内容, 所以攻击者无法推断出未被捕获的节点中存储了哪些密钥以及还有多少密钥是攻击者未知的, 攻击者无法有效进行智能攻击。而且即使攻击者通过捕获一些节点而获得一些密钥, 但是因为攻击者并不知道通信节点之间使用哪个共享密钥作为会话密钥, 所以攻击者只能根据已被捕获的密钥来进行穷举判断通信节点之间是否正在使用已被捕获的密钥作为会话密钥。另外, 由于协议使用布隆过滤器, 因此一对通信节点只能知道双方之间的共享密钥, 而不知道对方节点还有什么密钥, 而且即使某个节点被捕获并伪装成合法节点, 也无法知道与之通信的节点除共享密钥之外的任何密钥, 因此, 本协议可以提高网络安全性。
4实验平台简介与实验结果
4.1实验平台简介
传感器节点系统是构成WMSNs的基础, 目前已经设计或生产的WSNs节点可分为两类:一类是以通用微处理器为核心部件, 类似嵌入式系统方式设计的节点, 目前大多数节点采用这种方式, 如Mica, Gainz等;另一类则是采用FPGA, ASIC等专用器件设计的平台, 如PicoRadio, Mult-Radio WSN platform等。WMSNs和传统WSNs在节点硬件结构上的不同在于WMSNs采用了具有图像、视频采集功能的CMOS传感器以及具有更强处理功能的处理器。大多数节点的设计采用扩展接口方式连接传感器, 以增加平台的通用性。
实验节点使用的硬件平台为Liod 270, 其硬件结构如图4所示。该平台使用主频运行于520MHz的 Intel XScale PXA270处理器, 存储器采用32M Flash与64M SDRAM, XSBase270采用核心板加底板的设计思想。该平台还配备了众多的外围接口, 提供了2个USB接口、CF接口、MMC/SD接口;同时还通过LAN91C111扩展以太网接口;还通过UCB1400提供触摸屏接口;通过CF接口, 可以外接802.11b无线网卡, 实现无线网络连接。
4.2实验结果
在实验中部署了4个节点, 网络拓扑结构如图5所示, 程序中把所有套接口绑定到外接802.11b无线网卡, 同时无线网卡的网络模式设置为Ad Hoc模式, essid设置为相同。根据上述设计在完成程序代码编写后, 进行交叉编译, 得到可执行文件并把它拷到节点中运行。
单击按钮“Start”进行读取密钥链文件和启动接收广播信息线程和发现共享密钥线程, 如图6所示, 其中界面“Receive Broadcast”和“TCP Server”分别表示接收广播信息线程和发现共享密钥线程。此时程序就可以接收到邻居节点的广播信息, 并且通过点击按钮“Broadcast Key Information”来广播自身信息。在如图5的网络拓扑结构中, 当每个节点发送广播信息后, 节点192.168.3.13的程序界面如图7所示, 其中Neighbor组合框 (即物理邻居列表) 中已显示了所有接收到广播信息的邻居节点IP地址。这样就可以进入共享密钥发现阶段, 比如在节点192.168.3.13的Neighbor组合框中选择邻居节点192.168.3.11, 然后点击“Establish Key”来进行共享密钥发现。节点192.168.3.11接收到节点192.168.3.13共享密钥发现请求, 进行处理后就可以找到所有与节点192.168.3.13共享的密钥, 并在Key Neighbor组合框 (即逻辑邻居列表) 中添加节点192.168.3.13, 结果如图8所示。经过类似操作后, 节点192.168.3.13的最终结果如图9所示。节点13分别与节点10、11、12分别建立了共享对密钥。
5结束语
在无线传感器网络中, 密钥预分配方案是被认为是一种比较有效的密钥管理方法, 但是目前大部分密钥预分配方案中共享密钥发现阶段所交换的密钥信息会泄露给攻击者, 攻击者再根据这些信息进行针对性攻击而危及网络安全。本文在秘密同态和布隆过滤器基础上, 设计了一种安全高效的共享密钥发现协议, 该协议不但可以有效防御针对性攻击, 而且通信和计算代价比现有大部分共享密钥发现协议都要低得多, 适用于目前大部分的密钥预分配方案, 并且通过代码设计, 在嵌入式设备上实现该协议。
参考文献
[1]马华东, 陶丹.多媒体传感器网络及其进展.软件学报, 2006, 17 (9) :2013~2028, 2013~2028
[2] Chang C K and Huang J.Video surveillance for hazardous conditions using sensor networks.Proc.of the 2004 IEEE Int’l Conf.on Networking, Sensing&Control.New York, 2004, 1008~1013
[3]罗武胜, 翟永平, 鲁琴.无线多媒体传感器网络研究.电子与信息学报, 2008, 30 (6) :1511~1516
[4] NEUMAN B.C., TSO T.Kerberos:An Anthentication Service for Computer Networks.IEEE Communications Magazine, 1994, 32 (9) :33~38
[5] CAMTEPE SA, YENER B.Key Distribution Mechanisms for Wireless Sensor Networks:A Survey.Technical Report, TR-05-07, Rensselaer Polytechnic Institute, 2005.
[6] ESCHENAUER L, GLIGOR V.A Key Management Scheme For Distributed Sensor Networks.//Proceedings of 9th ACMConfer-ence on Computer and Communication Security, Washington:ACM Press, 2002, 41~47
[7] CHAN H, PERRIG A, SONG D.Random Key Pre-Distribution Schemes For Sensor Networks.//IEEE Symposium on Researchin Security and Privacy.Berkeley, California:IEEE Computer Society, 2003, 197~213
[8] DU W, DENG J, HANYS, CHENS, VARSHNEY PK.APairwise Key Pre-Distribution For Wireless Sensor Networks.//Pro-ceeding of the 10th ACM Conference on Computer and Communications Security (CCS) , Washington:ACM Press, 2003:42~51
[9] CHEN JIANGWEI, LI XU, YI MU.A New Group Rekeying Scheme Based On T-Packing Designs For Ad HOC Networks[M/CD].The Proceeding of IF0SCALE2007, ACM Press, 2007.
[10] RIVESTR.L, ADLEMANL, DETROUZOS M.L.On Data Banks and Privacy Homomorphism.//Foundations of Secure Compu-tation, New York:Academic Press, 1978:169~179
[11] BLOOM B.Space/Time Tradeoffs in Hash Coding With Allowable Errors.Communications of the ACM, 1997, 13 (7) :422~426
琴岛通:通达人心的密钥 第9篇
人心这种地方,迫近却邈远,须得经过一番跋涉,方能抵达。
有一种产品,每日在几近三分之一的城市居民的手心、口袋中流转,拥有使商人艳羡的市场占有率和使用率,却做着细微琐碎、几近公益的事业。它的衷心的表达,就在日复一日的每一笔繁琐精准交易的背后,无需赘言,自在人心。
融入百姓生活
市区居民大概记得,三年前琴岛通卡网点窗口替换原公交IC卡的情景,又仿佛不经意间,买早餐、乘出租车、缴水电费……这张小卡片的应用领域越来越广了;公交企业每天清点零币的姑娘大概记得,随着琴岛通卡发行量的增长,工作似乎变得轻松,也不必总用零币领工资了;来往胶州湾隧道的驾驶员大概记得,过往收费口无需现金缴费,甚至不用停车刷卡了……
2009年年初,青岛市十四届人大通过了《关于青岛加快建设“城市一卡通”的议案》,确立了青岛“城市一卡通”采用A/B卡建设模式,即A卡为“市民卡”,采取实名制,可集中办理银行卡、社会保障、住房公积金等业务;B卡即为“琴岛通”卡,采取非实名制,实现城市交通(公交车、出租车、轮渡、隧道、地铁等)、停车场管理、校园门禁、小额支付等多种便民服务。
青岛市政府专门成立“城市一卡通”建设协调推进领导小组,按照市场化运作的模式,成立青岛市琴岛通卡股份有限公司,负责“琴岛通”卡项目的建设、管理和运营。市政府授予琴岛通卡公司在青岛市行政区划范围内从事基于“琴岛通”IC卡消费的制作、发行、充值、缴费、清算的特许经营权。
琴岛通卡公司利用两个月的时间先后完成了系统总集成商、清算服务银行、IC卡供应商的采购及密钥系统生成等系列前期筹备工作。2009年12月30日,“琴岛通”IC卡系统应用成功启动,琴岛通卡开始在部分公交、出租以及超市便利店进行测试。以当年立项、当年建设、当年发卡的建设速度,开创了国内的先河,成为国内“城市一卡通”项目推进速度最快的城市。
自2010年3月31日正式发卡至今,共发行300余万张,完成了青岛市域范围内7000台公交车、18家公司3680辆出租车、胶州湾隧道、公用事业缴费、电力缴费、轮渡、加油站、新华书店、24小时便利店等领域刷卡消费,实现即墨村村通公交车刷卡应用,完成与日照通卡的互通,发行了琴岛通手机支付卡。便捷的支付方式,广泛的应用领域使琴岛通卡逐渐融入了百姓日常生活的方方面面。
自2009年年初青岛“城市一卡通”项目建设以来,琴岛通卡项目通过不断技术、服务、管理的优化完善,建设成为一项涵盖科技创新、支付体系创新、公共服务创新、应用模式创新的便民利民工程。
立足公共交通
“城市一卡通”的建设宗旨在于“通”,在项目提出时就被赋予众多期待。如何快速的实现“一卡多用、一卡通用”的建设初衷,给琴岛通的经营团队带来了挑战,在成长初期找准发展切入点,显得尤为重要。“琴岛通”卡首先将公共交通纳入应用系统,并将其在原有公交Ic卡基础上进一步拓展和优化,是其步入现有局面的秘诀。
2009年是“城市一卡通”概念出世的元年。此前,采用企业密钥、MIFARE技术的公交IC卡已被破解,存在一定的安全隐患,因此,运用了逻辑加密型技术的公共Ic卡迫切需要更新改造,提升安全等级。
采用省级密钥的“琴岛通”CPU卡审势而出,吸取了国内各地在建设“城市一卡通”项目的管理模式、运营模式、技术标准等方面先进经验的基础上,形成了具有青岛特点的“琴岛通”卡模式。
在项目建设初期,将市内6区公交车的应用率先纳入琴岛通应用系统,并延续刷卡乘车优惠政策,实现新系统的平稳过渡。2010年底开始,陆续将胶州市、莱西市、胶南市、青岛开发区、即墨市、平度市的公交系统纳入琴岛通系统。2012年10月15日,实现了琴岛通卡在青岛市域范围内所有公交车的刷卡应用,持卡人乘车享受当地公交刷卡优惠。
2010年12月,琴岛通卡公司全面启动特种卡(学生卡、老年人卡、残疾人卡)的置换工作。本着“方便市民、服务社会”的宗旨,采取了“分期、分批、分流”的方式,对不同的特种卡采取了不同的信息采集及置换形式。新发行的琴岛通学生卡采取了与身份证信息挂钩、年龄限制的方式,杜绝了非在校学生滥用学生卡的现象;老年卡的置换本着“走进社区、服务到家”的原则,利用社区活动场所作为置换点,尽可能减少置换卡给老年人带来的不便。通過市老龄委、各区政府协调,在各街道办事处100余个信息采集置换点进行现场服务,参与服务4000多人次,确保了任务的全面完成。
2012年,完成了琴岛通卡与日照通卡的互通使用。为解决持卡人乘坐有人售票车的刷卡问题,卡公司为市内5区23条有人售票线路配备了1000台手持POS机,使市民在多级票价线路上也能够享受刷卡优惠政策。今年上半年,陆续在即墨村村通公交车上安装琴岛通刷卡机,持琴岛通卡乘坐村村通公交车可享受9折刷卡优惠,并在即墨18个村镇设立19个客服网点,办理琴岛通卡的售卡、充值业务。
这项以科技为导向,以惠及民生为根本,以建设服务于区域、城乡间的互联、互通公共交通体系为目标,从提升城市公交服务水平的角度出发的“城市一卡通”项目,不仅符合“绿色出行、公交优先”的政策,倡导符合信息化和区域、城乡统筹的发展趋势,而且也是改善民生、构建智慧城市、和谐社会的重要举措。
实现多元应用
城市通卡在全国各城市都逐渐融入日常生活,却也逐渐地分化了受众范围,持卡者以乘坐公交车的人群以中低收入的上班一族、退休一族和无收入的学生为主。日渐增长的有车一族似乎被自动地屏蔽在外,这与城市通卡的初期预想隐隐背道而驰。
2010年12月初,青岛市政府确定了琴岛通卡作为胶州湾海底隧道收费系统的支付载体,并确定由琴岛通卡公司负责胶州湾海底隧道ETC系统的开发建设。时间紧、任务重,卡公司迅速组织相关专家制定了《胶州湾隧道收费系统建设方案》,完成系统集成商招标以及设备采购、安装、调试等工作,实现了胶州湾隧道薛家岛收费站22条收费口中18条人工收费口使用琴岛通刷卡收费,4条ETC车道实现不停车收费。
nlc202309051206
2011年6月30日,海底隧道正式启用通车,安装了琴岛通车载电子标签的用户使用琴岛通卡可实现不停车收费,也可在人工收费系统使用琴岛通卡刷卡缴费。运行两年来,ETC车道大大缓解了隧道收费口的拥堵状况,提高了隧道的通行能力,极大方便了公众的出行,与人工收费车道排长队等候的情况形成鲜明的对比。
目前,北京、上海、广东等省市,针对不同的应用领域——城市公共交通和公路电子收费,都使用两种不同的卡片,或由两家独立的企业分别经营管理,或实行两种不同标准密钥体系的卡片,两卡之间互不兼容,并且不能互通使用。而琴岛通卡则将两种应用整合在一起,这种由城市通卡公司负责发行、由一张卡既可应用于城市公共交通领域,又可应用于ETC不停车收费系统的模式,开创了国内同行业的先例。为此,该项目在“2012年度国家金卡工程优秀成果金蚂蚁奖”评选中荣获“多功能综合应用奖”。琴岛通车载电子标签还将用于城市智能化停车场缴费等方面,实现电子标签和琴岛通卡的多元化应用。
扎实推进管理
目前,市民持琴岛通卡可乘坐公交车、搭乘出租车,通行海底隧道、购物消费等,按照市政府授权的特许经营领域,未来几年内琴岛通卡的应用领域还将陆续拓展到地铁、停车场、公用事业缴费、楼宇门控、校园服务等领域的支付。
随着应用领域的拓展,持卡人对琴岛通卡提出了更高的要求。2012年6月26日,琴岛通卡公司推出了具有实名制后台账户和非实名制电子钱包于一卡的琴岛通双账户商务卡,该卡后台账户部分与持卡人身份证信息绑定,实名制可挂失,电子钱包部分与琴岛通普通卡相同,不记名不挂失。持卡人可根据自己的消费能力和使用频率适度从后台账户向电子钱包圈存资金,以降低丢失后的损失。
琴岛通卡公司根据不同客户的使用需求分别与联通、移动合作,发行了13.56MHz和2.4G两种标准的琴岛通手机支付卡。
为方便持卡人办理琴岛通业务,公司不断调整优化客服网点的布局,在市内5区设立28个客服网点,交通银行、邮政储蓄、社区等代理网点300余个。此外,琴岛通卡公司还与都都宝公司合作,实现了琴岛通卡的网上充值和消费功能。
琴岛通卡公司不断加强内部管理,完善服務公约,进行全员培训,强化服务质量,做到标准化、规范化、流程化服务。公司先后荣获“青岛市老龄工作先进集体”、“诚信示范用人单位”荣誉称号,莱阳路客服大厅被授予青岛市“青年文明号”集体和市交通运输行业“十佳红飘带窗口”称号。
经过三年的经营,琴岛通卡“统一管理、统一品牌、统一标准、统一密钥、统一结算”适用于广泛应用领域的模式,成功实现了“一卡多用、方便快捷”的建设初衷,开创了国内“城市一卡通”的诸多先河。
琴岛通卡项目建设是一个社会化、系统化工程,是政府主导、市场化运作的便民利民工程,通过“社会需求、政府主导、市场运作”的模式,努力在社会公益性和商业性之间找到平衡点,为青岛的信息化建设和打造智慧城市做出贡献,是“琴岛通”卡建设的初衷和所承载社会使命的极致体现。
量子密钥分配网络分析 第10篇
最早的量子密钥分配 (QKD) 网络实验是由英国的P.D.Townsend小组于1998年提出的[1]。他们利用光无源器件分束器(splitter)实现了Alice与多个Bob之间的密钥分配。美国国防高级研究计划局(DARPA)与哈佛大学、波士顿大学和美国国家标准与技术研究所(NIST)等多家研究机构合作展开了量子保密通信与IP互联网结合的5年试验计划,并于2003年在BBN实验室进行了成功的实验运行。2004年,6节点的QKD网络在哈佛大学、波士顿大学和BBN公司之间利用标准电信光缆进行了通信。2006年, DARPA宣布建设一个拥有8个节点的QKD网络[2],目前他们正在向10节点的QKD网络迈进。2007年3月,中国研究人员在北京网通的实际线路上利用量子路由器实现了分布在3个不同地点的4用户长时间稳定QKD和视频保密通信。欧洲的英、法、德、意等国家建立了基于量子密码的安全通信网络,简称Secoqc[3](Secure Communication Based on Quantum Cryptography),并于2008年在奥地利的维也纳实验证实了5个节点的Secoqc QKD网络[4]。
QKD网络是由多个网络节点按照一定的拓扑结构连接而成的。目前出现的QKD网络可根据其节点功能性分为3类:光学节点QKD网络、信任节点QKD网络以及量子节点QKD网络。光学节点QKD网络由光器件(例如分束器、光开关、波分复用器和光纤光栅等)组成;信任节点QKD网络由可信任的网络节点连接而成;量子节点QKD网络是由量子中继器作为节点的网络。本文将分别对这3种网络的结构特点、功能及缺陷进行详细分析,最后提出一种高效实用的QKD网络模型。
1 光学节点QKD网络
最早出现的QKD网络实验就是利用光学节点实现的。实验中采用光分束器实现Alice和n个Bob的QKD。Alice发出的光子以1/N的概率被分配到接收端的任意一个Bob。分束器不具备路由功能,故Alice不能将光子传给指定的Bob。在此网络中,Alice能够同时和多个Bob分配密钥,但随着用户数N的增加,每个用户的码率都下降到单个用户时的1/N,所以效率很低。除了效率问题外,此网络过于依赖管理员Alice,如果Alice发生故障,整个网络就会瘫痪。另外,Bob之间也不能直接进行量子通信,必须依靠Alice中转密钥。
随后出现了许多改进型的网络,例如,基于波分复用(WDM)的树形QKD网络、基于光纤布拉格光栅(FBG)的总线型QKD网络、基于光分插复用(OADM)的总线型QKD网络,以及基于Sagnac干涉仪的环形QKD网络等[5]。
DARPA与哈佛大学、波士顿大学、NIST等多家研究机构合作建立的DARPA网络是光学节点QKD网络中较为成熟的一种,其结构如图1所示。网络中含有两个弱相干BB84发送端(Alice和Anna)、两个相互兼容的接收器Bob和Boris,以及一个22的光开关。在程序控制之下,光开关可以实现任意发送端和接收端的连接。Alice、Bob和光开关在BBN的实验室中,Anna在哈佛大学,Boris在波士顿大学。连接Alice、Bob和光开关的光纤长度为几米,连接Anna和BBN的光纤大约为10 km,Boris和BBN之间约为19 km,Anna和Boris通过光开关相连的光纤为29 km长。DARPA还含有Ali和Baba两个节点,他们是由NIST提供的高速自由空间QKD系统的电子子系统,Alex和Barb是新加入的基于纠缠的节点,未来还将加入由QinetiQ提供的两个自由空间QKD节点A和B[2]。
由光学节点构成的QKD网络可以实现多用户之间的密钥分配,在目前技术条件下易于实现。网络中根据经典光学的特性对量子信息进行路由,因此量子信息在传递过程中没有被破坏。然而,光学节点引入的插损使得安全的传输距离缩短,网络中随着节点数增多插损也随之增大,所以无源光学器件组成的QKD网络系统适用于局域范围内。
2 信任节点QKD网络
由信任节点构成的QKD网络是由多条QKD链路与信任节点按照一定的拓扑结构连接而成。当网络中的两个主机要进行保密通信时,他们先在经典信道上利用身份认证技术建立起连接供加密后的经典信息使用,然后,利用每个节点上生成的密钥对要发送的信息依次进行“加密-解密-加密--解密”操作。网络中的节点可以完成密钥的存取、分发、筛选、安全评估、误码协调、保密增强和密码管理等任务,每两个节点通过以上的操作可以协商出一套共有的密钥,并用这套密钥进行加密解密的操作。当解密完成后,信息所在的节点再用与下一个节点共有的密钥对信息进行加密,并将加密后的信息通过经典信道传输出去。假设点对点传输密钥的安全性可以保证(目前这种安全性通过实验已经得到了部分证实),通过信任节点连接的网络就可以在理论上实现远距离、多用户的绝对保密通信。
Secoqc QKD网络采用的就是这种由信任节点构成的QKD网络。图2为Secoqc QKD网络结构示意图。Secoqc网络由量子骨干(Quantum Back Bone,QBB)节点和QBB链路组成。
主机被连接到遍布网络中的不同QBB节点上,需要运行应用程序的主机还可以连接到量子接入节点(Quantum Access Node,QAN)上。QBB链路是连接QBB节点的特殊链路,是普通QKD链路的延伸。每一个QBB链路都包括任意条量子信道和一条经典信道。量子信道被用来传输量子密钥,多条量子密钥用于提高QKD速率。为了保证密钥传输的绝对安全,还需要一条经典信道作为辅助。这里提到的经典信道是一个虚拟的信道而不是物理信道,它负责传输会话密钥、路由信息和网络管理信息等。经典信道可以通过传输控制协议/网际协议(TCP/IP)套接字在公共网络上建立,也可以是一个直接连接两个相邻QBB节点的点到点链接。QKD网络中量子信道需要在QBB节点间产生本地密钥并探测出有没有窃听存在。只要量子比特的误码率低于安全阈值,两个QKD装置就能从原始密钥中提取出安全的密钥。当误码率过高时,原始密钥将被抛弃。
QBB节点是QKD网络的主要组成部分。它与传统网络中的路由器很相似,不仅能在QBB网络中存储转发密钥,还可以控制密钥的传输方向。同时,也可以作为密钥用户(例如:应用程序)的接入点。
由信任节点构成的网络可以同时保证多用户和长距离传输这两点要求,理论上甚至可以实现全球性的密钥分配网络。在现有技术条件下,这种网络易于实现。但随着网络规模扩大,节点增多,这种网络的安全性会大幅度下降。
3 量子节点QKD网络
为了克服量子信息在量子信道传输过程中的衰落,实现任意长距离的QKD,Briegel、Dür、 Cirac和Zoller(BDZC)提出了量子中继器(quantum repeater)的概念。量子中继器将纠缠交换、纠缠纯化和量子存储器技术相结合,有效地拓展了传输距离。基于光学节点和信任节点的网络都是在量子中继器研制成功之前采取的折衷方案,基于量子中继器的量子节点QKD网络才是真正意义上的全量子网络。
量子中继器是一个小型的专用量子计算机。它利用量子态的纠缠与交换来实现量子中继功能。量子中继的基本思想是把传输通道分成若干段,每段长度与通道衰减长度相当。首先,在每一段制备纠缠对,并发送到分段的两端,再对这些纠缠对进行纯化;通过相邻之间的纠缠交换,可以把提纯后的纠缠对的距离分布得更远。当完成纠缠交换后,纠缠度又会降低,还需要再提纯,这种纠缠交换与提纯,要重复若干轮,直到相隔很远的两地间建立了几乎完美的纠缠对。
应用于网络的量子中继器需要提供一个基本的纠缠体制和两个分布式算法,即纯化和远程传输。量子中继器将大量短距离、低保真度的纠缠光子对转换成少数长距离高保真度的纠缠光子对。具体继操作包含以下几个步骤:
(1) 生成纠缠光子对
产生纠缠光子对的常用方法是:用泵浦光打在非线性晶体(BBO)上,参量下转换使得一个光子与晶体相互作用,产生两个极化相互垂直的光子,它们构成一个纠缠光子对。泵浦光可分为单光子、光子对、弱激光脉冲和强激光脉冲这几类。强激光脉冲体制产生纠缠光子对的成功率很高,但保真度太低。单光子体制保真度高,但纠缠光子对产生率低。
(2) 纯化
当两个量子中继器成功产生多对纠缠光子对时,它们将开始分布式的量子计算过程,这个过程称为纯化。纯化的过程是将两个纠缠光子对通过本地量子操作和经典通信结合成一个保真度更高的纠缠光子对。纯化的效率取决于纯化算法和纯化安排。纯化算法一但被确定,可以应用到每一个光子对上,而纯化安排决定了哪对纠缠光子对将被纯化。
(3) 纠缠交换
以下描述一个简单的纠缠交换过程。纠缠光源产生两个纠缠光子对(1,2)和(3,4),通过对其中的两个粒子2、3作贝尔基测量,可以把1、4这两个从未见面的光子纠缠起来,从而实现纠缠交换。将这种纠缠交换方式应用到网络中可以实现量子密钥的长距离传输。
量子中继网络可以实现长距离、多用户的QKD。但到目前为止,基于量子节点的密钥分配网络还处于研究阶段。原因主要有两点:首先,量子中继器的重要组成部件量子存储器,还无法应用在QKD系统中;其次,纠缠纯化是概率性的,只有在所有段的纯化同时成功的情况下才能进行一次成功的通信,这样的概率将是呈指数衰减的。
2008年,中国科技大学潘建伟教授领导的小组利用冷原子量子存储技术,在国际上首次实现了具有存储和读出功能的纠缠交换,建立了由300 m光纤连接的两个冷原子系统之间的量子纠缠。这种冷原子系统之间的量子纠缠可以被读出并转化为光子纠缠,以进行进一步的传输和量子操作。该实验成果完美地实现了远距离量子通信中亟需的量子中继器,向未来全量子通信网络的最终实现迈出了坚实的一步。
4 实用的新型QKD网络模型
图3所示为一种结合量子节点和光学节点优点的新型QKD网络模型。在局域网中使用技术成熟的WDM实现Alice/Bob与N个用户的密钥分
配, 在广域网中通过量子中继器进行路由选择和量子中继。加密后的信息由经典信道(例如Internet)传输,量子密钥在量子网络中通过一条条量子信道传
输(这里的量子信道可以是光纤,也可以是自由空间)。通过这个网络,一个QKD终端可以与网络中的任意一个终端进行保密通信,不用担心信息被窃取。
5 结束语
通过对3种类型的QKD网络的对比分析可以看出:基于光学节点的QKD网络可以实现多用户之间的密钥分配,安全性较好且易于实现,但这种网络模型不易于扩展密钥分配的安全距离,故只适合在局域网中应用。基于信任节点的QKD网络可以同时保证多用户和长距离传输这两点要求,理论上甚至可以实现全球性的密钥分配网络。但随着网络的扩大,节点的增多,这种网络的安全性会大幅下降。量子中继网络可以实现长距离、多用户的QKD,但到目前为止,基于量子节点的密钥分配网络离实用化还有一段距离。基于以上几点,本文提出了一种切实可行的新型QKD网络模型,利用这种网络模型可以实现一个用户与网络中的另一个用户间无条件的保密通信。
摘要:量子密钥分配(QKD)网络是由网络节点按照一定的拓扑结构连接而成的。目前出现的QKD网络可根据其节点功能性分为3类:光学节点QKD网络、信任节点QKD网络以及量子节点QKD网络。文章论述了QKD网络的研究进展,对现有的3种网络的结构、性能进行了全面的对比分析。通过对比,提出了一种高效实用的新型QKD网络方案。
关键词:量子密钥分配网络,量子中继器,量子节点
参考文献
[1]Paul D T.Quantumcryptography on optical fiber net-works[J].Optical Fiber Technology,1998,(4):345-370.
[2]Chip E,Alexander C,Davin P,et al.Current statusof the DARPA quantum network[C].Cambridge,Massachusetts:SPIE,2005.5815:138-149.
[3]Mehrdad D,Romain A.Architecture of the Secoqcquantum key distribution Network[EB/OL].arxiv.org/abs/quant-ph/0610202,2006-10-25.
[4]Poppe A,Peev M,Maurhart O,et al.Outline of theSecoqc quantum-key-distribution network in Vienna[EB/OL].arxiv.org/pdf/0804.0122v1,2008-04-01.
密钥设计范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


