RSA算法在教学管理数据库加密中的应用

2022-09-13

一、RSA算法简介

1978年, Ronald.L.Rivest, Adi.Shamir和Leonard.AdlemanUI共同发表了著名的论文“A Method for Obtaining Digital Signatures and Public-Key Cryptosystems" (获得数字签名和公开密钥密码系统的一种方法) , 继MH背包公钥密码体制以后提出了第一个有效的公钥密码体制, 现被用他们的名字的首字母命名, 称为RSA公钥密码体制。由于算法完善 (既可用于数据加密, 又可用于数字签名) , 安全性良好, 易于实现和理解, RSA己成为一种应用极广的公钥密码体制[1]。根据不同的应用需要, 人们基于RSA算法开发了大量的加密方案与产品。

二、RSA算法原理

(一) RSA算法的基本原理。

RSA算法的加解密过程完全类同于公开密钥密码体制, 所不同的而且是极具特点的是使用了指数表达式。明文以分组为单位加密, 其中每个分组是小于某个数n几进制值。也就是说, 分组大小必须小于或等于log2 (n) ;实践中分组大小是k比特, 其中2k

(二) RSA算法的实现过程。

RSA的理论基础是一种特殊的可逆模指数运算。它的安全性理论上是数论中的基于大整数分解的困难性, 虽然这一点还没有被证明[2]。RSA是一个比较完善的密码体制, 它既可用于加密也可用于数字签名。

RSA算法有许多方面需要讨论, 包括建立密码系统的细节、加密和解密的有效性以及安全性等问题。下面我们分别描述RSA加密算法的具体步骤和RSA加密、解密变换。

1、RSA算法的初始化。

(1) 系统产生两个大素数p、q (保密) ;

(2) 计算n=pq (公开) , 欧拉函数∮ (n) = (p-1) (q-1) ;

(3) 随机选取整数e作为公钥 (加密密钥) , 满足gcd (e, ∮ (n) ) =1 (公开) ;

(4) 计算私钥d (解密密钥) , 满足ed≡1 (mod∮ (n) ) , 也就是说e≡d-1 (mod∮ (n) ) 。销毁p、q及∮ (n) 。

2、RSA加密、解密变换。

首先将明文分块并数字化, 每个数字化明文块的长度不大于Llog2司;然后每个明文块m (0

(1) 加密变换:使用公钥e加密明文m, 即cm≡m e (mod n) ;

(2) 解密变换:使用私钥d将密文c解密, 获得明文m, 即m≡d e (mod n) 。

下面证明RSA加密、解密变换是合法的。

由于ed≡1 (mod∮ (n) ) , 因此有ed=t∮ (n) +1, 对某个t≥l。

假定x∈Zn e, 则有:

(xd) e≡x t∮ (n) +1 (mod n) ≡ (x∮ (n) ) t x (mod n) ≡1t x (mod n) ≡x (mod n) 。

可知加密和解密变换是可逆的。

三、RAS在数据加密中的应用

(一) 数据加密的基本要求。

数据库中数据加密的粒度一般有表级、记录级、字段级和数据级4种。加密粒度越小, 则适用范围越广, 但实现难度就越大。就目前研究现状以记录或字段为加密粒度居多, 数据加密通过对明文进行复的加密操作, 以达到无法发现明文和密文之间、密文和密钥之间的内在关系, 也就是说经过加密的数据经得起来自OS和DBMS的攻击。另一方面, DBMS要完成对数据库文件的管理和使用, 必须具有能够识别部分数据的条件。

1、字段加密:

在目前条件下加/解密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密, 必然会形成密钥的反复使用从而降低加密系统的可靠性或者因加/解密时间过长而无法使用。只有以记录的字段数据为单位进行加/解密才能适应数据库操作, 同时进行有效的密钥管理并完成一次一密的密码操作。

2、合理处理数据:

在实现数据库加密时, 既要恰当地处理数据类型, 又要在基本不增加空间开销的情况下, 处理好数据的存储问题。否则数据库系统将会因加密后的数据不符合定义的数据类型而拒绝加载。在目前条件下, 数据库关系运算中的匹配字段, 如表间连接码、索引字段等数据不宜加密。对于文献字段, 虽然也是检索字段但应该允许加密, 因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。

3、密钥动态管理:

数据库客体之间隐含着复杂的逻辑关系。一个逻辑结构可能对应多个数据库物理客体。所以数据库加密不仅密钥量大, 且组织和存储工作比较复杂, 需要对密钥实现动态管理。

4、不影响合法用户的操作:

加密系统影响数据操作响应时间应尽量短, 对数据库的合法用户来说, 数据的录入、修改和检索操作应该是透明的, 不需要考虑数据的加/解密问题。

(二) RSA算法的数据库加解密实现。

数据库加密系统分成两个功能独立的主要部件加解密字典管理程序和数据库加/解密引擎。数据库加密系统将用户对数据库信息具体的加密要求记载在加密字典中。加密字典是数据库加密系统的基础信息, 加密字典管理程序是管理加密字典的实用程序是数据库管理员变更加密要求的工具, 它通过数据库加解密引擎实现对数据库表的加/密解密及数据转换等功能。数据库加/解密引擎是数据库加密系统的核心部件, 负责在后台完成数据库信息的加/解密处理, 对应用开发人员和操作人员是透明的。

按上述方式实现的数据库加密系统具有以下优点:

1、系统对数据库的最终用户完全透明。数据管理员可指定需要加密的数据并根据需要进行明文/密文的转换工作。2、系统完全独立于数据库应用系统。不需要改动数据库应用系统就能实现加密功能, 实现了“一次一密”。3、系统在客户端进行数据加/解密运算。不会影响数据库服务器的系统效率, 数据加/解密运算基本无延迟感觉。

四、小结

在实际应用中要实现一个有效、快捷和真正安全的网络数据库是十分困难和复杂的。数据库加密系统首先要解决系统本身的安全性和可靠性问题, 然后采用有效的加密方法对数据进行加密。RSA算法从提出到现在已近二十年, 经历了各种攻击的考验, 能够满足数据库安全的要求, 具有一定的实用性和推广性。

摘要:RSA是目前公认的在理论和实际应用中最为成熟和完善的一种公钥密码制, 不仅可以进行加密, 还可以用来进行数字签名和身份验证, 是公钥密码体的代表。本文将RSA算法运用到教学管理数据库中, 提出了数据加/解密的方法。

关键词:RSA,算法、数据库

参考文献

[1] 卢开澄.计算机密码学[M]第2版.北京:清华大学出版社, 1998.

[2] 看雪.加密于解密--软件保护技术及完全解决方案[M]北京:电子工业出版社.2001.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:探析政府预算会计与财务会计的结合下一篇:神秘的海蓝宝石