在DM6.0上扩展加密算法

文章来自达梦技术社区http://bbs.dameng.com/
DM 系统中内置了常用的DES,AES, RC4等加密算法供用户使用,以此来保护数据的安全性。然而在有些特殊的环境下,这些加密算法可能会不能满足用户的需求,用户可能希望使用自己特殊的加密算法,或强度更高的加密算法。DM的加密引擎功能则可以满足这样的需求。
DM 加密引擎是一个执行部件,该部件实现了一种或多种密码算法用于保护敏感数据。DM加密引擎功能,可以注册管理用户的加密引擎,以达到利用第三方加密引擎保护用户敏感数据的目的。
1 )系统加密引擎
DM 加密引擎分为系统加密引擎和用户自定义加密引擎两种。系统加密引擎名为 SYS_CRYPTO,系统加密引擎在DM服务器启动之后自动被加载到系统之中,用户可以直接使用系统加密引擎对表进行加密。
例如,对表进行半透明加密:
CREATE TABLE TAB01(C0 VARCHAR(50) ENCRYPT WITH SYS_CRYPTO.AES128_ECB MANUAL HASH WITH SYS_CRYPTO.MD5,C1 INT);
对表进行透明加密
CREATE TABLE TAB02(C0 VARCHAR(50) ENCRYPT WITH SYS_CRYPTO.AES128_ECB AUTO BY AES128_ECB HASH WITH SYS_CRYPTO.MD5,C1 INT);
2 用户自定义加密引擎
DM 提供了标准加密引擎接口,以供用户使用自己的加密算法。加密引擎相关接口说明如下:
crypto_init 函数:初始化该加密引擎:申请资源,设置状态等等。
crypto_destroy 函数:根据加密引擎的全局参数销毁该加密引擎:释放该加密引擎申请的系统资源,设置加密引擎的状态等等。
调用逻辑:在使用加密引擎中的密码函数之前必须调用crypto_init对加密引擎进行初始化,不再使用该加密引擎时必须调用crypto_destroy对其进行销毁。
spacer.gif 说明如下:
crypto_cipher_encrypt_init 函数:加密初始化。
crypto_cipher_get_cipherext_size 函数:计算给定长度的明文,加密后得到的密文所占的字节数。DM数据库管理系统按照返回值分配密文缓冲区。
crypto_cipher_encrypt 函数:加密。
crypto_cipher_cleanup 函数:回收密码算法在处理过程中申请的系统资源。
调用逻辑:在使用一个密码算法进行加密之前首先对该密码算法进行初始化处理,DM数据库管理系统根据所指定的密码算法准备好明文,并为密文分配好密文缓冲区,然后调用加密函数进行加密,完成加密动作后回收加密过程中申请的系统资源。
spacer.gif 明如下:
crypto_cipher_decrypt_init 函数:解密初始化。
crypto_cipher_get_plain_text_size 函数:估算密文对应的明文的最小缓冲区长度。
crypto_cipher_decrypt 函数:解密。
调用逻辑:解密过程的调用逻辑与加密过程基本类似,可以参考加密过程的说明。
spacer.gif 明如下:
crypto_cipher_hash_init 函数:散列过程的初始化工作。
crypto_cipher_hash_update 函数:计算待散列消息的散列值。
crypto_cipher_hash_final 函数:存放整个散列过程得到的散列值。
调用逻辑:加密引擎散列用于鉴别系统加载的加密引擎与注册的加密引擎是否相同。散列过程的调用逻辑与加密过程基本类似,可以参考加密过程的说明。
加密算法封装好了之后,编译成DLL文件,并存放在DM服务器的本地路径中。例如:WINDOWS环境下加密引擎文件CE.DLL在C:\,这时候就可以用下面的SQL语句加载加密引擎:
CREATE CRYPTO CE1 ‘C:\CE.DLL’;   
加密链接库中的加密算法只有在添加后才能正常使用。添加算法的SQL语句如下,其中INNDERID为用户实现加密引擎接口时自定义的值。
ALTER CRYPTO CE1 ADD BLOCK ENCRYPT CIPHER BC01 INNERID 3 BLOCK SIZE 4 KEY SIZE 4;
上述步骤完成了之后,就可以使用用户定义的加密算法了。使用加密引擎CE1中的加密算法BC01对表T1的C1字段进行透明加密的SQL语句如下:
CREATE TABLE T1 (C1 INT ENCRYPT WITH CE1.BC01);
DM 加密引擎功能使得用户可以按照DM加密引擎标准接口,封装自己的加密算法,然后在DM的透明加密、半透明加密、通信加密等过程中使用自己的加密算法,这样大大提高了数据的安全性。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23392679/viewspace-627973/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23392679/viewspace-627973/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值