CN114756887A - 一种敏感信息块在文件中的加密存储方法及装置 - Google Patents
一种敏感信息块在文件中的加密存储方法及装置 Download PDFInfo
- Publication number
- CN114756887A CN114756887A CN202110025505.3A CN202110025505A CN114756887A CN 114756887 A CN114756887 A CN 114756887A CN 202110025505 A CN202110025505 A CN 202110025505A CN 114756887 A CN114756887 A CN 114756887A
- Authority
- CN
- China
- Prior art keywords
- information
- file
- key
- encrypted
- information block
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种敏感信息块在文件中的加密存储方法及装置,该方法包括:通过数据加密密钥对敏感信息块进行加密,得到加密信息块;将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。通过对每次要保存的敏感信息块采用单独加密的措施,每次加密的数据量小。对加密后的敏感信息块直接存储到文件中,避免全文件加密,因此做到加密速度快,资源消耗少。
Description
技术领域
本发明涉及信息加密技术领域,尤其涉及一种敏感信息块在文件中的加密存储方法及装置。
背景技术
在现实的业务系统中存在大量的敏感信息块,例如:一次交易的账单,采集人口信息时获取的人员头像和身份证照片,用户上传到系统中的一些敏感文本文件等。
针对处于活跃期的敏感信息块,可以将其保存在方便访问的关系数据库中,通过数据库的安全措施保证其数据安全,必要时可以将信息加密后再保存入库。
但随着时间的流逝,系统中的此类数据的量会越来越多,并且绝大多数数据过了一定时效期限之后就很少被读取,此时再将其放在数据库中就导致数据库开销过大,并且会降低数据库的运行效率。现有方法一般是将这些信息块存储到文件系统中,如果信息块原本就是以文件形式存在的话,直接文件系统存储就更加方便。
但是,如果将信息块直接存储到文件系统,则数据安全容易受到威胁。如果信息块加密后进行存储,则每次在同一个文件中添加数据后需要重新加密,消耗的运算资源较多。
因此,如何更好的实现敏感信息块的存储,已经成为业界亟待解决的问题。
发明内容
本发明提供一种敏感信息块在文件中的加密存储方法及装置,用以解决现有技术中无法有效实现高效的敏感信息块存储的问题。
本发明提供一种敏感信息块在文件中的加密存储方法,包括:
通过数据加密密钥对敏感信息块进行加密,得到加密信息块;
将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;
将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;
将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;
其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
根据本发明提供的一种敏感信息块在文件中的加密存储方法,在所述通过数据加密密钥key-d对敏感信息块进行加密的步骤之前,所述方法还包括:
生成第一随机数后,利用加密中心公钥对所述第一随机数进行加密,得到加密后的第一随机数;
将所述加密后的第一随机数发送到加密中心,以供所述加密中心对所述加密后的第一随机数进行解密后,通过所述第一随机数对会话密钥对进行加密,并将加密后的会话密钥对发送到业务系统;
通过所述第一随机数对加密后的会话密钥对进行解密,得到加密后的会话密钥对;
其中,所述会话密钥对包括会话密钥和所述会话密钥的会话密钥索引。
根据本发明提供的一种敏感信息块在文件中的加密存储方法,在将所述加密信息块存储在文件数据区的空闲位置的步骤之前,所述方法还包括:
获取业务系统的当前信息块标识;
在所述业务系统的当前信息块标识超过预设推荐索引条数的情况下,生成新的文件,将新的文件中文件块索引区和新的文件中文件密钥池区清零。
根据本发明提供的一种敏感信息块在文件中的加密存储方法,在所述将密钥加密密文和会话密钥的索引信息存储在文件的密钥池区空闲位置的步骤之后,所述方法还包括:
在业务系统数据库中插入敏感信息块存储记录;
其中,所述敏感信息块存储记录包括:所述文件的文件标识、所述加密信息块的信息块标识和敏感信息块的信息指纹。
根据本发明提供的一种敏感信息块在文件中的加密存储方法,所述方法还包括:
在所述业务系统数据库中找到待读取敏感信息块存储记录;
根据所述待读取敏感信息块存储记录中的文件标识查找并打开文件;
根据所述待读取敏感信息块的存储记录中的信息块标识确定文件块索引区信息,并根据文件块索引区信息中的开端信息确定文件数据区信息;
根据所述文件数据区信息中的密钥池区开端信息,确定密钥池区的密钥信息。
根据本发明提供的一种敏感信息块在文件中的加密存储方法,所述方法还包括:
在文件块索引区信息中存储的信息指纹与所述待读取敏感信息块中的信息指纹相同的情况下,根据所述密钥池区的密钥信息,确定会话密钥索引信息;
获取所述会话密钥索引信息对应的会话密钥,通过所述会话密钥,对文件密钥池区的密钥加密密文进行解密,得到数据加密密钥;
根据所述数据加密密钥,对文件数据区信息中存储的加密信息块进行解密。
根据本发明提供的一种敏感信息块在文件中的加密存储方法,获取所述会话密钥索引信息对应的会话密钥的步骤,具体包括:
生成第二随机数,通过加密中心公钥对所述第二随机数和会话密钥索引信息进行加密,得到第一加密数据信息;
将所述加密数据信息发送到加密中心,以供所述加密中心对所述加密数据信息进行解密,根据会话密钥索引信息确定会话密钥,通过第二随机数对所述会话密钥加密后,将第二加密数据信息发送到业务系统;
通过所述第二随机数,对所述第二加密数据信息进行解密,得到会话密钥索引信息对应的会话密钥。
本发明还提供一种敏感信息块在文件中的加密存储装置,包括:
加密模块,用于通过数据加密密钥对敏感信息块进行加密,得到加密信息块;
第一存储模块,用于将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;
第二存储模块,用于将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;
第三存储模块,用于将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;
其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述敏感信息块在文件中的加密存储方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述敏感信息块在文件中的加密存储方法的步骤。
本发明提供的一种敏感信息块在文件中的加密存储方法及装置,通过对每次要保存的敏感信息块采用单独加密的措施,每次加密的数据量小。对加密后的敏感信息块直接存储到文件中,避免全文件加密,因此做到加密速度快,资源消耗少。同时,通过将信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置,可以使得在文件解密过程中,可以通过文件块索引区信息,直接定位到特定文件的特定位置,极大的提升响应速度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的敏感信息块在文件中的加密存储方法的流程示意图;
图2为本发明提供的加密文件存储格式示意图;
图3为本发明提供的业务系统数据库示意图;
图4为本发明提供的信息块加密流程示意图;
图5为本发明提供的信息块解密流程示意图;
图6为本发明提供的敏感信息块在文件中的加密存储装置示意图;
图7为本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的敏感信息块在文件中的加密存储方法的流程示意图,如图1所示,包括:
步骤S1,通过数据加密密钥对敏感信息块进行加密,得到加密信息块;
步骤S2,将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;
步骤S3,将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;
步骤S4,将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;
其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
具体的,本发明中所描述的数据加密密钥(key-d)是指,业务系统自己独立生成的用来对明文进行加密使用的密钥,该密钥会使用会话密钥加密后存储到文件中。
本发明中所描述的会话密钥(key-s)是指,在业务中心向加密中心请求获取密钥时,由加密中心生成的会话密钥,该密钥用来加密真正的“数据加密密钥key-d”。
本发明中所描述的信息块标识(BlockId)是指,当前存储文件中信息块的id值,每新建一个存储文件,BlockId总是会从1开始递增。当BlockId达到MAX之后,本存储文件不能再写入新的数据,此时需要新建一个存储文件并且FileId+1。注意:对BlockId的自增操作保持原子性。
本发明中所描述的开端信息(Offset)是指,指定信息块数据区在本文件中存储的起始位置。
本发明中所描述的加密中心是指,负责产生会话密钥、会话密钥索引,并将其进行保存以及对业务系统提供查询服务的系统或设备。
本发明的业务系统通过数据加密密钥对敏感信息块进行加密,得到加密信息块之后,业务系统打开对应文件,校验文件头,查找一个空闲块的文化索引区位置,填写BlockId、Offset、信息指纹;然后再查找一个文件密钥池区的空闲位置,保存对应信息(用key-s加密key-d的密文、key-s的索引),然后业务系统在文件数据区的末尾以追加方式写入加密信息块及其相关信息。
图2为本发明提供的加密文件存储格式示意图,如图2所示,文件分为文件头、块索引区、秘钥池区和数据区四个区块。每个区块的具体作用见下面描述:
文件头:用来保存文件的整体信息。
文件id:本文件的唯一id。
摘要算法类型:明文进行摘要运算选择的摘要算法,不同的摘要算法生成的信息指纹长度不同,但是同一算法生成的摘要长度是相同的。
预留空间:为了后续扩展预留。
块索引区:本区保存固定的MAX条记录,MAX值根据需求预先进行配置。每一个索引块都占用固定长度,这样程序在处理的时候会很容易根据长度定位到指定的索引块上。
BlockId:指定信息块在本文件中的唯一ID。
Offset:指定信息块数据区在本文件中存储的起始位置。
信息指纹:是信息块明文进行摘要算法之后生成的指纹结果。其长度根据使用的摘要算法不同而不同,但是都使用文件头“摘要算法”字段指示的算法。
在文件创建时一次性分配出所有需要占用的空间,并将空间置0初始化。
根据预先评估的信息块大小,一般推荐索引条数MAX控制在5000~50000范围之间。如果条数过多导致文件过大,容易影响读取时的访问效率;如果文件过小,则系统会保存太多加密文件,为运维增加更多负担。
秘钥池区:本区保存固定的MAX条记录,MAX值同“块索引区”的MAX值。本区保存对原始数据进行加密的相关信息。
会话密钥索引(ksid):由“加密中心”生成的一个索引值,加密中心使用该值与中心内部保存的会话密钥进行一一匹配。
算法及模式:为数据加密秘钥(key-d)进行加密所采用的加密算法和加密模式。
填充方式:为数据加密秘钥(key-d)加密的算法所需要填充的内容
会话密钥长度:会话秘钥(key-s)的原始长度,辅助信息。
数据长度:用“数据加密秘钥(key-d)”加密后的密文的长度。
在文件创建时一次性分配出所有需要占用的空间。
数据区:保存了加密后的数据,以及文件索引、加密算法等辅助信息。
密钥池区Offset:本数据所对应密钥池区的Offset,通过该数据可直接跳转到密钥池区读取密钥的相关信息。
内容格式:明文是字符还是二进制格式,是常用的内存中的一块数据还是一个完整的文件。此字段为辅助信息。
算法及模式:为明文进行加密所采用的加密算法和加密模式。
填充方式:为明文进行加密的算法所需要填充的内容
数据密钥长度:数据加密秘钥(key-d)的原始长度,辅助信息,用来和密钥池区解密出来的key-d进行一次校验。
密文:用数据加密秘钥(key-d)加密后的信息块密文,变长。
本发明提供的一种敏感信息块在文件中的加密存储方法及装置,通过对每次要保存的敏感信息块采用单独加密的措施,每次加密的数据量小。对加密后的敏感信息块直接存储到文件中,避免全文件加密,因此做到加密速度快,资源消耗少。同时,通过将信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置,可以使得在文件解密过程中,可以通过文件块索引区信息,直接定位到特定文件的特定位置,极大的提升响应速度,另一方面,数据加密密钥会被会话密钥加密,且会话密钥的索引一直存储在加密中心,以备后续使用;查找会话密钥时使用的是会话密钥索引,加密中心的认证、鉴权机制保证该索引不会被恶意使用,保证了信息块加密的安全性。
基于上述任一实施例,在所述通过数据加密密钥key-d对敏感信息块进行加密的步骤之前,所述方法还包括:
生成第一随机数后,利用加密中心公钥对所述第一随机数进行加密,得到加密后的第一随机数;
将所述加密后的第一随机数发送到加密中心,以供所述加密中心对所述加密后的第一随机数进行解密后,通过所述第一随机数对会话密钥对进行加密,并将加密后的会话密钥对发送到业务系统;
通过所述第一随机数对加密后的会话密钥对进行解密,得到加密后的会话密钥对;
其中,所述会话密钥对包括会话密钥和所述会话密钥的会话密钥索引。
具体的,本发明中的第一随机数是由业务系统生成的,其也可以是指一个随机串,业务系统利用加密中心公钥对所述第一随机数进行加密,得到加密后的第一随机数,将所述加密后的第一随机数发送到加密中心,加密中心收到加密后的第一随机数后,利用自身的私钥对其进行解密,得到第一随机数。
然后加密中心生成会话秘钥(key-s),及其会话秘钥(key-s)对应的会话密钥索引(ksid),在加密中心保存会话密钥对(ksid,key-s),此会话秘钥(key-s)为加密中心独立生成,与随机数无关。
本发明中可以通过会话密钥索引,在加密中心中找到其对应的会话密钥。
加密中心利用解密得到的第一随机数,将会话密钥对就进行加密后,得到加密后的会话密钥对,而业务系统在收到加密后的会话密钥对后,会通过第一随机数对其进行解密,从而得到解密后的会话密钥对。
此时的会话密钥可以用于对数据加密密钥进行加密。
本发明中在加密中心和业务系统的交互中都会根据随机生成的随机数来进行加密,确保数据交互的可靠性,同时会话密钥的索引一直存储在加密中心,以备后续使用;查找会话密钥时使用的是会话密钥索引,加密中心的认证、鉴权机制保证该索引不会被恶意使用,保证了信息块加密的安全性。
基于上述任一实施例,在将所述加密信息块存储在文件数据区的空闲位置的步骤之前,所述方法还包括:
获取业务系统的当前信息块标识;
在所述业务系统的当前信息块标识超过预设推荐索引条数的情况下,生成新的文件,将新的文件中文件块索引区和新的文件中文件密钥池区清零。
具体的,本发明中所描述的预设推荐索引条数具体是指MAX值,具体为一个文件中最多能存储的信息块数量最大值,该值可以通过配置的方式进行修改。一般在系统部署前根据预估的系统中可能用到的信息块大小来进行配置,一旦配置后不再修改。
本发明中在用key-d对信息块进行加密,得到加密信息块后,然后获取系统唯一的BlockId(自增值),如果BlockId超过了预定义的MAX,则系统唯一FileId+1,生成新的存储文件,块索引区和密钥池区清零,BlockId清零。
本发明中通过信息块标识超过预设推荐索引条数的比较,有效避免的数据溢出的情况,保证了文件存储的可靠性。
基于上述任一实施例,在所述将密钥加密密文和会话密钥的索引信息存储在文件的密钥池区空闲位置的步骤之后,所述方法还包括:
在业务系统数据库中插入敏感信息块存储记录;
其中,所述敏感信息块存储记录包括:所述文件的文件标识、所述加密信息块的信息块标识和敏感信息块的信息指纹。
图3为本发明提供的业务系统数据库示意图,如图3所示,业务系统在将信息块存储到文件后,在数据库中需要为此条信息创建一条敏感信息块存储记录,该敏感信息块存储记录的记录字段如下所述:信息块主键/外键:业务系统通过主键或者外键来快速查找此表的某一条记录。FileId:此信息块当前存储文件的id值,用这个值来查找存储文件。BlockId:此信息块对应的块id值,用这个值在存储文件中查找具体的数据值。信息指纹:此信息块明文进行摘要算法之后生成的指纹结果。用来和文件中存储的指纹进行比对。
本发明中通过在完成一次存储后即在业务系统数据库中插入相应的敏感信息块存储记录,在数据库中留有索引信息,如果需要查找时可以首先检索数据库,快速得到其索引后,直接定位到特定文件的特定位置,响应速度大大提升。
基于上述任一实施例,所述方法还包括:
在所述业务系统数据库中找到待读取敏感信息块存储记录;
根据所述待读取敏感信息块存储记录中的文件标识查找并打开文件;
根据所述待读取敏感信息块的存储记录中的信息块标识确定文件块索引区信息,并根据文件块索引区信息中的开端信息确定文件数据区信息;
根据所述文件数据区信息中的密钥池区开端信息,确定密钥池区的密钥信息。
本发明中所描述的敏感信息块解密的过程,业务系统读取业务系统数据库,找到需要读取的信息块对应的FileId、BlockId和信息块指纹,根据FileId查找文件并打开文件,根据信息块标识BlockId确定文件块索引区信息,并根据文件块索引区信息中的开端信息确定文件数据区信息,根据所述文件数据区信息中的密钥池区开端信息,确定密钥池区的密钥信息。
基于上述任一实施例,在文件块索引区信息中存储的信息指纹与所述待读取敏感信息块中的信息指纹相同的情况下,根据所述密钥池区的密钥信息,确定会话密钥索引信息;
获取所述会话密钥索引信息对应的会话密钥,通过所述会话密钥,对文件密钥池区的密钥加密密文进行解密,得到数据加密密钥;
根据所述数据加密密钥,对文件数据区信息中存储的加密信息块进行解密。
具体的,根据BlockId读取索引区保存的信息指纹并且和数据库中读取的信息指纹进行比较。如果指纹相同则继续下一步,如果不同则提示用户数据被破坏。
根据所述密钥池区的密钥信息,确定会话密钥索引信息,通过该会话密钥索引信息,从加密中心中获取该索引对应的会话密钥,然后通过获取到的会话密钥对文件密钥池区的密钥加密密文进行解密,从而可以得到解密后的数据加密密钥,而得到数据加密密钥后,即可实现加密信息块的解密,从而得到最初存储的敏感信息块。
本发明通过对每次要保存的敏感信息块采用单独加密的措施,每次加密的数据量小。对加密后的敏感信息块直接存储到文件中,避免全文件加密,因此做到加密速度快,资源消耗少。同时,通过将信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置,可以使得在文件解密过程中,可以通过文件块索引区信息,直接定位到特定文件的特定位置,极大的提升响应速度。
基于上述任一实施例,获取所述会话密钥索引信息对应的会话密钥的步骤,具体包括:
生成第二随机数,通过加密中心公钥对所述第二随机数和会话密钥索引信息进行加密,得到第一加密数据信息;
将所述加密数据信息发送到加密中心,以供所述加密中心对所述加密数据信息进行解密,根据会话密钥索引信息确定会话密钥,通过第二随机数对所述会话密钥加密后,将第二加密数据信息发送到业务系统;
通过所述第二随机数,对所述第二加密数据信息进行解密,得到会话密钥索引信息对应的会话密钥。
具体的,本发明中所描述的第二随机数是指业务系统产生的随机数,其也可以是指业务系统产生的随机串,业务系统通过加密中心公钥对所述第二随机数和会话密钥索引信息进行加密,得到第一加密数据信息后,将第一加密数据信息发送到加密中心,加密中心根据其自身私钥对第一加密数据信息进行解密后,得到会话密钥索引信息,然后根据会话密钥索引信息,找到其对应的会话密钥,在通过第二随机数将会话密钥加密后,得到第二加密数据信息。
业务系统收到第二加密数据信息后,通过第二随机数对第二加密数据信息进行解密,得到会话密钥,从而可以通过会话密钥对密钥加密密文进行解密。
本发明中的业务系统和加密中心在交互过程中,一直通过随机数进行加密,保证了交互的可靠性,并且数据加密密钥会被会话密钥加密,且会话密钥的索引一直存储在加密中心,以备后续使用;查找会话密钥时使用的是会话密钥索引,加密中心的认证、鉴权机制保证该索引不会被恶意使用,保证了信息块加密的安全性。
图4为本发明提供的信息块加密流程示意图,如图4所示,包括:
业务系统产生一个随机数(或者随机串),使用加密中心公开的公钥进行加密并发送给加密中心;
加密中心收到后用私钥解密该随机数,然后生成会话密钥索引(ksid)和会话秘钥(key-s),在加密中心保存(ksid,key-s)对儿,此key为加密中心独立生成,与随机数无关;
加密中心利用随机数作为key,加密会话密钥索引和会话秘钥并返回;
业务系统接收后利用随机数解密会话密钥索引和会话秘钥,然后独立生成数据加密秘钥key-d(随机串);
业务系统用预定义算法生成信息块指纹;用key-d对信息块进行加密;然后获取系统唯一的BlockId(自增值),如果BlockId超过了预定义的MAX,则系统唯一FileId+1,生成新的存储文件,块索引区和密钥池区清零,BlockId清零。
业务系统打开对应文件,校验文件头,查找一个空闲块索引区位置,填写BlockId、Offset、信息指纹;然后再查找一个空闲密钥池区位置,保存对应信息(用key-s加密key-d的密文、key-s的索引)业务系统在文件末尾以追加方式写入信息块的密文及相关信息
上述操作都成功后,业务系统数据库中插入一条新纪录:FileId、BlockId、信息块指纹;
流程结束。
图5为本发明提供的信息块解密流程示意图,如图5所示,包括:
业务系统读取数据库,找到需要读取的信息块对应的FileId、BlockId、信息块指纹,根据FileId查找文件并打开,根据BlockId读取索引区保存的信息块指纹并且和数据库中读取的指纹数据进行比较。如果指纹相同则继续下一步,如果不同则提示用户数据被破坏。
业务系统根据索引区Offset找到数据区的文件记录,根据数据区保存的密钥池区Offset找到秘钥池区的密钥信息,读取会话密钥索引(ksid)。
业务系统产生随机数(或随机串),并且利用加密中心的公钥加密(随机数+会话密钥索引)发送给
加密中心收到后用私钥解密信息,根据会话密钥索引(ksid)查找会话秘钥(key-s),利用随机数作为key,加密会话秘钥并返回;
业务系统接收后利用随机数解密会话秘钥,然后使用key-s解密数据加密秘钥key-d;
业务系统用key-d解密加密的信息块,并再次计算信息块指纹,和数据库、块索引区指纹进行比较。
如果指纹相同,流程正常结束。如果指纹不同,则报错后流程结束。
本发明中的会话密钥一直存储在加密中心,以备后续使用;查找会话密钥时使用的是会话密钥索引,加密中心的认证、鉴权机制保证该索引不会被恶意使用。
本发明中的方案在保存数据的时候,引入了摘到算法,信息块的摘要在数据库和文件中各存储一份。当读取信息块密文之前,首先要对比数据库和文件中存储的摘要信息,如果对比不通过则说明文件遭到了破坏,会抛弃这次结果。在解密后会再次对信息块进行一次摘要运算并再次进行比对,如果信息不符合则仍然抛弃本次结果。摘要算法的引入,对数据的完整性进行了很好的保护。
.本发明支持变长信息块的保存,对需要加密的明文数据长度没有限制。
本发明对待加密的信息块内容没有任何限制,可以加密任意文本或二进制流。
图6为本发明提供的敏感信息块在文件中的加密存储装置示意图,如图6所示,包括:加密模块610、第一存储模块620、第二存储模块630和第三存储模块640;其中,加密模块610用于通过数据加密密钥对敏感信息块进行加密,得到加密信息块;其中,第一存储模块620,用于将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;其中,第二存储模块630用于将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;其中,第三存储模块640用于将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
本发明通过对每次要保存的敏感信息块采用单独加密的措施,每次加密的数据量小。对加密后的敏感信息块直接存储到文件中,避免全文件加密,因此做到加密速度快,资源消耗少。同时,通过将信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置,可以使得在文件解密过程中,可以通过文件块索引区信息,直接定位到特定文件的特定位置,极大的提升响应速度。
图7为本发明提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行敏感信息块在文件中的加密存储方法,该方法包括:通过数据加密密钥对敏感信息块进行加密,得到加密信息块;将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的敏感信息块在文件中的加密存储方法,该方法包括:通过数据加密密钥对敏感信息块进行加密,得到加密信息块;将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的敏感信息块在文件中的加密存储方法,该方法包括:通过数据加密密钥对敏感信息块进行加密,得到加密信息块;将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种敏感信息块在文件中的加密存储方法,其特征在于,包括:
通过数据加密密钥对敏感信息块进行加密,得到加密信息块;
将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;
将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;
将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;
其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
2.根据权利要求1所述敏感信息块在文件中的加密存储方法,其特征在于,在所述通过数据加密密钥对敏感信息块进行加密的步骤之前,所述方法还包括:
生成第一随机数后,利用加密中心公钥对所述第一随机数进行加密,得到加密后的第一随机数;
将所述加密后的第一随机数发送到加密中心,以供所述加密中心对所述加密后的第一随机数进行解密后,通过所述第一随机数对会话密钥对进行加密,并将加密后的会话密钥对发送到业务系统;
通过所述第一随机数对加密后的会话密钥对进行解密,得到解密后的会话密钥对;
其中,所述会话密钥对包括会话密钥和所述会话密钥的会话密钥索引。
3.根据权利要求1所述敏感信息块在文件中的加密存储方法,其特征在于,在将所述加密信息块存储在文件数据区的空闲位置的步骤之前,所述方法还包括:
获取业务系统的当前信息块标识;
在所述业务系统的当前信息块标识超过预设推荐索引条数的情况下,生成新的文件,将新的文件中文件块索引区和新的文件中文件密钥池区清零。
4.根据权利要求1所述敏感信息块在文件中的加密存储方法,其特征在于,在所述将密钥加密密文和会话密钥的索引信息存储在文件的密钥池区空闲位置的步骤之后,所述方法还包括:
在业务系统数据库中插入敏感信息块存储记录;
其中,所述敏感信息块存储记录包括:所述文件的文件标识、所述加密信息块的信息块标识和敏感信息块的信息指纹。
5.根据权利要求4所述敏感信息块在文件中的加密存储方法,其特征在于,所述方法还包括:
在所述业务系统数据库中找到待读取敏感信息块存储记录;
根据所述待读取敏感信息块存储记录中的文件标识查找并打开文件;
根据所述待读取敏感信息块的存储记录中的信息块标识确定文件块索引区信息,并根据文件块索引区信息中的开端信息确定文件数据区信息;
根据所述文件数据区信息中的密钥池区开端信息,确定密钥池区的密钥信息。
6.根据权利要求4所述敏感信息块在文件中的加密存储方法,其特征在于,所述方法还包括:
在文件块索引区信息中存储的信息指纹与所述待读取敏感信息块中的信息指纹相同的情况下,根据所述密钥池区的密钥信息,确定会话密钥索引信息;
获取所述会话密钥索引信息对应的会话密钥,通过所述会话密钥,对文件密钥池区的密钥加密密文进行解密,得到数据加密密钥;
根据所述数据加密密钥,对文件数据区信息中存储的加密信息块进行解密。
7.根据权利要求6所述敏感信息块在文件中的加密存储方法,其特征在于,获取所述会话密钥索引信息对应的会话密钥的步骤,具体包括:
生成第二随机数,通过加密中心公钥对所述第二随机数和会话密钥索引信息进行加密,得到第一加密数据信息;
将所述加密数据信息发送到加密中心,以供所述加密中心对所述加密数据信息进行解密,根据会话密钥索引信息确定会话密钥,通过第二随机数对所述会话密钥加密后,将第二加密数据信息发送到业务系统;
通过所述第二随机数,对所述第二加密数据信息进行解密,得到会话密钥索引信息对应的会话密钥。
8.一种敏感信息块在文件中的加密存储装置,其特征在于,包括:
加密模块,用于通过数据加密密钥对敏感信息块进行加密,得到加密信息块;
第一存储模块,用于将所述加密信息块存储在文件数据区的空闲位置,得到所述加密信息块的信息块标识和开端信息;
第二存储模块,用于将所述信息块标识、开端信息和所述敏感信息块的信息指纹存储在文件块索引区的空闲位置;
第三存储模块,用于将密钥加密密文和会话密钥索引信息存储在文件密钥池区的空闲位置;
其中,所述密钥加密密文是通过会话密钥对所述数据加密密钥进行加密后得到的密文。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述敏感信息块在文件中的加密存储方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述敏感信息块在文件中的加密存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110025505.3A CN114756887A (zh) | 2021-01-08 | 2021-01-08 | 一种敏感信息块在文件中的加密存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110025505.3A CN114756887A (zh) | 2021-01-08 | 2021-01-08 | 一种敏感信息块在文件中的加密存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114756887A true CN114756887A (zh) | 2022-07-15 |
Family
ID=82325736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110025505.3A Pending CN114756887A (zh) | 2021-01-08 | 2021-01-08 | 一种敏感信息块在文件中的加密存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114756887A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174246A (zh) * | 2022-07-18 | 2022-10-11 | 中国银行股份有限公司 | 一种信息处理方法及系统 |
CN116743357A (zh) * | 2022-09-30 | 2023-09-12 | 荣耀终端有限公司 | 密钥存储方法和装置 |
-
2021
- 2021-01-08 CN CN202110025505.3A patent/CN114756887A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174246A (zh) * | 2022-07-18 | 2022-10-11 | 中国银行股份有限公司 | 一种信息处理方法及系统 |
CN115174246B (zh) * | 2022-07-18 | 2024-03-19 | 中国银行股份有限公司 | 一种信息处理方法及系统 |
CN116743357A (zh) * | 2022-09-30 | 2023-09-12 | 荣耀终端有限公司 | 密钥存储方法和装置 |
CN116743357B (zh) * | 2022-09-30 | 2024-03-12 | 荣耀终端有限公司 | 密钥存储方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110324143B (zh) | 数据传输方法、电子设备及存储介质 | |
US10447476B2 (en) | Multi-key graphic cryptography for encrypting file system acceleration | |
CN108900511B (zh) | 一种文件加密和解密的方法、装置及设备 | |
CN111262701B (zh) | 一种重放攻击检测方法、系统、设备及存储介质 | |
AU2013101034B4 (en) | Registration and authentication of computing devices using a digital skeleton key | |
KR101563461B1 (ko) | 데이터베이스 보안 관리를 위한 방법, 서버 및 컴퓨터-프로그램 | |
US8880879B2 (en) | Accelerated cryptography with an encryption attribute | |
CN108833361B (zh) | 一种基于虚拟账号的身份认证方法及装置 | |
CN106682521B (zh) | 基于驱动层的文件透明加解密系统及方法 | |
CN110445792B (zh) | 验证码生成方法和验证码登录系统 | |
CN114756887A (zh) | 一种敏感信息块在文件中的加密存储方法及装置 | |
CN104615929A (zh) | 为提供安全的云服务的动态口令卡、安全云服务提供系统及安全云服务提供方法 | |
CN106992851A (zh) | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 | |
CN108494783A (zh) | 云端数据的保护方法 | |
CN110032877A (zh) | 图像存取方法及其系统 | |
CN108737079B (zh) | 分布式量子密钥管理系统及方法 | |
CN115473722A (zh) | 数据加密方法、装置、电子设备及存储介质 | |
CN108540486A (zh) | 云密钥的生成和使用方法 | |
KR100772521B1 (ko) | Rfid 시스템에서의 태그 인증 장치 및 방법 | |
WO2020044095A1 (zh) | 文件加密方法、装置、设备/终端/服务器及计算机可读存储介质 | |
US20050223218A1 (en) | Storing of data in a device | |
CN113658709B (zh) | 用于医疗数据信息查询的方法、装置、计算机设备及存储介质 | |
CN115757535A (zh) | 数据查询方法、数据存储方法、装置及电子设备 | |
CN109145645B (zh) | 一种保护安卓手机中短信验证码的方法 | |
KR20160114492A (ko) | 데이터베이스 보안 관리를 위한 방법, 서버 및 컴퓨터-프로그램 |
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 |