安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能介绍
产品简介
下载中心
帮助中心
客户列表
关于安企神

适用于数据库的加密算法

更新时间:2022-10-28 15:43:53


本文简介:数据库加密方法可以应用于不同的环境,但存在一个共同的问题是:对于所形成的密文数据库无法进行操作。这样首先增大了时空开销;其次,在实际应用中,对于某些重要或敏感数据,无法满足用户对其进行操作但又不让用户了解其中的信息的需要。如果能对密文数据库进行数学运算和常规的数据库操作,显然能够解决上面存在的问题,并可以大大削减加、解密所需要的时空开销,大大提高数据库的运行效率。秘密同态技术就是一个能解决上述问题

适用于数据库的加密算法

数据库加密方法可以应用于不同的环境,但存在一个共同的问题是:对于所形成的密文数据库无法进行操作。这样首先增大了时空开销;其次,在实际应用中,对于某些重要或敏感数据,无法满足用户对其进行操作但又不让用户了解其中的信息的需要。如果能对密文数据库进行数学运算和常规的数据库操作,显然能够解决上面存在的问题,并可以大大削减加、解密所需要的时空开销,大大提高数据库的运行效率。秘密同态技术就是一个能解决上述问题的有效方法。

一、秘密同态技术在整数上的实现

秘密同态是由Rivest等人于1978年提出的,是允许直接对密文进行操作的加密变换。但是由于其对已知明文攻击是不安全的,后来由Domingo做了进一步的改进.秘密同态技术最早是用于对统计数据进行加密的,由算法的同态性,保证了用户可以对敏感数据进行操作但又不泄露数据信息.秘密同态技术是建立在代数理论之上的,其基本思想如下:

假设Ek1、Dk2分别代表加密、解密函数,明文数据空间中的元素是有限集合{M1,M2,…,Mn},a和β代表运算,若a (Ek1(M1),Ek1(M2),…,Ek1(Mn)=Ek1(β(M1,M2,…,Mn))成立,且Dk2(a(Ek1(m1)、Ek1(M2),…,Ek1(Mn)))=β(M1,M2,…,Mn)成立,则称函数族(Ek1,Dk2,a,β)为一个秘密同态。

加密算法实现过程如下:

(1)选取安全大素数p、q,及由此计算m=pq(m保密);

(2)选取安全参数n(根据需要选择适当大小):

(3)明文空间T=Zm(小于Z的所有非负整数集合),密文空间T=(Zp*Zq)n;

(4)选取两素数rp、 rq,分别满足rp∈Zp,rq ∈zq;

(5)确定加密密钥为K=(p,q,rp,rq);

(6)加密算法:

设有一明文x∈zm,随机地将x分为n分:X1,X2,…,Xn,并满足Xi∈Zm, i=(l,2,…,n);_适用于数据库的加密算法

适用于数据库的加密算法
(7)解密算法Dk (x):

第一步计算

适用于数据库的加密算法

其中,rp-n和rq-n分别为rp mod p和rq rnod q相应次幂的乘法逆元。

第二步计算

适用于数据库的加密算法

第三步利用中国剩余定理计算

适用于数据库的加密算法

其中qq-1=1mod p,pp-1=1 modq。

二、浮点型数据同态加密运算

本文基于秘密同态加密的基本原理,在同态加密机制中提出了复合同态的概念并应用到浮点数的加密算法中,实现了浮点数的秘密同态加密,使得同态加密机制更具有通用性。

(一)复合同态的定义

定义设σ、τ分别是空间G到H和H到M的同态变换,则σ、τ复合σ*τ是空间G到l的同态变换。即对于x∈G,有同态变换y=σ(x),(y∈H),存在z∈M,Z=τ(y)=τ(σ(x))=σ*τ(x)

满足:

适用于数据库的加密算法
基于实际的应用和讨论的方便,假设两次同态变换分别是加密运算Ek1(x)和Ek2 (y),由于引入复合变换的目的是将浮点数转换成整数的形式然后进行加密,所以定义Ek1(x)是对浮点数进行的加密运算。Ek2 (y)仍然采用整数上秘密同态变换的加密机制。

(二)浮点数到整敛的同态加密变换

加密算法的实现过程如下:

(1)设明文数据x的小数点位数为k (k为非负整数);

(2)将原数据分解为xo,x1,…xk,使得x*10=ko*10o+x1* 101+...+Xk*10k,其中x1为正整数;

(3)定义同态加密变换

适用于数据库的加密算法

(4)则解密运算适用于数据库的加密算法为浮点数。

在浮点数的加、减、乘、除运算中,根据实际的需要设定所有明文数据的最大小数点位数为k(k为非负整数),不够k位的用零补足,则有:加和减Ek1(x±y)=E k1(x)±E k1(y)为10的i(0≤i≤k)次方项的加减法。

适用于数据库的加密算法

其中o≤i≤k,o≤j≤k, o≤j+j≤2k。

除因为Ek1(x)只是一数值形式的变换,显然有适用于数据库的加密算法,由上述加减乘除运算可得:

适用于数据库的加密算法
这些运算保证了可以直接对转换后的整数进行操作。

将浮点数进行复合同态加密,即将浮点数明文x经过Ek1(x)同态变换后,转换成一整数的形式,然后再用Ek2 (y)(其中y=Ek1(X))进行加密变换。

其中解密运算定义为Dk(X)=Dk1(Dk2 (x)),Dk1,Dk2分别为Ek1和Ek2的解密运算。解密过程中首先对Ek1(x)形成的密文数据进行解密,然后再利用Dk1(x)计算得到明文数据。

(三)复合同态基本运算

复合同态运算完成的是浮点数的同态加密过程,也是本部分的核心。

下面的基本运算包括上面讲述的浮点数到整数的同态转换E k1(X)以及整数上的同态加密算法E k2(X),具体实现过程如下:

1.复合同态的加、减法运算

适用于数据库的加密算法

2、复合同态乘法运算

适用于数据库的加密算法

3、复合同态除法运算

适用于数据库的加密算法

即对经过复合同态加密后得到的密文之间的加、减、乘、除运算就相当于对明文进行基本运算后再加密。

(四)安全性分析

将同态加密机制的应用从整数扩展到浮点数范围内,使秘密同态加密算法更具有实用性。加密过程中即使经过Ek1(x)加密转换后得到相同的数据,由于第二次同态加密素数的随机选取和加密数据的随机分割,这样得到的加密数据也是不一样的。浮点数同态加密即在外层加密中保留了原始秘密同态加密的安全性,同时也对原数据进行了双重同态变换,在安全性上只有过之而无不及。在浮点数上的同态加密机制在安全性方面同样有以下特性:

(1)仅知密文攻击:如果攻击者获取密文,但从n找出p是非常困难的,因为需要对n进行因数分解。

(2)已知明文攻击:如果攻击者获取一个明文密文对(x,y),攻击者可以进行反复的试探,以期获得解密密钥p;但攻击者需要进行试探运算的运算量大到不可以接受的地步。

(3)完整性攻击:根据我们的加密算法,攻击者可以任选一个值来替换一个已经加密的数据。也就是说,我们的算法无法抵抗完整性攻击。

三、字符串数据的同态加密

与整数不同的是,整数加密后能够实现的在密态下的加、减、乘、除运算对于字符串是没有意义的,所以本文通过中国剩余定理将字符串进行转换,然后利用秘密同态算法进行加密处理。具体算法如下:

(1)设一字符串B,将字符串中的每一个字符取其ASCII码,分别表示为b1,b2,....,bk,其中k是字符串中字符的个数。

(2)对应取k个两两互素的正整数,设为m1,m2,...mk,(m1≥121)。

(3)则由中国剩余定理得同余式组。

(4)则同余式组的解适用于数据库的加密算法就是将要加密的整数值。

(5)根据秘密同态算法解密后可得加密数据x,则由b1=x mod m1可得字符串中每个字符的对应ASCII码值。

利用中国剩余定理的证明方法可对字符串与所得加密整数值的对应关系进行证明。在具体的实现过程中,素数的选取和存储足我们需要考虑的问题。在安全性方面,它仍然保留了原整数秘密同态加密的特点。

小知识之中国剩余定理

中国剩余定理,又称为孙子剩余定理,古有“韩信点兵”、“孙子定理”、求一术(宋 沈括)“鬼谷算”(宋 周密)、“隔墻算”(宋 周密)、“剪管术”(宋 杨辉)、“秦王暗点兵”、“物不知数”之名,是数论中的一个重要命题。

立即下载试用

如何防止企业内部开发代码被泄密?

       据统计报告,企业在遭遇数据泄露事件时,有百分之八十的概率是出现在内部人员身上。这表明,内部数据安全问题远远比网络攻击更加可怕。尤其是在研发型企业里,代码这种重要又值钱的数据,是最容易让别有用心之人动歪心思的。

 

       代码数据的泄露,对企业造成的打击和影响是不可估量的,对于研发部门来说,重要的数据可不仅仅是代码,还有很多核心数据需要保护。下面我们就从不同角度看看,有哪些技术手段可以保护代码不泄露。

  

一、对代码本身采用的技术手段

 

      1、代码混淆:也称为模糊处理,其技术原理是代码重命名,也就是说原先具有含义的方法名称,重命名为毫无意义的(A,B,C 诸如此类)。缺点:无法隐藏调用的系统的函数。

 

      2、代码隐藏:因为代码混淆改变了方法签名,在很多时候是有问题的,例如程序集要被其他人使用的时候。因为方法名变成了毫无意义的一些字符,将造成使用者极大的麻烦,也可能导致现有引用程序集的失效。

 

      3、非托管代码编:使用非托管代码编写核心代码(例如核心算法),然后使用平台交互的方式进行调用,非托管代码比较难反编译。

 

      4、强名称签名:这种方法,用通俗的话说就是对文件按照Microsoft的算法对文件进行Hash,然后将hash出来的数据(public key token )写入文件。在运行或者对文件进行调用的时候,SDK会检查public key token ,若不符合则抛出异常,退出。

 

      5、代码加密:改变MSIL和JIT的通信,根据底层的需要来解密代码。破解的难度大,较安全,内存无完整代码。但是这种方式可能会导致编程的难度大,若利用专门的加密软件,则会加大系统的开发成本。

 

      6、代码本地化:代码完全编译成本机代码,同win32下的应用程序一样,完全失去了.NET的优越性。

 

      7、代码加水印:简单的说,就是让特定的字符串以图片的形式,绘制在程序的界面上,用来提示软件是否注册,这种保护方法,关键的地方就是对图片绘制条件的判断,如果仅仅是用true 或者false 来判断,就形同虚设了。

 

二、研发部门内部管控手段

 

      8、禁用U口:企业可以通过禁用USB接口,这种方式可以有效防止恶意的数据拷贝,如果需要对外发送的话,需要经过审核后由专人拷贝出来再外发。

 

      9、控制访问权限:网站白名单,只允许访问工作需要的网站,其他一律禁止掉。这个算是比较严格的限制方式了。采用应用过滤,禁止掉所有的文件传输、网盘、邮件等。这个方案相对有效,但是不能排除通过未知的应用协议来传文件,而且会给日常工作带来一些不便。

 

      10、部署DLP数据防泄漏系统:有条件的企业可能会在内外网边界部署DLP数据防泄漏系统,所有内部向外部发出的数据,都要经过DLP系统的内容扫描,在确保不包含敏感信息的情况下才允许发出。这也是比较常见的一种方式,可以有效防止各个渠道的外发泄密。

 

      11、第三方身份验证:现在有许多基于标准且高度安全的身份验证产品可供选择,这样的话,你的员工/客户等等就不需要一个个记住账号密码了,这样就能减少账号泄密的风险了。

 

      12、服务器上备份文件:及时的将重要文件备份,以便丢失后能及时找回,同时可以减少无意的泄密带来损失。

 

      13、特殊部门不允许进行文件外发:比如研发部门或者财务部门这种核心和敏感数据较多,不允许他们直接的对外发送文件,如果需要发送的话,需要经过审批后,由专人进行发送。

 

      14、监控电脑的文件外发动作:这个就需要有带有监控功能的软件了,可以监控到每个人的电脑操作行为,一旦产生外发动作,就会给管理员发出警报。

 

      15、云桌面:云桌面也是一种很流行的方式,很多研发型企业都在使用,它的成本比较低,使用灵活,可以快速响应企业和开发需求,比如企业规模扩大时,可快速实现资源配置和扩展。最重要的是,数据都集中在服务器上,开发人员的终端不再保存数据和存储,实现代码等数据不落地,对于企业来说,不仅仅是便于管理了,而且更能保障信息安全。

 

      16、网络隔离:这个算是目前最流行的方式了。将研发网与办公网、测试网、外网等进行隔离,防止不同部门、不同业务之间的违规数据交换。通过网络隔离的方式,可以有效防止内部核心代码数据泄露。

 

      17、对企业数据信息存储介质做渗透测试:渗透测试是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。

 

      18、内部设备的管理:很多企业会疏于对打印机、传真机等设备的管控,殊不知这些也是泄密渠道之一。必要的时候可以安装一些打印管理软件,实现打印内容监控、打印计数、打印审核等。

 

三、防止外部攻击的方法

 

      19、使用多种抵御手段:安装各种防火墙、入侵检测系统、DDoS防护服务、防病毒等产品来防范黑客的攻击和病毒的入侵。可以有效抵御外部的攻击导致的数据泄露,对企业整个网络安全环境起到一定的保护作用。

 

      20、监视攻击:有很多很好的监控工具,但是需要投入时间和精力来确保随时可以监控到异常。选择监控系统时,得确保知道自己在监控什么以及如何回应。

 

      21、分析各种网络日志:日志的搜集与分析可帮助企业侦测针对性攻击。IT和安全人员可从中发现关于黑客的一些宝贵信息,例如黑客如何进入网络,以及黑客的攻击策略。

 

      22、高防服务器:高防服务器就是能够帮助网站拒绝服务攻击,并且定时扫描现有的网络主节点,查找可能存在的安全漏洞的服务器类型。


本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16297.html