一种基于中国剩余定理的密钥分配方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2006年7月
July 2006
—146
— 计 算 机 工 程 Computer Engineering 第 第14期Vol 32卷
.32 № 14 ·安全技术·
文章编号:1000—3428(2006)14—0146—03
文献标识码:A
中图分类号:TP309
一种基于中国剩余定理的密钥分配方案
冯朝胜,袁 丁
(四川师范大学计算机科学学院,成都 610068)
摘 要:讨论了针对如何在数据库加密系统中进行密钥分配,并给出了一种易于实现的密钥分配方案。
该方案不要求用户拥有其能访问的所有数据类的密钥,只要求用户掌握由中国剩余定理计算出的用户类密钥。
当用户访问系统时,系统可以根据用户类密钥很快计算出其能访问的所有数据类的密钥。
在该密钥分配方案中,数据类的增加或删除、用户类的增加或删除和用户权限的变更都变得很容易实现。
关键词:密钥分配;中国剩余定理;用户类密钥;数据类密钥
A Key Distribution Scheme Based on
Chinese Remainder Theorem
FENG Chaosheng, YUAN Ding
(College of Computer Science, Sichuan Normal University, Chengdu 610068)
【Abstract 】This paper discusses how keys are distributed in database encryption system and proposes an easily implementing scheme of key distribution which requests an user to own only a key instead of keys of all datum classes which can be accessed by users. When a user accesses the system, it is extremely easy for the system to work out those keys of all secure datum classes which can be accessed according to user ,
s key. In the scheme, it became easy to add or delete a datum class or a user class and alter a user’s security. 【Key words 】Key distribution; Chinese remainder theorem; User class keys; Datum class keys
随着信息技术的飞速发展,计算机大批量数据存储的安全问题、敏感数据的防窃取和防篡改问题越来越引起人们的重视。
数据库系统作为计算机信息系统的核心部件,其安全问题是信息安全领域所要研究的一个重要方面。
对于一些重要或敏感数据,最安全的做法是以密文的形式存储和传输,并且这些数据不会因为用户的操作而泄露,而这些正是数据库加密系统所要做的。
文献[1]提出了一个较可行的数据库加密系统实现方案,然而本方案对如何分配密钥却没有给出一个具体地说明。
本文主要研究了如何基于中国剩余定理来进行密钥分配的问题,并在此基础上提出了一种灵活且易于实现的密钥分配方案。
1 密钥分配机制
1.1 数据库分级
数据库中数据的安全性是不一样的,根据安全性的不同,可以将数据分成若干个不同的数据安全类[2,3],每个数据安全类都有一个数据类密钥,不同的数据安全类其数据类密钥也是不一样的。
与数据安全相对应的是用户权限,根据用户权限的不同,用户可以分成若干个用户类,不同用户类权限的不同主要体现在它们对数据密钥的掌握上,权限最高的用户类拥有所有的数据类密钥,权限最低的用户只掌握了明文数据的密钥。
这样就可以用下面的符号来描述数据库及其用户:
(1)D={d 1,d 2,…,d n },表示数据库D 由数据安全类d i (整数i ∈[1,n])
组成;
(2)K ={k 1,k 2,…,k n },ki 表示与di 对应的数据类密钥; (3)UC ={uc 1,uc 2,…,uc m },表示使用D 的用户类;
(4)UCK ={uck 1,uck 2,…,uck m },uck i 为用户类uc i 的密钥。
1.2 用户权限表与加密字典
数据库某一用户类拥有某一数据安全类的密钥并不意味着该用户类可以对该类数据作任意操作,只意味着其可访问该数据类,究竟其可实施什么样的操作还要由用户权限表来决定。
用户权限表由中央授权机构(CA)建立和维护,其详细地规定了每个用户类对每个数据安全类的操作权限[4]。
加密字典也是一个表,它保存了数据表的各个字段的类型、大小,是否加密等信息,通过该字典,可以查到用户访问字段所属数据安全类的标识,进而可根据该标识在用户权限表中找到该用户的用户类密钥[1]。
1.3 密钥分配面临的问题
由于用户类权限的不同主要体现在对数据类密钥的掌握上,因此每个用户类都拥有其能处理数据类的密钥,但是如果每个用户类的用户都拥有其能处理数据类的密钥,那该用户就会有很多密钥,这时管理和存储这些密钥就成了用户的一个大问题,更严重的是这样做会大大降低密文数据的安全。
针对这些问题,考虑用中国剩余定理来将用户需要管理的若干个密钥“集成”为一个密钥,并且系统很容易根据这一个密钥导出用户能访问的所有数据安全类的密钥,这样既将用户和数据安全类密钥隔离开来,有效地保证了数据的安全, 又使得用户只需保管一个密钥,管理密钥变得简单、容易。
2 基于中国剩余定理的密钥分配
2.1 中国剩余定理
如果k ≥2, 而m 1,m 2, …,m k 是两两互素的k 个正整数, M
基金项目:国家自然科学基金资助项目(60473030);高等学校博士点基金资助项目(20020613020);四川省科技厅应用基础研究基金资助项目(04JY029-051-1);四川省教育厅重点课题基金资助项目(2003A 085)
作者简介:冯朝胜(1971—),男,硕士生,主研方向:信息与网络安全,电子商务;袁 丁,博士、副教授
收稿日期:2005-10-08 E-mail :jamesjiangfeng@
= m1m2…m k= m1M1= m2M2= … = m k M k,式中M i= M/m i,i= 1, 2, …, k。
则同时满足同余方程组:x≡b1(mod m1),x≡b2(mod m2), …,x ≡b k(mod mk )的正整数解是:
x0=b1M1’M1+b2M2’ M2+…+b k M k’M k( mod M )
式中,M’满足Mi’M i≡1 (mod m i)[5,6]。
2.2 密钥分配前的初始化工作
中央授权机构在分配密钥之前要做如下初始化工作:
生成n个数据安全类的密钥:k1,k2, …,k n;
选择(n+1)个两两互素的数:m1,m2,…,mn,r(ki<mi),并计算:
M=m1m2…mn r,Mi=M/m i,i= 1, 2, …,n,Mr=M/r
给每个用户类uc j分配一个用户类标识ID j (<r)和相应的权限,并将这些标识和权限连同该类用户可处理数据类(假设uc j能处理数据安全类d j1d j2…d js),对应的m j1m j2…m js数填入用户权限表中;
利用安全通道将用户权限表传送给数据库加密系统。
2.3 用户类密钥的分配
CA给每个用户类uc j分配密钥的过程如下:
(1)查询用户权限表,以确定用户类uc j的权限,假设查询到uc j能处理数据安全类d j1d j2…d js;
(2)计算用户类uc j的密钥:
uck j=k j1M j1’M j1+k j2M j2’M j2+…+k js M js’M js+ID j M r’M r(mod M)其中,M ji ’M ji≡1 (mod m ji) , i= 1,2,…,s,M r’M r≡1 (mod r),ID j为用户类uc j的用户类标识;
(3) 将用户类uc j的密钥uck j通过安全通道传送给属于该用户类的所有用户;
(4)重复(1)~(3),直到所有用户类的密钥被分配完。
2.4 数据类密钥的导出
当用户u i要对某数据处理时,数据库加密系统会根据用户所属的用户类uc j的密钥uck j、用户类标识ID j和该数据所属数据安全类的标识t计算出该数据类的密钥k t,具体过程如下:
(1)计算用户类标识ID j:
uck j(mod r) [k j1M j1’M j1+k j2M j2’M j2+…+k js M js’M js’+ID j M r’M r(mod M)] (mod r)
=[k j1M j1’M j1(mod r i)+…+k js M js’M js’(mod r)+ID j M r’M r(mod r)](mod M)=ID j(modM)== ID j;
(2)查询数据字典,获得数据所属的数据安全类标识t;
(3)根据ID j查询用户权限表,如果用户u i无权处理数据类t或进行超越其权限的操作,则拒绝操作;否则,从用户权限表中取出该数据类对应的数m t,接着转下一步;
(4)计算用户u i当前要访问数据类t的密钥k t:
uck j(mod m t)[ k j1M j1’M j1+k j2M j2’M j2+…+k js M js’M js+ID j M r’M r(mod M)] (mod m t)
= [ k j1M j1’M j1(mod m t)+…+k js M js’M js (mod m t)+ID j M r’M r
(mod m t)](mod M)
=k t M t’M t(mod m t)(mod M)=k t(mod M)=k t
其中, t ∈[ j1,js ]。
2.5 用户类密钥的再分配
下面给出了不同原因下密钥再分配的过程和步骤。
2.5.1数据安全类的添加
若要在当前的数据库加密系统中添加一个数据安全类d n+1,CA更新所有用户类密钥,CA更新用户类密钥uck j的过程如下:
(1)选择一个新素数m n+1,计算:
M=M m n+1,M i=M/m i, i=1,2,…,n+1;
(2)求解M i’,使得M i ‘M i≡1 (mod m n+1);
(3)计算用户uc j的密钥uck j 。
如果用户类uc j 无权权处理数据类
d n+1,则计算:
uck j=k j1M j1’M j1+k j2M j2’M j2+…+k jl M js’M js+ID j M r’M r(mod M) 否则,计算:
uck j=k j1M j1’M j1+k j2M j2’M j2+…+k js M js’M js+k n+1M n+1’M n+1+ID j M r’M r(mod M)
2.5.2数据安全类的删除
若要在当前的数据库加密系统中删除一个数据安全类d g,CA更新所有用户类密钥,更新uck j的过程如下:
计算:M=M/m g,M i=M/m i, i=1,2,…,n,且i≠g,求解M i’,使得M i ’M i≡1 (mod m i);
计算用户类uc j的新密钥uck j 。
如果用户类uc j原来就无权处理该数据,则计算:
uck j=k j1M j1’M j1+k j2M j2’M j2+…+k js M js’M js+ID j M r’M r(mod M) 否则,计算:
uck j=k j1M j1’M j1+k j2M j2’M j2+…+k js M js’M js+ID j M r’M r(mod M) 其中,jc≠g,c∈[1,s]。
2.5.3 用户类权限的变更
如果用户类uc j新添了对数据类d f的权限,则该用户类的新密钥为
uck j=uck j+k f M f’M f(mod M)
如果用户类uc j失去了对数据类d f的权限,则该用户的新密钥为
uk j=uk j-k f M f’M f(mod M),其中M f’M f j≡1(mod m f)
某个用户类权限的改变不会引起其它的用户类密钥的变化,因此没有必要更新其它用户类的密钥。
2.5.4用户类的变更
增加用户类时,CA根据给新用户类分配的权限和用户类标识按照密钥分配过程中步骤(4)的公式计算出新用户类的密钥;删除用户类时,CA只需删除用户权限表中该用户类对应的表目。
用户类的变更,即用户类的增加或删除,都不会影响其它的用户类密钥,但是CA必须对用户权限表作相应的修改。
2.5.5数据类密钥的变更
当用户类或用户类的权限发生变化时,一些用户类密钥会发生变化,但由于数据类密钥没有改变,因此密文数据无须改变。
然而,当某数据类密钥发生变更时,属于该数据类的密文数据应发生改变(同样的数据用不同的密钥加密得到的密文是不一样的),因此在更换数据类密钥之前,应将相关密文数据解密,再用新的密钥加密,这个工作显然应由权限最大的用户(超级用户)来完成。
另外,数据类密钥的更换还会引起所有的对该数据类有处理权限的用户类密钥的变化。
假设数据安全类d f的密钥由k f变更为k f’,用户类uc j有权访问该数据类,则uc j的新密钥为uck j=uck j-k f M f’M f +k f’M f’M f(mod M)。
2.6 重要数据的存放
数据类密钥K,作为对密文数据的安全性有至关重要影响的数据和生成用户类密钥UCK的根密钥,由CA加密保存。
用户权限表归数据库加密系统使用,但由CA来生成、更新和维护。
用户类密钥UCK由属于该用户类的用户保存。
序列{m1,m2,…,m n,r}和用户类标识ID使用非对称加密机制中的公钥e加密保存在用户权限表中。
加密字典中的数据由系统中权限最大的超级用户来管理和维护,任何其它的用户无权对其进行操作。
3 安全性分析和讨论
—147—
在本密钥分配方案中,由于每个用户类唯一需要存储的秘密信息只有它的密钥,因此每个用户类都不可能仅根据自己的密钥构造出其它用户类的密钥。
除此之外,对用户类标识ID加适当的约束条件就能保证任意几个用户类联合起来都不可能构造出其它用户类密钥。
比如uc1拥有数据安全类d1和d2的访问权限,uc2拥有对数据类d3的访问权限,uc3拥有对d1、d2和d3的访问权限,那么它们的密钥分别是
uck1=k1M1’M1+k2M2’M2+ID1M r’M r(mod M),uck2=k3M3’M3+ID2 M r’M r(mod M)
uck3=k1M1’M1+k2M2’M2+k3M3’M3+ID3M r’M r(mod M)
要使uck3=uck1+uck2,必须
k1M1’M1+k2M2’M2+k3M3’M3+ID3M r’M r(mod M)
=〔k1M1’M1+k2M2’M2+ID1M r’M r(mod M)〕+〔k3M3’M3+ID2 M r’M r(mod M)〕
=k1M1’M1+k2M2’M2+k3M3’M3+ID1M r’M r+ID2 M r’M r(mod M) 即ID3M r’M r(mod M)≡ID1M r’M r+ID2 M r’M r(mod M)
ID3(mod M)≡ID1+ID2(mod M)
类似地,容易证明s个用户类{uc j1,uc j2,…,uc js}要协作求出别的用户类uc i的密钥uck i必须满足:ID i=ID j1+ID j2+…+ID js(mod M),因此CA在给每个用户类分配用户类标识ID时,只要保证任意个用户类标识ID模M的和都不等于别的用户类的标识值,就能保证任意个用户类无法通过协作求得其它用户类密钥。
数据类密钥是与密文数据的安全性直接相关的密钥,一旦它被攻破,所有的密文数据都将泄露,因此除了CA以外,任何用户都不能直接接触数据类密钥。
在本方案中,尽管系统可以由用户类密钥导出相关的数据类密钥,但任何用户都不能由它的用户类密钥导出数据类密钥,除非他获得了相关数据类对应的数。
然而,事实上,序列{m1,m2,…,m n,r}是使用公钥e加密存储在用户权限表上的,只有数据库加密系统能通过私钥d解密它,因此拥有用户类密钥的用户无法导出数据类密钥。
4 本方案对数据库加密系统性能的影响
在本密钥分配方案中,系统每次获得数据安全类对应的数和密钥时,都会进行大数模运算,这势必会影响系统的速度,进而影响整个系统的工作性能。
为了加快模运算的速度可以采用蒙哥马利(Montgomery)算法[7]来进行模运算。
5 结束语
数据库加密系统是用来保护数据库中重要数据的系统,密钥分配作为设计和实现该系统的核心环节,直接决定着系统的安全。
本文主要从密钥分配机制、密钥的分配和再分配几个方面研究了数据库加密系统的密钥分配问题,并提出了一种基于中国剩余定理的密钥分配方案。
文中给出的密钥分配机制既有效地保护了重要数据,又使得本方案易于实现,而本方案所基于的中国剩余定理的不仅有效地保护了直接影响重要数据安全的数据类密钥,还使得用户类密钥的管理和分配变得灵活、简单。
本文最后提出的加强密钥分配安全性和提高系统工作性能的措施,进一步使本方案成为一种能满足数据库加密系统需要的切实可行的密钥分配方案。
参考文献
1朱鲁华, 陈容良. 数据库加密系统的设计和实现[J]. 计算机工程, 2002, 28(8): 61-63.
2宋雨, 赵文清. 密钥管理在管理信息系统中的应用研究[J]. 计算机工程与应用, 1999, 35(10): 95-97.
3陈卫. 数据库加密密钥的分配与管理技术[J]. 清华大学学报(自然科学版), 1994, 34(1): 99-103.
4尚杰, 戴一奇, 李向阳. 密文数据库及其密钥管理[J]. 计算机应用研究, 1996, 38(3): 98-100.
5 Trappe W, Lawrence C. Introduction to Cryptography with Coding Theory[M]. Washington:Pearson Education, 2002.
6 Garrett P. Making, Breaking: An Introduction to Cryptology[M]. Washington: Pearson Education, 2002.
7吴江. Montgomery算法在密码学中的两个应用[J]. 通信保密, 1996, 16(3): 58-61.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(上接第86页)
数据统计的时间尺度;第3行是预测步长t,取预测步长分别为3、60和180个时间单位;第4行是置信度,第5行是预测的实际精确度,即实际小于我们所计算的预定值的数据的比率。
从表中可看出,无论短期(步长为3个时间单位)还是长期预测(步长为180个时间单位),实际精确度均高于事先设定的置信度。
说明了我们的预测方法同时适应于短期和长期预测。
表1 基于网络流量半马尔柯夫模型流量预测结果
Trace Data Bell IPLS_KSCY CAIDA
Time Scale s 100ms 10ms
t 3 60 180 360 180 3 60 180
confidence 0.8 0.8 0.8 0.90.9 0.9 0.9 0.9 0.9
accuracy 0.9 0.84 0.82 0.990.94 0.91 0.96 0.96 0.97
4 结论
成功的流量预测离不开精确的流量模型。
本文在网络流量半马尔柯夫模型的基础上,分析并推导了流量预测方法。
通过对3组不同特性、不同时间尺度的Trace数据的分析和验证,表明我们的模型在流量预测方面具有良好的性能,能同时适应于短期和长期预测。
下一步工作主要是进一步完善我们的流量预测方法,使其能被应用于接入控制、冲突控制或动态带宽分配等网络管理中。
参考文献
1劳斯S M. 随机过程[M]. 北京: 中国统计出版社, 1997.
2 Paxson V, Floyd S. Wide-area Traffic: The Failure of Poisson Modeling[J]. IEEE/ACM Transactions on Networking, 1995, 3(3): 226-244.
2 Doulamis A D, Doularmis N D, Kollias S D. An Adaptable Neural Network Model for Recursive Nonlinear Traffic Prediction and Modeling of MPEG Video Sources[J]. IEEE Trans. on Neural Networks, 2003,14(1): 150-166.
3 Hall J, Mars P. Limitations of Artificial Neural Networks for Traffic Prediction in Broadband Networks[J]. IEE Proc. of Commun., 2000, 147(2): 114-118.
—148—。