1.一种关系型数据库加密方法,其特征在于,包括:步骤1,在安全代理中建立数据加密方案;
步骤2,用户在客户端选择待加密的明文数据的加密密级后将所述待加密的明文数据发送到安全代理;
步骤3,安全代理根据所述数据加密方案和加密密级对所述待加密的明文数据进行加密得到密文数据,将密文数据发送到服务器端,密钥存储在安全代理中;
步骤4,服务器存储收到的密文数据;所述加密密级包括公开级、机密级和绝密级;
所述密钥包括ORE密钥、DET密钥和RND密钥;
所述安全代理是存在于服务器和客户端之间的一个第三方服务器;
所述数据加密方案包括:
对数值型公开级的明文数据都不做加密处理;
对数值型机密级的明文数据分别采用ORE加密;
对数值型绝密级的明文数据先采用ORE加密,对ORE加密后的密文再采用RND进行加密;
对字符型公开级的明文数据都不做加密处理;
对字符型机密级的明文数据拼接成块级数据后按块加密,采用DET加密;
对字符型绝密级的明文数据拼接成块级数据后按块加密,先采用DET加密,对DET加密后的密文再采用RND进行加密。
2.如权利要求1所述的一种关系型数据库加密方法,其特征在于,所述数据加密方案,还包括:
对按块加密的数据建立数据字典;
所述数据字典的格式:{key:拼接列名1;value:列名1‑列名2‑…}。
3.一种基于权利要求1‑2任一所述的一种关系型数据库加密方法的该加密数据库查询方法,包括:
S1,用户在客户端发送明文查询语句到安全代理;
S2,安全代理根据查询语句的谓语进行判断,若查询的是公开级数据,则转入S31;若查询的是机密级数据,则转入S41;若查询的是绝密级数据,则转入S51;
S31,直接将查询语句转发给服务器;
S32,服务器根据所述查询语句得到明文查询结果,并将明文查询结果发送到安全代理,转入S6;
S41,安全代理对查询谓语按照机密级数据进行加密得到第一加密谓语,并用第一加密谓语替换明文谓语发送到服务器;
S42,服务器根据所述查询语句得到查询结果,并将查询结果发送到安全代理;
S43,安全代理对所述查询结果进行解密得到明文查询结果,转入S6;
S51,安全代理对查询谓语按照机密级数据进行加密得到第二加密谓语,同时服务器对绝密级数据的密文数据进行RND解密;
S52,安全代理将第二加密谓语替换明文谓语查询语句并发送给服务器;
S53,服务器将查询结果返回给安全代理,同时对进行过RND解密的绝密级数据的密文数据进行RND加密,并更新安全代理中的RND密钥;
S54,安全代理对接收到的查询结果进行解密后得到块级明文数据,根据数据字典查询得到明文查询结果,转入S6;
S6,安全代理将所述明文查询结果并发送给客户端;
所述S41和S51中的安全代理对查询谓语按照机密级数据进行加密,包括:若查询的数据是数值型,则对查询谓语采用ORE加密;若查询数据的是字符型,则对查询谓语采用DET加密。