CN109492415A - 一种基于敏感数字的安全存储方法及系统 - Google Patents

一种基于敏感数字的安全存储方法及系统 Download PDF

Info

Publication number
CN109492415A
CN109492415A CN201811321737.8A CN201811321737A CN109492415A CN 109492415 A CN109492415 A CN 109492415A CN 201811321737 A CN201811321737 A CN 201811321737A CN 109492415 A CN109492415 A CN 109492415A
Authority
CN
China
Prior art keywords
data
encryption
ciphertext
column
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811321737.8A
Other languages
English (en)
Inventor
帅东华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Dongbao Information Technology Co Ltd
Original Assignee
Shenzhen Dongbao Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Dongbao Information Technology Co Ltd filed Critical Shenzhen Dongbao Information Technology Co Ltd
Priority to CN201811321737.8A priority Critical patent/CN109492415A/zh
Publication of CN109492415A publication Critical patent/CN109492415A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种基于敏感数字的安全存储方法及系统,属于数据处理领域。本发明的方法包括如下步骤:获取明文数据,通过加密函数对明文数据进行加密;将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;对密文数据进行运算,得到运算后的加密数据。本发明的有益效果为:实现对数据库里的数据进行加密,加密后依然可进行运算,运算结果也是加密数据,大大增加敏感数字存储的安全性。

Description

一种基于敏感数字的安全存储方法及系统
技术领域
本发明涉及数字加密技术,尤其涉及一种基于敏感数字的安全存储方法及系统。
背景技术
现有的技术对能对敏感数字进行加密,在软件可以隐藏敏感数字。
缺陷:对数字的加密表现在软件层面,在数据库里依然能看到数字明文;数字加密后的密文不能进行运算,运算过程能够看到数字明文,敏感数字的安全性不能保证。
发明内容
为解决现有技术中的问题,本发明提供一种基于敏感数字的安全存储方法及系统。
本发明基于敏感数字的安全存储方法包括如下步骤:
S1:获取明文数据,通过加密函数对明文数据进行加密;
S2:将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;
S3:对密文数据进行运算,得到运算后的加密数据。
本发明作进一步改进,还包括解密步骤:调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
本发明作进一步改进,在步骤S1中,定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
本发明作进一步改进,所述加密函数的处理方法为:加密函数调用加密的转换运算将要加密的数字原文转变为密文字符,再将密文字符返回,其中,所述加密函数的参数为decimal类型的待加密数值,返回值为string类型的密文字符;解密的处理过程为:用解密的转换运算将要进行解密的密文字符转变为解密数值,再将解密数值返回,其中,解密参数为string类型的密文字符,返回值为decimal类型的解密数值。
本发明作进一步改进,所述加密的转换运算是通过des的CreateEncryptor方法生成;所述解密的转换运算通过des的CreateDecryptor方法生成。
本发明作进一步改进,步骤S2中,数据库的存储方法为:在数据库中设置数据表的列:C1和C2,如果C2的列名等于C1的列名加指定的后缀,则C2为C1的加密列,保存C1列数据加密后的密文,C1列进行加密后数据存到C2列,C1的数据清空。
本发明作进一步改进,步骤S3中,将加解密方法引入数据库,在整个运算过程中,不会暴露算法细节,运算的处理过程为:先调用解密函数对密文字符解密,再按照业务逻辑对数字进行解密运算,运算后的数据经过加密函数加密为密文字符存储。
本发明还提供了一种实现所述方法的系统,包括加密模块:用于获取明文数据,通过加密函数对明文数据进行加密;存储模块:用于将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;运算模块:用于对密文数据进行运算,得到运算后的加密数据。
本发明作进一步改进,还包括解密模块:用于在客户端调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
本发明作进一步改进,还包括定义模块:用于定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
与现有技术相比,本发明的有益效果是:实现对数据库里的数据进行加密,加密后依然可进行运算,运算结果也是加密数据,保证了敏感数字存储的安全性。
附图说明
图1为本发明方法流程图;
图2为本发明详细流程图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
如图1和图2所示,本发明本发明基于敏感数字的安全存储方法包括如下步骤:
S1:获取明文数据,通过加密函数对明文数据进行加密;
S2:将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;
S3:对密文数据进行运算,得到运算后的加密数据。
还包括解密步骤:调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
在步骤S3中,将加解密方法引入数据库,在整个运算过程中,不会暴露算法细节,运算的处理过程为:先调用解密函数对密文字符解密,再按照业务逻辑对数字进行解密运算,运算后的数据经过加密函数加密为密文字符存储。
本发明在软件中使用加密算法将敏感数字加密,同时使用用于自定的函数将加密算法引入到MS SQL Server数据库,支持客户按业务逻辑对加密数字进行四则运算,而不用暴露算法细节,在显示敏感数字前进行加解密操作,并将最终运算结果也以密文形式存储。实现对数据库里的数据进行加密,加密后依然可进行运算,运算结果也是加密数据,保证了敏感数字存储的安全性。
本例的具体实现过程为:
1、本例采用对称加密方法进行加解密操作,设置一个对称加密类CoreCryptor,应用命名空间System.Security.Cryptography。该加密类包括以下操作:
(1)定义一个数组key,保存指定的数字,作为该加密类的密钥。该密钥供加密和解密时共同使用。
(2)定义一个数组iv,保存指定的数字,作为该加密类的iv(初始化向量)。该iv供加密和解密时共同使用。在加解密时,随机选择数组中的数字作为初始化向量,并非固定数字,被破解的难度大大提升,增加了算法的安全性。
(3)定义一个ICryptoTransform(密码变换)类型的用于加密的基本加密转换运算ENT:初始化一个RC2CryptoServiceProvider类的新实例des(数据加密算法),des的Key和iv分别等于(1)和(2)里的数组key、数组iv。然后用des的CreateEncryptor(加密者)方法生成一个基本加密运算,并且返回到ENT。
(4)定义一个ICryptoTransform类型的用于解密的基本解密转换运算DET:初始化一个RC2CryptoServiceProvider的新实例des,des的Key和iv分别等于(1)和(2)里的数组key、数组iv。然后用des的CreateDecryptor方法生成一个基本解密运算,并且返回到DET。
(5)设置加密函数Encrypt,该加密函数参数为decimal(十进制)类型的加密数值(需要加密的数值),返回值为string(字符串)类型的密文字符(加密数值加密后得到的字符串)。该函数调用(3)中的用于加密的转换运算ENT将要加密的数字原文转变为密文字符,再将密文字符返回。
(6)设置解密函数Decyrpt,该函数参数为string类型的密文字符(需要进行解密的字符串),返回值为decimal类型的解密数值(密文字符解密后得到的原文数值)。该函数调用(4)中的用于解密的转换运算DET将要进行解密的密文字符转变为解密数值,再将解密数值返回。
2、本例将加解密方法引入数据库,并对敏感数字进行安全存储,作为本发明的一个实施例,数据库的存储方法为:在数据库中设置数据表的列:C1和C2,如果C2的列名等于C1的列名加指定的后缀,则C2为C1的加密列,保存C1列数据加密后的密文,C1列进行加密后数据存到C2列,C1的数据清空。
本例设置一个类DataCryptor,提供对数据集、表的数据加密服务。应用命名空间System.Security.Cryptography。该类处理过程包括以下步骤:
(1)定义一个字符串变量EndStr,该字符串用于保存加密字段的后缀。即:有表的列C1和C2,若C2列名=C1列名+EndStr,C2列为C1列的加密列,C2列保存C1列加密的数据密文。
(2)设置函数GetColumns,用于获取表的加密列,该函数返回值为List<KeyValuePair<string,string>>类型的键值对列表,参数为DataTable类型的表。先声明一个List<KeyValuePair<string,string>>类型的列表List。循环参数表里的列,判断表里是否存在两列如上面所述的C1和C2列(例:C2列名=C1列名+EndStr,C2列为C1列的加密列),若存在,则把C1的列名作为键,C2的列名作为值,添加到列表List里。参数表里的列都循环过后,返回列表List的值。
(3)设置函数Encrypt,用于获取表的指定列的加密数据,有3个部分:
<1>设置第一个函数Encrypt,用于返回行的指定列的加密数据,不修改原数据。该函数返回值为string类型,参数1为DataRow类型(要获取列的加密数据的数据行row),参数2为string类型(要获取加密数据的列的字段名columnName)。定义一个object类型的变量value,value等于参数列row的字段columnName的值。调用1.对称加密类CoreCryptor的方法Encrypt把变量value转换为一个加密的字符串,将该加密的字符串返回。
<2>设置第二个函数Encrypt,用于加密指定的数据表。该函数返回值为空。参数1为DataTable类型(要进行加密的数据表table)。定义List<KeyValuePair<string,string>>类型变量list。将参数table作为参数调用(2)中的函数GetColumns获取表的加密列,返回值赋给list。循环参数table的行,循环list的键值对,调用<1>的函数Encrypt,将键值对中的键列(原列)值加密为密文数据保存到键值对中的值列(加密列),将键列(原列)的数据清空。
<3>设置第三个函数Encrypt,用于加密指定的数据集。该函数返回值为空。参数1为DataSet类型(要进行加密的数据集dataSet)。循环获取dataSet中的数据表,调用<2>中的函数Encrypt对数据集中的每张数据表进行加密。
(4)设置函数Decrypt,用于返回表的指定加密列的解密数据,与第(3)部分对应,有3个重载。
<1>设置第一个函数Decrypt,用于返回行的指定加密列的解密数据,不修改原数据。该函数返回值为decimal类型,参数1为DataRow类型(要获取加密列的解密数据的数据行row),参数2为string类型(要获取解密数据的加密列的字段名columnName)。定义一个string类型的变量value,value等于参数列row的字段columnName的值。调用1.对称加密类CoreCryptor的方法Decrypt把变量value转换为一个解密的数据,将该解密的数据返回。
<2>设置第二个函数Decrypt,用于解密指定的数据表。该函数返回值为空。参数1为DataTable类型(要进行解密的数据表table)。定义List<KeyValuePair<string,string>>类型变量list。将参数table作为参数调用(2)中的函数GetColumns获取表的加密列,返回值赋给list。循环参数table的行,循环list的键值对,调用<1>的函数Decrypt,将键值对中的值列(加密列)值解密为原文数据保存到键值对中的键列(原列)。
<3>设置第三个函数Decrypt,用于解密指定的数据集。该函数返回值为空。参数1为DataSet类型(要进行解密的数据集dataSet)。循环获取dataSet中的数据表,调用<2>中的函数Decrypt对数据集中的每张数据表进行解密。
3、在数据库中进行加密运算,并以密文形式存储。具体实现方法为:
设置一个用于加密数字进行计算的类,该类主要是将要进行计算的加密数据通过调用2.(4)中的解密方法Decrypt转变为数字明文,数字明文进行计算后得到计算结果,再调用2.(3)中的加密方法Encrypt把计算结果转变为数字密文。
本发明还提供了一种实现所述方法的系统,包括加密模块:用于获取明文数据,通过加密函数对明文数据进行加密;存储模块:用于将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;运算模块:用于对密文数据进行运算,得到运算后的加密数据。
本发明作进一步改进,还包括解密模块:用于在客户端调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。

Claims (10)

1.一种基于敏感数字的安全存储方法,其特征在于,包括如下步骤:
S1:获取明文数据,通过加密函数对明文数据进行加密;
S2:将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;
S3:对密文数据进行运算,得到运算后的加密数据。
2.根据权利要求1所述的基于敏感数字的安全存储方法,其特征在于:还包括解密步骤:调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
3.根据权利要求2所述的基于敏感数字的安全存储方法,其特征在于:在步骤S1中,定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
4.根据权利要求3所述的基于敏感数字的安全存储方法,其特征在于:所述加密函数的处理方法为:加密函数调用加密的转换运算将要加密的数字原文转变为密文字符,再将密文字符返回,其中,所述加密函数的参数为decimal类型的待加密数值,返回值为string类型的密文字符;解密的处理过程为:用解密的转换运算将要进行解密的密文字符转变为解密数值,再将解密数值返回,其中,解密参数为string类型的密文字符,返回值为decimal类型的解密数值。
5.根据权利要求4所述的基于敏感数字的安全存储方法,其特征在于:所述加密的转换运算是通过des的CreateEncryptor方法生成;所述解密的转换运算通过des的CreateDecryptor方法生成。
6.根据权利要求1-5任一项所述的基于敏感数字的安全存储方法,其特征在于:步骤S2中,数据库的存储方法为:在数据库中设置数据表的列:C1和C2,如果C2的列名等于C1的列名加指定的后缀,则C2为C1的加密列,保存C1列数据加密后的密文,C1列进行加密后数据存到C2列,C1的数据清空。
7.根据权利要求1-5任一项所述的基于敏感数字的安全存储方法,其特征在于:步骤S3中,将加解密方法引入数据库,在整个运算过程中,不会暴露算法细节,运算的处理过程为:先调用解密函数对密文字符解密,再按照业务逻辑对数字进行解密运算,运算后的数据经过加密函数加密为密文字符存储。
8.一种实现权利要求1-7任一项所述的基于敏感数字的安全存储方法的系统,其特征在于包括:加密模块:用于获取明文数据,通过加密函数对明文数据进行加密;存储模块:用于将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;运算模块:用于对密文数据进行运算,得到运算后的加密数据。
9.根据权利要求8所述的系统,其特征在于:还包括解密模块:用于在客户端调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
10.根据权利要求9所述的系统,其特征在于:还包括定义模块:用于定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
CN201811321737.8A 2018-11-06 2018-11-06 一种基于敏感数字的安全存储方法及系统 Pending CN109492415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811321737.8A CN109492415A (zh) 2018-11-06 2018-11-06 一种基于敏感数字的安全存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811321737.8A CN109492415A (zh) 2018-11-06 2018-11-06 一种基于敏感数字的安全存储方法及系统

Publications (1)

Publication Number Publication Date
CN109492415A true CN109492415A (zh) 2019-03-19

Family

ID=65695296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811321737.8A Pending CN109492415A (zh) 2018-11-06 2018-11-06 一种基于敏感数字的安全存储方法及系统

Country Status (1)

Country Link
CN (1) CN109492415A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246813A1 (en) * 2011-11-11 2013-09-19 Nec Corporation Database encryption system, method, and program
CN105787387A (zh) * 2016-03-07 2016-07-20 南京邮电大学 一种数据库加密方法及该加密数据库查询方法
CN106022143A (zh) * 2016-05-10 2016-10-12 武汉华工安鼎信息技术有限责任公司 一种数据库密级标志安全网关操作的方法、装置及系统
CN107168998A (zh) * 2017-03-30 2017-09-15 广东工业大学 一种基于保留格式的数据库透明加密方法
US20190384931A1 (en) * 2017-02-22 2019-12-19 Kindite Ltd. Encrypting data records and processing encrypted records without exposing plaintext

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246813A1 (en) * 2011-11-11 2013-09-19 Nec Corporation Database encryption system, method, and program
CN105787387A (zh) * 2016-03-07 2016-07-20 南京邮电大学 一种数据库加密方法及该加密数据库查询方法
CN106022143A (zh) * 2016-05-10 2016-10-12 武汉华工安鼎信息技术有限责任公司 一种数据库密级标志安全网关操作的方法、装置及系统
US20190384931A1 (en) * 2017-02-22 2019-12-19 Kindite Ltd. Encrypting data records and processing encrypted records without exposing plaintext
CN107168998A (zh) * 2017-03-30 2017-09-15 广东工业大学 一种基于保留格式的数据库透明加密方法

Similar Documents

Publication Publication Date Title
CN104486315B (zh) 一种基于内容属性的可撤销密钥外包解密方法
US10129028B2 (en) Relational encryption for password verification
Kim et al. Efficient privacy-preserving matrix factorization via fully homomorphic encryption
Wu et al. Secure and efficient outsourced k-means clustering using fully homomorphic encryption with ciphertext packing technique
CN108154038B (zh) 数据处理方法及装置
CN110110163A (zh) 安全子字符串搜索以过滤加密数据
CN112380557B (zh) 一种关系型数据库加密方法及该加密数据库查询方法
CN104363215A (zh) 一种基于属性的加密方法和系统
CN109361644B (zh) 一种支持快速搜索和解密的模糊属性基加密方法
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
JP7061042B2 (ja) 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ
US11716191B2 (en) Method, apparatus, and computer-readable medium for searching polymorphically encrypted data
Feng et al. Privacy-preserving computation in cyber-physical-social systems: A survey of the state-of-the-art and perspectives
CN110263570B (zh) 一种实现高效相似性查询和访问控制的基因数据脱敏方法
CN112100649B (zh) 支持布尔访问控制策略的多关键字可搜索加密方法及系统
CN109934001A (zh) 一种基于正态云模型的数据加密方法
CN102222188A (zh) 一种信息系统用户密码的生成方法
CN108170753A (zh) 一种共有云中Key-Value数据库加密与安全查询的方法
Tong et al. Privacy-preserving Boolean range query with temporal access control in mobile computing
Xu et al. Applications of cryptography in database: a review
JP6971926B2 (ja) 暗号化データベースに関する解析のためのシステムおよびアーキテクチャ
Li et al. Efficient and secure outsourcing of differentially private data publication
Li et al. A novel colour image encryption based on fractional order Lorenz system
CN109492415A (zh) 一种基于敏感数字的安全存储方法及系统
CN109409111A (zh) 一种面向加密图像的模糊搜索方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination