秘密同态技术在数据库安全中的应用
王晓峰 % 王尚平 %,!
%(西安理工大学理学院,西安 ’%""&()
!(西安电子科技大学 )*+ 国家重点实验室,西安 ’%""’%)
,-./01:2/34-567789:;<$=:.
摘 要 讨论了数据库系统中信息加密的各种算法,并分析了各种算法的优缺点和应用环境;把秘密同态理论应用于加
密数据库中重要或敏感的信息,从而可以实现直接对数据库密文进行操作的技术。
关键词 记录加密 字段加密 子密钥 秘密同态
文章编号 %""!-(##%-(!""#)%&-"%>&-"# 文献标识码 ? 中图分类号 @A#">
!"# $%%&’()*’+, +- ./’0)*# 1+2+2+/%"’32 !#(",+&+45
’, 6)*)7)3# 8#(9/’*5
:),4 ;’)+-#,4< :),4 8"),4%’,4<,=
%(B0C/3 D30EFG90HI :6 @F=;3:1:4I,B0C/3 ’%""&()
!(+/H0:3/1 JFI K/L:G/H:GI :3 )*+,B0M0/3 D30EFG90HI,B0C/3 ’%""’%)
$73*/)(*: @;F E/G0:<9 036:G./H0:3 F3=GINH0:3 /G0H;.FH0= :6 M/H/L/9F 9I9HF. /GF M09=<99FM,/3M H;F /ME/3H/4F9 /3M M09O
/ME/3H/4F9 /3M /NN10=/H0:3 90H#5?+/@3:GF=:GM9 F3=GINH0:3,60F1M9 F3=GINH0:3,977-),女,讲师,信息与密码学专业硕士研究生,研究方向为信息安全与密码理论。王尚平(%>7#-),男,教授,密码学专业博士
生,研究方向为信息保密理论与电子商务的安全性。
%>&
!""#$%& 计算机工程与应用
某些记录时,如果不对这个含有这个字段的所有记录进行解密
果能对密文数据库进行数学运算和常规的数据库操作,显然能
就无法进行选择。
!$# 子密钥加密技术
为 了 解 决 基 于 记 录 的 数 据 库 加 密 技 术 存 在 的 问 题 ,’$($
)*+,- 等人在文献.%/中提出了子密钥数据库加密技术。子密钥
加密算法的核心思想是根据数据库 (特别是关系型数据库)中
数 据 组 织 的 特 点 ,在 加 密 时 以 记 录 为 单 位 进 行 加 密 操 作 ,而 在
解密时以字段为单位对单项数据进行解密操作。两者所用的密
钥 是 不 同 的 ,加 密 所 用 的 密 钥 是 针 对 整 个 记 录 的 密 钥 ,而 解 密
够 解 决 上 面 存 在 的 问 题 ,并 可 以 大 大 削 减 加 、解 密 所 需 要 的 时
空 开 销 ,大 大 提 高 数 据 库 的 运 行 效 率 。 秘 密 同 态 .!,#/(78,+*9:
;1010187;,<0)技术就是一个能解决上述问题的有效方法。
#$% 秘密同态的概念
秘 密 同 态 是 由 =,+> 等 人 于 %@AB 年 在 文 献.!/中 提 出 的 ,
是允许直接对密文进行操作的加密变换。后来由 )10,CD1 在文
献.#/中做了进一步的改进。秘密同态技术最早是用于对统计数
据 进 行 加 密 的 ,由 算 法 的 同 态 性 ,保 证 了 用 户 可 以 对 敏 感 数 据
所用的密钥是针对单个数据项的子密钥。该算法的理论依据是
进行操作但又不泄露数据信息。秘密同态技术是建立在代数理
著名的中国剩余定理 .&/。
论之上的,其基本思想如下:
中国剩余定理:假设 !%
数,那么 ,对 于 任 意 整 数 # %
0&
,!!
,# !
,…,!"
,… ,# "
是 " 个两两互素的正整
(01-2
,同 余 方 程 组 :$%# &
)%!&!" 必有解,并且任意两个解在模 !%!!
…!"
加密算法:假设一个待加密的记录有 " 个明文字段 ’%
,选取 " 个不同的两两互素的正整数 !%
,…,!"
,!!
…,’"
下同余。
,’!
,
,令 !%
"
!!&
& % %
,(&% !
!&
, 选 取 ) &
满 足 (&) &"% (01- !&
),(其 中 %!&!
")。令 *&%(&) &
(%!&!"),以(*%
,*!
,…,*"
)作 为 记 录 的 加 密 密
钥,+ 表示记录的密文,则加密运算为:+"
"
"*& ’&
&%%
(01- !)。
解 密 算 法 :!&
为 字 段 ’&
的 解 密 子 密 钥 , 根 据 中 国 剩 余 定
理,解密运算为:’&"+(01- !&
),(%#")。
子密钥加密技术的优点在于理论上原理简单,并可以对单
个数据项解密,克服了单纯的记录加密所存在的问题。缺点是
实际应用时必须对每个记录生成加密密钥,并对每个数据项生
成解秘密钥,对于大型的数据库文件,密钥管理是非常困难的。
!$& 基于字段的数据库加密技术
基于字段的数据库加密,就是以不同记录的不同字段为基
本加密单元进行加密。该方法可以对数据库中单个数据元素进
行加密。其优点在于具有最小的加密粒度,具有更好的灵活性
和适应性,缺点在于:(%)加解密效率低;(!)若用数据库密钥对
单个数据元素重复加密,对于密文搜索攻击是脆弱的;(#)若各
字段的数据元素分别用不同的密钥加密,则密钥个数3记录个
数4字段个数,其量是非常惊人的,根本无法管理。
!$5 生成子密钥的字段加密技术
为了解决上述问题,这里介绍一种可行的字段加密方案,
方案中主密钥只有一个,但各数据元素所用的密钥是不同的。
加密第 & 个记录的第 , 个字段所用的密钥为 * &,%-(. &
,*)。其
中,* 是原始的数据库密钥 (即主密钥),.&
是 记 录 & 的 唯 一 标
是字段 , 的唯一标识符,- 是子密钥生成函数,为单向
识符,’,
函数。这样所得的 *&,
计算
* 在计算上是不可行的,即密码体制是安全的。
是关于主密钥 * 的函数值,但由 * &,
,’,
# 秘密同态技术
上述数据库加密方法可以应用于不同的环境,但存在一个
共 同 的 问 题 是 :对 于 所 形 成 的 密 文 数 据 库 无 法 进 行 操 作 ,也 就
是说 ,对 于 密 文 数 据 库 ,若 要 对 某 些 字 段 进 行 统 计 、平 均 、求 和
等 数 学 运 算 时 ,必 须 先 对 这 些 字 段 进 行 解 密 运 算 ,然 后 对 明 文
进行数学运算,之后再加密。这样以来首先增大了时空开销;其
次,在实际应用中,对于某些重要或敏感数据,无法满足用户对
其 进 行 操 作 但 又 不 让 用 户 了 解 其 中 的 信 息 (例 如 ,在 每 个 雇 员
的工薪信息保密的情况下给雇员的工薪增加 %56)的需要。如
假设 /*%
、0*!
分别代表加密、解密函数,明文 数 据 空 间 中 的
元素是有限集合E(%
),/ *%
!(/*%
((%
,(!
((!
,…,("F,! 和 " 代表运算,若
,(!
),… ,/ *%
))3/ *%
("((%
(("
,… ,("
))
成立
且 ,0*!
(!(/*%
((%
),/*%
((!
),… ,/*%
)成立
("
(("
)))3"((%
,(!
,… ,
则称函数族(/*%
,!,")为一个秘密同态。
#$! 秘密同态技术在密文数据库中的应用
,0*!
(%)加密、解密算法
选取安全素数 1 和 2,令 !%12,! 保密;取明文空间 3%4!
,
密文空间 35%(41642
)"," 为安全参数;明文空间上的运算集合 ’
由对明文的模 ! 加、模 ! 减、模 ! 乘 组 成 ,密 文 空 间 上 的 运 算
集合 ’5 为对密文的模 ! 加、模 ! 减、模 ! 乘组成;分别取 71$
,
生成乘法子群 41GE"F和 42GE"F,加密密钥为 *%(1,2,71
41
72
、72$42
)。
,
.8"71
,8!
,… ,8"
,随 机 地 把 8 分 成 8%
加 密 算 法 :对 于 明 文 8$4!
,(&3%,!,…"),使满足 8301- !,对 8 的加密运算为:
8&$4!
(8)3(.8%7101- 1,8%7201- 2/,.8!71
/*
" 01- 1,8"72
解 密 算 法 :对 于 密 文 /*
(8),对 应 的 & 次.01- 1,01- 2/分
别乘以.71
9& 01- 2/得到.8& 01- 1,8& 01- 2/(其中 &3
%,!,…"),求总和得到.8 01- 1,8 01- 2/,用 中 国 剩 余 定 理 可
求得 8 01- !。
!01- 1,8!72
9& 01- 1,72
" 01- 2/)
!01- 2/,… ,
(!)运算的定义
在 上 述 加 密 过 程 中 , 如 果 明 文 8、: 的 加 密 运 算 /*
,则 乘 积 /*
和 "!
(8)、/*
(;)%/*
)次 指 数 幂 运 算 的 项 目 /*,,
(:)是 由 含 有 %!,!"("%"%H"!
(:)含有的最高次指数幂运算分别为 "%
(8)/*
(;)组成的,把 /*
(/*,%
(;),/*,!
如果设 7%(71
(;)表示为向量形式:
(;),…,/*,"
,72
),则 /*
(;).7/3<%7=/*
(8>:)%/*
(:)为 4!
上 的 向 量 加 减 法 或 4!
上的多项式加减法;
(?)
(@)>
特别地:/*
/*
乘:/*
(8:)%/*
/*
/*
(8)/*
/*
(A)
(B)%
(:)为 4!
(?)/*
/*
(B)>/*
(@)/*
(@)/*
(B)
(A)
上的向量乘积或系数在 4!
上
的多项式乘积;
(8)/*
事实上,/*
((8%8H8!7!H…H8"%
3.(8%71 01-1,8%72 01-2)=(8!7!
(:)可以被表示为多项式的形式:
"% )(:%7H :!7!H…=:"!
7
"! ))
7
101-1,8!7!
"%
201-2)=…=(8"%
%@5
71
计算机工程与应用 !""#$%&
+4L!," #%
$%
#%
+4L%)* ·)(&%$! +4L!,"%$% +4L%)’(&!$!
!+4L!,
&!$!
%+4L%)’…’(!
#!
$!
+4L!,!
#!
$%
+4L%)*
\)("%$!’"!$!
!’… ’" #%
$!
#% )+4L!,("%$%’"!$!
#% )+4L%*·
%’ … ’" #%
$%
#! )+4L%*
$%
)(&%$!’&!$!
!’…’!
\)("%$!’"!$!
#! )+4L!,(&%$%’&!$!
$!
#% )(&%$!’&!$!
!’… ’" #%
%’…’!
!’ … ’& #!
$!
#! )*+4L! ]("%$%’
$!
"!$!
#% )(&%$%’&!$!
$%
%’…’"#%
其中,%!),+!#%
%’…’!
,%!*,,!#!
)’*
#! )+4L%(!") &* $
! ’!"+ &, $
$%
。
,%!)’*!#,%!+’,!#,#(#%]#!
+’,
%
("&)(-.
-.
(("%]"!]…’"#%
)(&%]&!]…’!
))(-.
(
!")&*
)
) / *
("&)可 以 被 表 示 为 多 项 式 形 式 :
-.
!")&*$
) / *
)’*
(
!")&*$!
) / *
)’*
]
!"+&,$%
+’,
+ / ,
其 中 ,%!),+!#%
,%!*,,!#!
,%!)’* !#,%!+ ’,!#,#(#%]
。
#!
除法运算:-.
("
&
上的多项式相除。
01
)(
-.
-.
(")
(&)
为 01
上的向量相除或系数 在
由上述加减乘除运算可得:
(5)
(6)(
(2)
(3)4
4 5
6
(2
3
)(
-.
-.
-.
-.
-.
-.
(2)-.
-.
(6)4-.
(3)-.
(3)-.
(6)
(5)
这些运算保证了可以直接对密文进行运算操作。
(#)安全性
秘密同态加密算法对于唯密攻击和已知随机明M密文对攻
击是安全的(参见文献)#*)。
& 数据库信息确认技术
(上接 %’( 页)
则 计 算 的 数 据 包 丢 失 率 意 义 不 大 ;也 不 能 太 长 ,太 长 则 浪 费 带
宽。根据文献)%*的仿真数据,!" 秒的测试报文持续时间较为合
理 ,因 为 每 !"+, 产 生 一 个 测 试 报 文 ,所 以 测 试 报 文 的 样 本 空
间大小为 %""" 个语音包时较为合适。为了不影响正常的语音
包,测试报文的优先级比正常的语音包要低。接收方收到测试
报文后,回送 -./0 报文给发送方。发送方根据测试报文的丢
失率来决定是否接纳初次呼叫。
1 服务级别的动态协商
在 20 网 络 电 话 的 通 话 过 程 中 ,345 管 理 者 通 过 -./0 报
文不断监测语 音 数 据 的 传 输 质 量 , 当 345 管 理 者 判 定 当 前 网
络的状态为网络拥塞时,它就认为当前网络不能满足用户所提
出的 345 要求。此时需要改变通信双方的服务质量,如改变话
音的编码算法等,以适应网络的变化。
当 345 管理者需要改变话音的编码算法时,需要启动 6$
#!# 管理进程的 6$!&1 能力交换过程,双 方 协 商 一 个 低 速 率 的
话音编码算法,打开新的逻辑信道,关闭原来的逻辑信道。这样
语音数据的流量就会减少,网络的拥塞程度会有所改善。
( 总结
%Y(
!""#$%& 计算机工程与应用
对于特别重要或敏感的数据,用户访问时需要确认数据是
否已经被篡改。可以用 6A,?)1*函数来实现数据库确认技术。确
认也可以是基于文件、记录、字段的。确认算法为:先计算明文
的 6A,? 值,把 6A,? 值与明文一起加密。解密得到明文以保存
的 6A,? 值 ,用 同 样 的 6A,? 函 数 计 算 明 文 的 6A,? 值 ,并 与 先
前保存的 6A,? 值比对,相同则证明信息没有被篡改,否则认为
信息已经被篡改。
1 结束语
数据库安全问题是当前信息技术研究的一大热点。上面讨
论 的 各 种 数 据 库 信 息 加 密 技 术 ,都 有 各 自 的 优 缺 点 ,实 用 于 不
同安全要求和应用环境。利用秘密同态技术对数据库信息进行
加密,能够在不泄露数据库信息的前提下对密文数据库进行数
学运算和常规的数据库操作,是一种能够满足某些特殊要求的
有效的数据库加密方法。
就目前来说,在 2789:798 上要实现共享数据库的加密,还有
一定的困难性和复杂度。另外,数据库加密还存在一定的局限
性 ,如 密 文 膨 胀 问 题 、数 据 可 靠 性 问 题 、密 钥 管 理 问 题 、数 据 加
密算法的固有局限性等等。(收稿日期:!""! 年 ^ 月)
参考文献
%$_AQ=LA ‘ 2 ,H9OO, _ V ,
:DR8=47 5D,89+
J=8? 5CSI9D,)P*$N/@ .:A7, a7 _A8ASA,9 5D,89+,,%Y’%;(()
!$- W -=Q9,8,W NLO9+A7,@ W _9:84CZ4,$a7 LA8A SA7I, A7L R:=QA>D
?4+4+4:R?=,+)/*$27:- N _9@=OO4 KL,$[4C7LA8=47, 4F ,9>C:9 /4+M
RC8A8=47,G9J B4CI:N>AL9+=> 0:9,,,%Y^’:%(Yb%^Y
#$P _4+=7E4M[9::9:$N G9J R:=QA>D ?4+4+4:R?=,+ A7L ARRO=>A8=47,)P*$
27F4:+A8=47 0:4>9,,=7E W9889:,,%YY(;("(1):!^^b!’!
&$潘承洞,潘承彪$初等数论)@*$北京大学出版社,%YY%M%%
1$GA8=47AO27,8=8C89 4F 58A7LA:L, A7L .9>?74O4ED$59>C:9 6A,? 58A7LA:L
)5*$[9L9:AO 27F4:+A8=47 0:4>9,,=7E 58A7LA:L, 0CSO=>A8=47 %’"M%,%YY1M"&
由于目前的大多数网络(如 2789:798)尚不能对 345 要求提
供充分的支 持 , 因 此 采 取 适 当 的 345 管 理 和 控 制 手 段 以 保 证
话音质量对现有的 20 网络电话是非常必要的。如果对 20 电话
的 345 不加以 控 制 , 那 么 在 网 络 拥 塞 时 , 只 要 有 新 的 呼 叫 产
生,网络的拥塞就会进一步恶化。如果采用 -5;0 的资源预留
方法,由 于 它 要 求 网 络 中 所 有 的 路 由 器 都 必 须 支 持 -5;0;它
还要求网络路由器维护单个流的状态,这大大加重了网络路由
器的负担;它的资源预留机制也可能造成带宽利用率的降低。
因此,在很多 情 况 下 ,-5;0 并 不 能 很 好 地 适 用 ,尤 其 是 核 心 网
络。论文提出的 20 网络电话的 345 管理方法能较好地适应各
种 网 络 环 境 ,并 且 在 网 络 通 信 条 件 不 断 变 化 的 情 况 下 ,仍 能 提
供必要的 345 控制与保障。它不需要网络增加任何功能,十分
适用于现在网络的发展水平。(收稿日期:!""! 年 1 月)
参考文献
%$<97=>?= @A,9,BC=>?=:4 .4DA+A$345 @A7AE9+978 F4: ;420 G98H4:I,
J=8? KLE9M84MKLE9 NL+=,,=47 /478:4O)P*$2KKK !""%
!$@4:EA7 5 0,<9,?AQ 5$0A>I98MRA=: :A89 >478:4OMSCFF9: :9TC=:9+978,
A7L 4Q9:O4AL R9:F4:+A7>9)@*$N. U . V9OO WAS4:A84:=9,,X5N,.9>?M
7=>AO @9+4:A7LC+,%YY&
#$5>?COZ:=779 6 98 AO$-.0:N .:A7,R4:8 0:484>4O F4: -9AOM8=+9 NRRO=M
>A8=47)P*$2K.[,%YY1M%%