CN112966310B - 基于SQLite的细粒度数据完整性验证方法及设备 - Google Patents

基于SQLite的细粒度数据完整性验证方法及设备 Download PDF

Info

Publication number
CN112966310B
CN112966310B CN202110309266.4A CN202110309266A CN112966310B CN 112966310 B CN112966310 B CN 112966310B CN 202110309266 A CN202110309266 A CN 202110309266A CN 112966310 B CN112966310 B CN 112966310B
Authority
CN
China
Prior art keywords
merkle
tree
sqlite
data
hmac
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.)
Active
Application number
CN202110309266.4A
Other languages
English (en)
Other versions
CN112966310A (zh
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202110309266.4A priority Critical patent/CN112966310B/zh
Publication of CN112966310A publication Critical patent/CN112966310A/zh
Application granted granted Critical
Publication of CN112966310B publication Critical patent/CN112966310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/6227Protecting 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

基于SQLite的细粒度数据完整性验证方法及设备,验证方法包括:对SQLite数据库文件每一页分别进行散列计算,将每一页的散列值以一个Merkle‑Tree的数据结构组织起来,Root值当作是整个数据库文件的散列值;打开SQLite数据库文件时先比较新旧Merkle‑Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,确定被篡改数据所在页面;通过SQLite数据库文件页面号推断出错误数据所在的表;对表存储的每一条数据记录做一个散列计算,根据错误数据所在的表,构造错误表的Merkle‑Tree并进行搜索,将错误数据的行号筛选出来。本发明具有多粒度、灵活性高、高效、安全的优点。

Description

基于SQLite的细粒度数据完整性验证方法及设备
技术领域
本发明属于计算机信息安全领域,具体涉及一种基于SQLite的细粒度数据完整性验证方法及设备。
背景技术
嵌入式数据库是嵌入式系统的重要组成部分,它直接嵌入到嵌入式应用程序中,作为嵌入式设备数据处理的核心组件,具有轻量级、实时性、嵌入性的特点,在军事设备系统、医疗电子、消费类电子、网络通讯、工业控制等领域等有着广泛的应用。在众多嵌入式数据库中,SQLite主要以其快速、简单、高可靠的特点成为全世界应用最广泛的嵌入式数据库。上述提及的嵌入式数据库应用场景,对SQLite而言也是适用的,而且随着近年来物联网、大数据、智慧城市等概念的广泛兴起与应用,嵌入式数据库SQLite必将发挥更加重要的作用。而这些领域在安全方面的要求一直很高,一旦发生安全事故,后果不堪设想。
在众多针对数据库安全的攻击类型中,通过篡改SQLite数据来破坏SQLite数据库数据完整性的攻击方式,对使用SQLite的应用程序危害巨大,容易导致系统瘫痪或执行恶意的操作。另一个方面,SQLite作为手机通讯录、短信等日常应用的嵌入式数据库引擎,存储着大量的用户隐私信息,手机短信、即时通讯工具的聊天记录可以被当作电子证据信息。因此,保证SQLite所存的数据未被篡改,保障SQLite数据完整性,这在今后对于保障电子证据的可靠性和维护法院判决公正意义重大,在计算机取证领域是一大贡献。
现有技术为了保证嵌入式数据库的完整性,采取对整个嵌入式数据库SQLite文件做散列计算的方法,散列函数可以是MD5,SHA,HMAC等,当应用程序下次打开数据库时,会先计算整个SQLite数据库文件的散列值,并与之前的散列值进行对比,如果不一致就可以证明该数据库被篡改了。但是这种数据完整性验证方式粒度太粗,按照这种方案,只能确定该SQLite数据库文件被篡改了,而具体哪些数据被篡改了却一无所知,为了安全起见,被篡改的数据库往往就变得不可信、不可用,因此整个SQLite数据库文件所存储的数据就失去了任何价值。而实际上,SQLite数据库文件中的大部分数据是没有被篡改的且非常重要的,日后也是需要使用的。总而言之,对整个SQLite数据库文件进行散列计算的方式,无法保证数据库被篡改之后正确数据的可用性、可信性,这就是目前技术方案存在的缺陷。
发明内容
本发明的目的在于针对上述现有技术中数据完整性验证方式粒度太粗的问题,提供一种基于SQLite的细粒度数据完整性验证方法及设备,能够在SQLite数据库数据被篡改的情况下,将正确数据与错误数据区分开来,保障SQLite正确数据的可信性与可用性。
为了实现上述目的,本发明有如下的技术方案:
一种基于SQLite的细粒度数据完整性验证方法,包括以下步骤:
-对SQLite数据库文件每一页分别进行散列计算,将每一页的散列值以一个Merkle-Tree的数据结构组织起来,Merkle-Tree的Root值当作是整个数据库文件的散列值;
-打开SQLite数据库文件时先比较新旧Merkle-Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,通过Merkle-Tree确定被篡改数据所在页面;
-通过SQLite数据库文件页面号推断出错误数据所在的表;
-对表所存储的每一条数据记录做一个散列计算,根据错误数据所在的表,构造错误表的Merkle-Tree并进行搜索,将错误数据的行号筛选出来。
作为本发明的一种优选方案,所述的散列算法为HMAC算法,将Merkle-Tree的Root值存放在一个可信环境下,将所有的Merkle-Tree加密之后存储,加密存储的Merkle-Tree包括整个数据库文件的Merkle-Tree,以及所有表的Merkle-Tree;密钥值key及加密Merkle-Tree的密钥由可信环境分配并存储在可信环境中,计算SQLite数据库所有页面的HMAC值和每个表所有记录的HMAC值。
作为本发明的一种优选方案,可信环境为基于Intel的SGX技术的Enclave、基于Arm的TrustZone技术的TEE、TPM芯片。
作为本发明的一种优选方案,初始化操作包括以下步骤:
-创建SQLite数据库并插入数据存储;
-创建数据库成功后退出,进行HMAC计算;
-在可信环境下生成用于计算HMAC的密钥;
-多线并行计算SQLite数据库的页面HMAC值;
-基于计算所得HMAC值,分别构造整个SQLite数据库文件与数据库中表的Merkle-Tree,并将数据库文件的Merkle-Tree的Root值存入可信世界;
-将构造得到的Merkle-Tree加密存储在磁盘上。
作为本发明的一种优选方案,构造SQLite数据的Merkle-Tree的具体步骤如下:
-通过多线程并行计算获取HMAC值;
-将所有HMAC值作为Merkle-Tree的叶子节点;非叶子节点的HMAC值为左右两个叶子节点的HMAC值拼接而成的字符串的HMAC值,在构造过程中会存在以下两种情况:
1)该层的节点数量,包括叶子节点数量和非叶子节点,为奇数;
2)该层的节点数量,包括叶子节点数量和非叶子节点,为偶数;
针对于情况1),若该层的节点数量为奇数,则将最后一个HMAC值复制一遍,作为构造上一层节点的右子树节点HMAC值,如Vi+1=HMAC(Vi,Vi);
针对于情况2),若该层的节点数量为偶数,则两两作为左右子节点构造上一层的父节点;
-逐层向上构造,直至构造出根节点值。
作为本发明的一种优选方案,首先从可信环境中取出密钥,解密原SQLite数据库的Merkle-Tree,并用此密钥构造新的Merkle-Tree;
通过构造好的两棵树进行校验,找到叶子节点不一致的编号:
第一步,比较两颗Merkle-Tree的根节点是否相同,如果不同,则检索该根节点的左右子节点,执行第二步,如果相同,则结束验证;
第二步,如果左节点的HMAC值相同,而右节点的值不同,则比较右子树的内容;同理,如果右节点相同,则比较左子树的内容;
第三步,逐层向下比较,直到找出不同的叶子节点,得到错误数据所在的页面的编号或在表中的行数。
作为本发明的一种优选方案,Merkle-Tree记录的散列值为Hash值;如果某次操作的SQL语句发生更新,则记录更新表的名称,然后重新计算整个SQLite数据库文件所有页面及更新表所有记录的Hash值。
本发明还提供一种基于SQLite的细粒度数据完整性验证系统,包括:
Merkle-Tree构建模块,用于对SQLite数据库文件每一页分别进行散列计算,将每一页的散列值以一个Merkle-Tree的数据结构组织起来,Merkle-Tree的Root值当作是整个数据库文件的散列值;
完整性验证模块,用于打开SQLite数据库文件时比较新旧Merkle-Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,通过Merkle-Tree确定被篡改数据所在页面;
错误数据位置推断模块,用于通过SQLite数据库文件页面号推断出错误数据所在的表;对表所存储的每一条数据记录做一个散列计算,根据错误数据所在的表,构造错误表的Merkle-Tree并进行搜索,将错误数据的行号筛选出来。
本发明还提出一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述基于SQLite的细粒度数据完整性验证方法的步骤。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现所述基于SQLite的细粒度数据完整性验证方法的步骤。
相较于现有技术,本发明有如下的有益效果:利用了嵌入式数据库SQLite的文件结构特性,对嵌入式数据库SQLite的多个粒度数据进行散列计算并记录,本发明基于Merkle-Tree数据结构与SQLite数据库的文件结构特点,分别构造SQLite数据库文件与数据库中每个表的Merkle-Tree以备之后的完整性验证使用,数据库文件的完整性验证是记录级数据完整性验证的前提,二者属于层层递进的关系,当发现数据库文件出现错误时,得出错误数据所在页面或表名,然后进行记录级别的完整性验证,通过这种细粒度的完整性验证方式不仅可以将正确数据和错误数据区分开来,而且能够保障SQLite数据库在被篡改时一定程度上的可用性。本发明是一种多粒度、灵活性高、高效、安全的数据完整性校验方法。
附图说明
图1为本发明为实现细粒度数据完整性验证的初始化操作流程图;
图2为本发明进行数据完整性验证所采取操作的流程图;
图3(a)为当某层叶子节点数量为偶数时Merkle-Tree构造流程示意图;
图3(b)为当某层叶子节点数量为奇数时Merkle-Tree构造流程示意图;
图4为本发明中Merkle-Tree的搜索模块流程示意图:
(a)原数据Merkle-Tree;(b)待验证Merkle-Tree。
具体实施方式
下面结合附图对本发明做进一步的详细说明。
参见图1,本发明为实现SQLite数据库的细粒度完整性验证进行初始化操作步骤如下:
步骤一,用户创建SQLite数据库并插入数据存储;
步骤二,用户创建数据库成功后准备退出,触发HMAC计算模块;
步骤三,可信环境生成用于计算HMAC的密钥;
步骤四,多线并行计算SQLite数据库的页面HMAC值;
步骤五,基于步骤四计算所得HMAC值,分别构造整个SQLite数据库文件与数据库中表的Merkle-Tree,并将数据库文件的Merkle-Tree的Root值存在可信的安全世界中;
步骤六,将构造得到的Merkle-Tree加密存储在磁盘上。
可信的安全环境,可以是Intel的SGX技术的Enclave、Arm的TrustZone技术的TEE、TPM芯片等基于硬件隔离的安全技术,可以提供安全存储、密钥生成、加解密运算等功能。
如图3(a)与图3(b)所示,Merkle-Tree为一颗二叉树,其中,每个叶子节点为单个数据块的HMAC值,非叶子节点的值为左右子节点值拼接而成的字符串的HMAC值。
SQLite数据的Merkle-Tree构造模块,适用于将SQLite的所有页面的HMAC值与表中所有记录的HMAC值构造成一颗Merkle-Tree,具体步骤如下:
在构造Merkle-Tree的过程中,一般会出现两种情况:
1)Merkle-Tree的所有层在构造过程中的节点数量都为偶数,如图3(a)所示;
2)Merkle-Tree的某一层在构造过程中的节点数量为奇数,如图3(b)所示;
如图3(a)所示,若该层节点数量为偶数时,直接两两构造自己的父节点,作为上一层节点,按照此方式逐层向上构造节点数据,直至根节点
如图3(b)所示,若在Merkle-Tree的构造过程中,某一层的节点数量为奇数,则将该层最后一个节点的HMAC值复制一遍,作为右子节点,然后两两构造自己的父节点,作为上一层节点,按照此方式逐层向上构造节点数据,直至根节点。
参见图2,本发明为实现SQLite数据库的细粒度完整性验证的操作如下:
步骤一,用户打开磁盘上已经存在的SQLite数据库。
步骤二,用户对整个数据库文件进行完整性验证,如果未发现篡改则正常使用,使用结束后执行步骤七,如发现篡改,则执行步骤三。
步骤三,发现错误数据,使用基于Merkle-Tree的搜索模块,确定错误数据所在SQLite的页面。
步骤四,通过页面编号判断错误数据所在的表名。
步骤五,构造原表记录Hash值的Merkle-Tree与目前错误表记录的Merkle-Tree。
步骤六,使用基于Merkle-Tree的搜索模块,确定错误数据在表中的第几行。
步骤七,用户正常使用完SQLite数据库之后,关闭数据库连接前,触发更新检测模块,如果此次操作导致数据库发生了更新,则执行HMAC计算模块,并计算更新后SQLite数据库的Merkle-Tree的Root值,存入可信环境。
SQLite数据的Merkle-Tree搜索模块,适用于将SQLite文件的错误页面以及表中错误记录所在的行号筛选出来,实现细粒度的数据完整性验证。
参见图4中的图(a)与图(b),具体步骤如下:
步骤一,比较两颗Merkle-Tree的根节点是否相同,如图所示,两颗Merkle-Tree的根节点R,R’不同,则检索该根节点的左右子节点,执行第二步;如果相同,退出验证;
步骤二,如图所示,两颗Merkle-Tree根节点的右子节点HMAC值相同,都为B,则无需在检查右子节点的情况,可以确定右边数据都是正确的,未被篡改;而左子节点不同,分别为A,C,说明左子树的叶子节点存在错误数据,需要继续检查,执行步骤三。
步骤三,逐层向下比较,直到找到HMAC值不同的叶子节点,如图所示,L2就是错误数据所在的页面或者行号,至此细粒度完整性验证结束。
本发明的设计原理如下:
嵌入式数据库SQLite在操作系统上以一个文件的形式而存在,而在底层的物理结构上,这个SQLite数据库文件是由一个个大小固定的页面组成,鉴于此特点,可以对每一页分别进行散列计算,然后将每一页的散列值以一个Merkle-Tree的数据结构组织起来,其Merkle-Tree的Root值可以当作是整个数据库文件的散列值,这样应用程序在下一次打开SQLite时可以先比较新旧Merkle-Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,通过Merkle-Tree可以在O(LogN)的时间复杂度内确定被篡改数据所在页面。同时,在SQLite中,不同的表一定由不同的页面组成,不存在任何交集,通过页面号可以推断出错误数据所在的表。其次,为了实现更加细粒度的验证方案,即记录级别,对SQLite数据库中的表所存储的每一条数据记录做一个散列计算,当确定错误数据所在表之后,构造错误表的Merkle-Tree并进行搜索,将错误数据的行号(RowID)筛选出来。
本发明还提供一种基于SQLite的细粒度数据完整性验证系统,包括:
Merkle-Tree构建模块,用于对SQLite数据库文件每一页分别进行散列计算,将每一页的散列值以一个Merkle-Tree的数据结构组织起来,Merkle-Tree的Root值当作是整个数据库文件的散列值;
完整性验证模块,用于打开SQLite数据库文件时比较新旧Merkle-Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,通过Merkle-Tree确定被篡改数据所在页面;
错误数据位置推断模块,用于通过SQLite数据库文件页面号推断出错误数据所在的表;对表所存储的每一条数据记录做一个散列计算,根据错误数据所在的表,构造错误表的Merkle-Tree并进行搜索,将错误数据的行号筛选出来。
本发明还提出一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述基于SQLite的细粒度数据完整性验证方法的步骤。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现所述基于SQLite的细粒度数据完整性验证方法的步骤。
所述的计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明基于SQLite的细粒度数据完整性验证方法。
所述终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,也可以是处理器、存储器。处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。存储器可用于存储计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现基于SQLite的细粒度数据完整性验证系统的各种功能。
以上所述的仅仅是本发明的较佳实施例,并不用以对本发明的技术方案进行任何限制,本领域技术人员应当理解的是,在不脱离本发明精神和原则的前提下,该技术方案还可以进行若干简单的修改和替换,这些修改和替换也均属于权利要求书所涵盖的保护范围之内。

Claims (10)

1.一种基于SQLite的细粒度数据完整性验证方法,其特征在于,包括以下步骤:
-对SQLite数据库文件每一页分别进行散列计算,将每一页的散列值以一个Merkle-Tree的数据结构组织起来,Merkle-Tree的Root值当作是整个数据库文件的散列值;
-打开SQLite数据库文件时先比较新旧Merkle-Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,通过Merkle-Tree确定被篡改数据所在页面;
-通过SQLite数据库文件页面号推断出错误数据所在的表;
-对表所存储的每一条数据记录做一个散列计算,根据错误数据所在的表,构造错误表的Merkle-Tree并进行搜索,将错误数据的行号筛选出来。
2.根据权利要求1所述基于SQLite的细粒度数据完整性验证方法,其特征在于:散列算法为HMAC算法,将Merkle-Tree的Root值存放在一个可信环境下,将所有的Merkle-Tree加密之后存储,加密存储的Merkle-Tree包括整个数据库文件的Merkle-Tree,以及所有表的Merkle-Tree;密钥值key及加密Merkle-Tree的密钥由可信环境分配并存储在可信环境中,计算SQLite数据库所有页面的HMAC值和每个表所有记录的HMAC值。
3.根据权利要求2所述基于SQLite的细粒度数据完整性验证方法,其特征在于:可信环境为基于Intel的SGX技术的Enclave、基于Arm的TrustZone技术的TEE、TPM芯片。
4.根据权利要求2所述基于SQLite的细粒度数据完整性验证方法,其特征在于:
初始化操作包括以下步骤:
-创建SQLite数据库并插入数据存储;
-创建数据库成功后退出,进行HMAC计算;
-在可信环境下生成用于计算HMAC的密钥;
-多线并行计算SQLite数据库的页面HMAC值;
-基于计算所得HMAC值,分别构造整个SQLite数据库文件与数据库中表的Merkle-Tree,并将数据库文件的Merkle-Tree的Root值存入可信世界;
-将构造得到的Merkle-Tree加密存储在磁盘上。
5.根据权利要求2所述基于SQLite的细粒度数据完整性验证方法,其特征在于:
构造SQLite数据的Merkle-Tree的具体步骤如下:
-通过多线程并行计算获取HMAC值;
-将所有HMAC值作为Merkle-Tree的叶子节点;非叶子节点的HMAC值为左右两个叶子节点的HMAC值拼接而成的字符串的HMAC值,在构造过程中会存在以下两种情况:
1) 层的节点数量,包括叶子节点数量和非叶子节点,为奇数;
2) 层的节点数量,包括叶子节点数量和非叶子节点,为偶数;
针对于情况1),若层的节点数量为奇数,则将最后一个HMAC值复制一遍,作为构造上一层节点的右子树节点HMAC值,如Vi+1=HMAC(Vi,Vi);
针对于情况2),若层的节点数量为偶数,则两两作为左右子节点构造上一层的父节点;
-逐层向上构造,直至构造出根节点值。
6.根据权利要求1所述基于SQLite的细粒度数据完整性验证方法,其特征在于:首先从可信环境中取出密钥,解密原SQLite数据库的Merkle-Tree,并用此密钥构造新的Merkle-Tree;
通过构造好的两棵树进行校验,找到叶子节点不一致的编号:
第一步,比较两颗Merkle-Tree的根节点是否相同,如果不同,则检索该根节点的左右子节点,执行第二步,如果相同,则结束验证;
第二步,如果左节点的HMAC值相同,而右节点的值不同,则比较右子树的内容;同理,如果右节点相同,则比较左子树的内容;
第三步,逐层向下比较,直到找出不同的叶子节点,得到错误数据所在的页面的编号或在表中的行数。
7.根据权利要求1所述基于SQLite的细粒度数据完整性验证方法,其特征在于:Merkle-Tree记录的散列值为Hash值;如果某次操作的SQL语句发生更新,则记录更新表的名称,然后重新计算整个SQLite数据库文件所有页面及更新表所有记录的Hash值。
8.一种基于SQLite的细粒度数据完整性验证系统,其特征在于,包括:
Merkle-Tree构建模块,用于对SQLite数据库文件每一页分别进行散列计算,将每一页的散列值以一个Merkle-Tree的数据结构组织起来,Merkle-Tree的Root值当作是整个数据库文件的散列值;
完整性验证模块,用于打开SQLite数据库文件时比较新旧Merkle-Tree的Root值验证整个数据库文件的完整性,如果发现存在数据错误,通过Merkle-Tree确定被篡改数据所在页面;
错误数据位置推断模块,用于通过SQLite数据库文件页面号推断出错误数据所在的表;对表所存储的每一条数据记录做一个散列计算,根据错误数据所在的表,构造错误表的Merkle-Tree并进行搜索,将错误数据的行号筛选出来。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述的处理器执行所述的计算机程序时实现如权利要求1至7中任意一项所述基于SQLite的细粒度数据完整性验证方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述的计算机程序被处理器执行时实现如权利要求1至7中任意一项所述基于SQLite的细粒度数据完整性验证方法的步骤。
CN202110309266.4A 2021-03-23 2021-03-23 基于SQLite的细粒度数据完整性验证方法及设备 Active CN112966310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110309266.4A CN112966310B (zh) 2021-03-23 2021-03-23 基于SQLite的细粒度数据完整性验证方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110309266.4A CN112966310B (zh) 2021-03-23 2021-03-23 基于SQLite的细粒度数据完整性验证方法及设备

Publications (2)

Publication Number Publication Date
CN112966310A CN112966310A (zh) 2021-06-15
CN112966310B true CN112966310B (zh) 2023-01-10

Family

ID=76278261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110309266.4A Active CN112966310B (zh) 2021-03-23 2021-03-23 基于SQLite的细粒度数据完整性验证方法及设备

Country Status (1)

Country Link
CN (1) CN112966310B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113919006A (zh) * 2021-10-22 2022-01-11 航天信息股份有限公司 一种保护数据完整性的方法、设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536984A (zh) * 2014-12-08 2015-04-22 北京邮电大学 一种外包数据库中的空间文本Top-k查询的验证方法及系统
CN108460293A (zh) * 2017-02-22 2018-08-28 北京大学 一种应用程序完整性多级检查机制
CN111159750A (zh) * 2020-04-07 2020-05-15 南京邮电大学 基于联盟链的汽车维修数据存储方法
CN111274247A (zh) * 2020-01-17 2020-06-12 西安电子科技大学 一种基于密文时空数据的可验证范围查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2548851B (en) * 2016-03-30 2018-07-25 The Ascent Group Ltd Validation of the integrity of data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536984A (zh) * 2014-12-08 2015-04-22 北京邮电大学 一种外包数据库中的空间文本Top-k查询的验证方法及系统
CN108460293A (zh) * 2017-02-22 2018-08-28 北京大学 一种应用程序完整性多级检查机制
CN111274247A (zh) * 2020-01-17 2020-06-12 西安电子科技大学 一种基于密文时空数据的可验证范围查询方法
CN111159750A (zh) * 2020-04-07 2020-05-15 南京邮电大学 基于联盟链的汽车维修数据存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BMPLS:Blockchain-Based Multi-level Privacy-Preserving Location Sharing Scheme for Telecare Medical;马建峰等;《Journal of medical systems》;20180831;全文 *
一种适于移动云计算部署的数据完整性验证方案:设计与原型实现;张秀隆;《硕士电子期刊》;20150315;全文 *

Also Published As

Publication number Publication date
CN112966310A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
US11841736B2 (en) Immutable logging of access requests to distributed file systems
US11461485B2 (en) Immutable bootloader and firmware validator
US11934550B2 (en) Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US10366247B2 (en) Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US11212107B2 (en) Decentralized database optimizations
US10042782B2 (en) Immutable datastore for low-latency reading and writing of large data sets
US10114970B2 (en) Immutable logging of access requests to distributed file systems
US10075298B2 (en) Generation of hash values within a blockchain
US10121019B2 (en) Storing differentials of files in a distributed blockchain
EP3485421B1 (en) Fragmenting data for the purposes of persistent storage across multiple immutable data structures
US10089489B2 (en) Transparent client application to arbitrate data storage between mutable and immutable data repositories
US9081978B1 (en) Storing tokenized information in untrusted environments
CA3072719C (en) Immutable datastore for low-latency reading and writing of large data sets
CN112966310B (zh) 基于SQLite的细粒度数据完整性验证方法及设备
CN112468494A (zh) 一种内外网互联网数据传输方法及装置
RU2774098C1 (ru) Способ защиты дескрипторов реляционной базы данных
US20240184908A1 (en) Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data

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
GR01 Patent grant
GR01 Patent grant