APP下载

数字图书加密措施与密钥管理

2014-03-25杨清兰

合作经济与科技 2014年5期
关键词:数字图书加密算法解密

□文/杨清兰

(郑州轻工业学院图书馆 河南·郑州)

一、引言

数字图书馆建设是图书馆事业发展的一个重要举措。随着网络和信息技术的发展,数字图书馆必将给读者和用户带来极大的方便。然而,数字图书馆建设中数字图书的安全存储也将面临着一种挑战。数字图书的安全存储直接涉及到数字图书的出版者、作者和读者的版权和利益。为保证数字图书馆的安全,需要对数字图书馆中所存储的数字图书进行加密。然而,在未来的数字图书馆中,将存储海量的数字图书。如何对如此巨大的数字资源进行快速加密和解密,以及如何对数字图书的加密密钥进行管理,是一个需要面临的重要问题。本文给出数字图书的对称加密措施,并利用Hash 函数和数字图书密钥种子为不同的数字图书产生不同的加密密钥,从而使得数字图书的加密方案更为安全。而且,为保证数字图书密钥种子的安全性,本文利用门限方案对用于数字图书加密的密钥种子进行门限分割,使得密钥种子的存储和恢复具有更好的安全性。在对称加密下,可以快速实现对数字图书的加密和解密。同时,门限秘密分割方案使得数字图书的加密密钥管理更加安全。这一新措施将有利于数字图书馆数字图书的安全保存。

本文安排如下:在第2 节,给出数字图书的对称加密措施;在第3 节,给出数字图书的加密密钥管理和加密措施;在第4 节,给出结论。

二、数字图书对称加密措施

目前,常见的加密技术可以分为两类:非对称加密技术和对称加密技术。非对称加密技术又称为公钥加密技术。非对称加密技术的核心是非对称加密算法,而这些算法的安全性主要是基于密码单向函数和数学困难问题。在非对称加密算法中,使用的加密密钥和解密密钥不同。通常,由加密密钥无法推出解密密钥。比较经典的非对称加密算法主要包括基于大数分解困难问题的RSA 算法,基于离散对数困难问题的ElGmal 加密算法和基于双线性对的加密算法。然而,这些加密和解密算法需要幂方运算、模数运算或双线性对运算,故相对于对称加密算法而言,他们的计算速度较慢。特别是对海量数字图书进行加密时,这种非对称加密算法是不可取的。因此,对于数字图书而言,利用对称加密算法进行加密是一种理想的选择。

与非对称加密算法不同的是,对称加密算法使用的加密密钥和解密密钥相同或者等价。对称加密算法主要包括三类,即DES(Data encryption standard)、IDEA(international data encryption algorithm)和AES(advanced encryption standard)。目前,使用最为广泛和流行的是DES。DES由美国IBM 公司研制,其技术和应用也非常成熟。但是,据报道,1998年5月美国EFF(electronics frontier foundation)宣布,其利用专用的解密机,在56 小时破译了56 比特密钥的DES。而对于DES,是否对于长度更长的密钥也能得到攻破,目前并未报道。但是,可以肯定,DES 的安全性受到威胁。IDEA 由来学嘉和J.L.Massey提出,是一种设计比较成功的对称加密算法,但其目前应用并不广泛。AES 以Rigndael 算法为核心,采取的是宽轨迹策略,具备抵抗差分密码分析及线性密码分析的能力。其比DES 快,更为安全,其密钥长度具有128 比特、192 比特和256 比特三种选择。重要的是,对于AES,目前还没有有效的攻击手段和破解方法。因此,建议利用AES 对海量的数字图书进行加密,并将数字图书的密文保存到数字图书馆的存储设备中。

对称加密算法的安全性主要依赖于加密密钥(解密密钥)的安全性。一旦加密密钥遭到泄露,则密钥获得者可以根据加密密钥解密数字图书的密文,从而获得数字图书的原文。因此,从某种意义上讲,数字图书的安全性,主要依赖于加密密钥的安全性。因此,需要加强对数字图书加密密钥的安全保管。同时,需要注意的是,对于数以百万计的海量数字图书,如果使用同一个加密密钥进行对称加密,则在某种情况下会具有潜在威胁。比如,若这一加密密钥被某人非法获取或破解,则他(她)可以解密所有的数字图书。因此,为保证数字图书对称加密更为安全,建议对不同的数字图书采用不同的加密密钥进行加密,从而使数字图书的加密措施更为安全。这是因为,即使一本数字图书的加密密钥遭到泄露,但其他数字图书对应的加密密钥仍然安全。即尽量避免加密密钥的重复使用。然而,我们面临着一个问题,如果每本图书都具有不同的加密密钥,则对于数以百万计的海量数字图书,需要设置数以百万计的加密密钥。对于如此庞大的密钥量,如何进行管理,是一个需要解决的问题。因此,在下一节,我们给出数字图书加密密钥的管理和加密措施。

三、数字图书加密密钥的管理和加密措施

为更加安全地对数字图书进行加密,我们除了选用AES 加密算法外,希望每一本数字图书都使用不同的对称加密密钥进行加密。如何针对不同数字图书,安全地产生不同的数字图书加密密钥,如何保存这些密钥是本节讨论的主要内容。在给出这些密钥管理措施之前,需要先给出一些参数。

假定H∶{0,1}*→{0,1}l为一个安全的密码单向hash 函数,其将任意长的二进制串映为长度为l 的二进制串。在这里,l 可以取128、192 和256 三种选择。数字图书馆的管理者随机选取一个长度为d 的二进制串Seed,d 可以取1024,或者更长。Seed 作为所有数字图书的密钥种子,用于为所有的数字图书产生加密密钥。在这里,需要注意的是,Seed 应该由数字图书馆的管理者采取门限措施予以安全保存。这种门限措施,我们放在第4节予以给出。

现在,对任何一本数字图书Booki,为对其产生加密密钥,数字图书馆的管理者计算:

booki_key=H(Seed||booki_information)

并将booki_key 作为booki的加密密钥。在这里,booki_information 表示数字图书Booki的简要代表信息,其主要包括图书的作者、出版商、出版日期、书号等信息,而符号“||”表示二进制串的连接。由于hash 函数具有抗碰撞性和均匀分布性,故对不同的booki_information,将生成不同的booki_key。最终,将booki_key 作为数字图书booki的加密密钥,并用AES 算法对booki进行加密得到Booki的密文:

Cipheri=AES(Booki,booki_key)

将相应的密文Cipheri保存在数字图书馆的存储设备上,从而保证数字图书的安全性。这样,结合上一节的内容,图1给出数字图书的一个加密方案。(图1)

图1 数字图书的加密密钥产生措施和相应的AES加密措施

从图1可以看出,每本数字图书Booki所使用的加密密钥booki_key 各不相同,故每本数字图书加密后产生的密文Cipheri也各不相同。

虽然加密密钥booki_key 各不相同,但数字图书馆的管理者无需存储这些加密密钥。这是因为,对于任何一本数字图书Booki,数字图书馆的管理者只需计算:

booki_key=H(Seed||booki_information)

便可获得对应图书的加密密钥。因此,对于管理者,其只需秘密的存储密钥种子Seed 即可。

当用户需要阅读数字图书的原文Booki时,数字图书馆管理者利用密钥种子Seed 和hash 函数H 计算出的加密密钥booki_key,并利用AES 解密算法还原数字图书密文Cipheri对应的原文,即计算:

Booki=AES-1(Cipheri,booki_key)

在上式中,AES-1表示与AES 加密算法对应的解密算法。可以通过图2描述Cipheri的解密过程。(图2)

图2 数字图书密文Cipheri的AES解密过程

由于AES 算法已经被密码学家证明是安全的,故在已知密文Cipheri但不知道加密密钥booki_key 的情况下,非法用户无法解密Ciphteri获得数字图书Booki的原文内容。若非法用户企图猜测出booki_key,但由于booki_key 的长度至少为128 比特,这种能够猜测出booki_key的概率最多为2-128,这是一个可以忽略的概率。因此,booki_key 具有安全性,这使得Ciphteri也具有保密性。事实上,上述的加密措施具有更进一步的安全性。可以看出,即使booki_key 遭到泄露后,由于H为一个单向hash 函数,故非法用户无法由booki_key 和booki_information 获 得Seed(注意,Seed 是由数字图书馆管理者秘密保存)。并且,即使booki_key 遭到泄露,由于非法用户不知道Seed,故其无法计算Bookj(i≠j)的加密密钥bookj_key=H(Seed||bookj_information)。也就是说,在booki_key 遭到泄露的情况下,Bookj的加密密钥仍然安全,非法用户仍然无法解密Ciphterj而获得Bookj。

从上面的分析可知,数字图书馆的管理者只需要对密钥种子Seed 安全保存,便可推出任何一个数字图书的加密密钥(解密密钥),从而实现对任何一本数字图书的加密和解密。因此,对Seed 的安全保存尤为重要。为此,我们采用(k,t)门限秘密分割的方法对Seed 进行秘密分割,将Seed 分割成t 个部分,每一部分称为一个秘密因子,分别放到不同的数字图书馆t个不同的主机上,使得只有同时获取k 个或k 个以上的主机秘密因子才能恢复Seed,而任何少于k 个秘密因子无法恢复密钥种子Seed。数字图书馆管理者将这t个秘密因子秘密地放到数字图书馆t 个不同的主机上进行保存。称这种秘密分割方案为(k,t)门限秘密分割方案。下面,我们给出这种方案的实现。

设GF(q)是一有限域,其中是一个安全的大素数q(如,q 取1024 比特),且q≥t+1。假定Seed 为数字图书馆管理者在GF(q){0}上随机选取的一个数(显然,其等价为一个二进制串)。另外,数字图书馆管理者在GF(q){0}上再随机选取数k-1 个数a1,a2,…,ak-1,并在GF(q){0}上构造一个k-1 次多项式f(x)=Seed+a1x+a2x2+…+ak-1xk-1(modq)。数字图书管理者分别计算f(1),f(2),…,f(t),称这t 个数为秘密因子。数字图书馆管理者将(1,f(1)),(2,f(2)),…,(t,f(t)))这t 个数对分别分配给主机M1,M2,…,Mt秘密保存,并销毁Seed,a1,a2,…,at。这样,若数字图书馆管理者从任何k 个主机Mi1,Mi2,…,Mik获取相关秘密因子f(i1),f(i2),…,f(ik),便可通过计算恢复出密钥种子

Seed:

但是,如果获得任何等于或少于k-1个主机的密钥因子,则无法恢复密钥种子。这是因为,若仅仅具备k-1 个密钥因子f(i1),f(i2),…,f(ik-1),要想计算出Seed,则必须解出线性方程组:

才能获得Seed。然而,这是一个k-1 个方程构成的具有k 个未知量的线性方程组,故无法解出Seed。因此,若仅仅获得少于或等于k-1 个主机的秘密因子,是无法获得Seed 的。下面的图3和图4给出了数字图书密钥种子Seed 的(k,t)门限秘密分割和恢复过程。(图3、图4)

图3 数字图书密钥种子Seed的(k,t)门限秘密分割过程

图4 数字图书密钥种子Seed的恢复过程

通过上述的秘密分割方案,使得Seed 具有很好的安全性。首先,需要注意的是,秘密因子被分别秘密地保存到t 个主机上。即使一个或小于等于k-1 个主机的密钥因子遭到泄露,非法用户仍然无法获得数字图书的加密密钥种子。其次,即使若干个主机遭到物理损害,只要仍有k个主机密钥因子保存完好,则数字图书馆管理者便可根据这k 个主机密钥因子恢复出密钥种子,从而可以计算出任何一本数字图书的加密密钥(解密密钥),并能解密相应的数字图书的密文。因此,这种将数字图书的加密密钥种子进行秘密分割的方案具有安全的保存特性和恢复特性。

四、结束语

数字图书馆的主要存储内容是数字图书。为保证数字图书馆数字图书的安全性,本文提出利用AES 加密海量数字图书的思路。并且,为使得数字图书的加密具有更好的安全性,本文提出利用Hash函数和密钥种子为不同的图书产生不同的加密密钥,针对不同的数字图书利用不同的加密密钥进行加密。数字图书的加密密钥互不相关,即一本图书的加密密钥泄露并不会影响其他数字图书的密文的安全性。同时,数字图书馆管理者无需存储数字图书的加密密钥,其可以方便地利用密钥种子和数字图书的代表信息恢复数字图书的加密密钥。为使得密钥种子具有较好的安全性,本文还提出利用门限方案对数字图书加密密钥种子进行秘密分割,使得密钥种子具有更安全的保存特性和恢复特性。

[1]张长安,柏丽娜.DRM技术及其在数字图书馆中的应用[J].现代图书情报技术,2003.3.

[2]杨海平.E-book研究[J].中国图书馆学报,2001.4.

[3]杨海平.电子图书版权问题研究[J].图书馆论坛,2004.24.6.

[4]Rivest R L,Shamir A,Adelman L.A Method for Obtain Digital Signatures and Public-key Cryptosystem.Commun.ACM,21.2.

[5]ElGamal T.A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms.IEEE Tran.Information Theory,1985.4.

[6]DanBoneh,Xavier Boyen.Secure Identity Based Encryption Without Random Oracles.In:M.Franklin(Ed.):CRYPTO2004.Berlin:Springer-Verlage,LNCS3152,2004.

[7]杨波.现代密码学(第二版)[M].北京:清华大学出版社,2009.6.

猜你喜欢

数字图书加密算法解密
区块链在数字图书侵权中的司法救济作用分析
炫词解密
解密“一包三改”
炫词解密
基于小波变换和混沌映射的图像加密算法
数字图书营销方法探究
Hill加密算法的改进
解密“大调解”
对称加密算法RC5的架构设计与电路实现
基于Arnold变换和Lorenz混沌系统的彩色图像加密算法