CN117859131A - 加密方法 - Google Patents
加密方法 Download PDFInfo
- Publication number
- CN117859131A CN117859131A CN202280053620.4A CN202280053620A CN117859131A CN 117859131 A CN117859131 A CN 117859131A CN 202280053620 A CN202280053620 A CN 202280053620A CN 117859131 A CN117859131 A CN 117859131A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- value
- processing devices
- fractal
- 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
- 238000000034 method Methods 0.000 title claims description 114
- 238000012545 processing Methods 0.000 claims abstract description 74
- 238000013519 translation Methods 0.000 claims description 60
- 239000012634 fragment Substances 0.000 claims description 9
- 230000014616 translation Effects 0.000 description 48
- 230000008569 process Effects 0.000 description 42
- 230000006870 function Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005336 cracking Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010899 nucleation Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012958 reprocessing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- 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/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/08—Computing arrangements based on specific mathematical models using chaos models or non-linear system models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0872—Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Nonlinear Science (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Polymers With Sulfur, Phosphorus Or Metals In The Main Chain (AREA)
Abstract
一种加密系统,该系统包括一个或多个处理设备,该处理设备被配置为加密与唯一标识符相关的数据:确定与所述数据相关的唯一标识符;使用所述唯一标识符来识别复数空间内的空间区域;在所述空间区域内确定至少一个密钥位置;使用定义的复数公式确定每个密钥位置的密钥值;使用每个密钥值对所述数据进行加密。
Description
优先权文件
本申请要求于2021年8月18日提交澳大利亚专利局、申请号为2021902586申请名称为“分形数据库加密”的专利申请的优先权,上述在先申请的内容通过引用结合在本申请中。
技术领域
本发明涉及一种加密系统和方法,具体地,涉及使用分形加密方案对数据库进行加密的系统和方法,以及解密被加密的数据库的系统和方法。
背景技术
本说明书中对任何先前出版物(或由其衍生的信息)或任何已知事项的提及,并不是也不应被视为承认或认可或以任何形式暗示先前出版物(或由其衍生的信息)或已知事项构成本说明书相关工作领域的常识的一部分。
数据库加密用于多种目的,包括维护数据库中包含的数据的安全性,以及提供不可变性以确保无法对数据库进行未经授权的更改。
近年来,区块链技术变得流行起来,广泛应用于各种应用中,包括数字货币(如比特币、以太坊等)。虽然这些数字货币没有实物资产作为支撑,但由于其点对点的实用性和需求,已经变得非常受欢迎。
区块链技术使用一种庞大的加密分类账,由成千上万台服务器维护,这些分类账包含了该数字货币的每一笔交易记录。这个分类账随后在成千上万台服务器上进行复制,并利用大量的计算能力和能源来维护。这旨在提供高度的安全性和冗余性,使得欺诈行为难以发生。例如,区块链技术已被利用来追踪对数据库所作的更改,从而减少未经授权的更改的机会。
然而,这些技术存在一些缺点。
其中一个缺点是,区块链,特别是加密货币,依赖一种称为挖矿的技术来生成加密数据块。这涉及进行复杂的计算以生成数据块,而这又需要高水平的计算能力和相应的能源。因此,比特币和其他所有加密货币最大的问题之一就是挖矿及其相关能源消耗。尽管银行可能在维护自己的账户和提供金融服务方面使用了更多的能源,但它们处理的货币金额要大得多。
无论如何,区块链技术依赖于分布式地存储在许多数据库中的分类账。这本身就使得使用该系统来追踪数据库中的更改变得困难。例如,这可能要求对数据库内容进行散列处理,然后将散列值存储在分类账中。在这种情况下,如果以后生成的新的散列值不同,这只能表明数据库已被更改,而不能显示所做的具体更改。为了提供追踪更改的更高的可信度,需要存储更多的信息,例如不同数据库的散列值,这在大规模应用时是不实际的。
无论如何,使用区块链也无法防止更改的发生,因此仍然需要对数据库进行加密。然而,传统的现有加密技术存在一些缺点。
特别是,为了让加密密钥足够安全,这些密钥需要足够大,以使其不能被轻易地重新计算。由于加密技术通常依赖于质数,因此在推导可以使用的加密密钥时需要进行大量计算,这导致了上述能源使用问题。此外,随着量子计算机的发展,从加密数据计算加密密钥的问题将变得非常容易,使这种加密方式实际上毫无用处。
此外,无论使用多么强大的加密技术,总体而言,只有在加密密钥被保持在秘密的情况下,加密过程才是有效的。特别是,一旦已知一个加密密钥,那么就可以将它与加密算法一起用于解密加密数据并揭示其内容。由于密钥的长度可以是数百位,因此记住这些密钥并不实际,而需要使用技术来存储加密密钥以允许访问加密数据。通常,通过使用密钥存储器来加密密钥来完成这个过程,又需要使用密钥来访问该密钥存储器的内容,而这个密钥往往是一个不那么复杂的密码。在用户名/密码访问控制的情况下,为了使其发挥作用,必须将这些值中的一个或两个作为加密块存储在数据库中。虽然可以通过不作为纯文本可见来使密码更安全,但这会产生两个重要的副作用,即无论是什么算法或密钥存储方法,系统都已知用于加密密码的密钥,以及密码实际上是以加密形式存储在系统中。
因此,如果密钥存储系统被发现,则存在非常高的泄露风险,整个加密内容都可能被解码,这说明加密密钥存储过程通常是任何加密方案中最薄弱的环节,需要改进该系统。
因此,需要改进的技术来加密数据库并提供相关的不可变性。
发明内容
从广义上讲,本发明的一个方面旨在提供一种加密系统,所述系统包括一个或多个处理设备,所述处理设备被配置为加密与唯一标识符相关的数据:确定与所述数据相关的唯一标识符;使用所述唯一标识符来识别复数空间内的空间区域;在所述空间区域内确定至少一个密钥位置;使用定义的复数公式确定每个密钥位置的密钥值;以及使用每个密钥值加密数据。
在一个实施例中,所述一个或多个处理设备被配置为:使用复数公式生成密钥位置的分形值;以及从所述分形值推导所述密钥值。
在一个实施例中,所述一个或多个处理设备被配置为:从所述分形值生成整数值;以及从所述整数值生成所述密钥值。
在一个实施例中,所述一个或多个处理设备被配置为:将所述数据分割成多个数据片段;为每个所述数据片段识别相应密钥位置;以及通过使用从所述相应密钥位置获取的密钥值对每个数据片段进行编码以加密所述数据。
在一个实施例中,所述一个或多个处理设备被配置为通过将所述数据片段添加到所述密钥值以将所述数据片段与所述密钥值相结合。
在一个实施例中,每个数据片段具有设定的位长度,并且所述一个或多个处理设备被配置为基于所述设定的位长度使用模加法将所述数据片段与所述密钥值相结合。
在一个实施例中,所述一个或多个处理设备被配置为在一个密钥位置处使用已定义的复数公式确定下一个密钥位置,从而确定所述空间区域内的多个密钥位置。
在一个实施例中,所述一个或多个处理设备被配置为使用从上一个密钥位置推导的值来计算到下一个密钥位置的平移来确定多个密钥位置。
在一个实施例中,所述一个或多个处理设备被配置为:使用所述复数公式为所述密钥位置生成分形值;从所述分形值生成两个平移值;以及使用这两个平移值生成平移来确定下一个密钥位置。
在一个实施例中,所述两个值包括:表示平移长度的第一值;以及表示平移角度的第二值。
在一个实施例中,所述一个或多个处理设备被配置为:使用所述标识符确定所述空间区域内的起始密钥位置;以及使用来自以下至少一个的平移来确定后续的密钥位置:从所述起始密钥位置开始的上一个密钥位置;以及所述起始密钥位置。
在一个实施例中,所述一个或多个处理设备被配置为:使用所述标识符的第一部分来识别所述复数空间内的空间区域;以及使用所述标识符的第二部分和第三部分来在所述空间区域内确定起始密钥位置。
在一个实施例中,所述一个或多个处理设备被配置为通过查找表来使用所述标识符的所述第一部分来识别所述空间区域。
在一个实施例中,所述一个或多个处理设备被配置为:使用所述第二部分和所述第三部分来生成两个平移值;以及使用所述两个平移值生成从空间区域起点到所述起始密钥位置的平移。
在一个实施例中,所述一个或多个处理设备被配置为:接收用户定义的密码;以及至少部分地使用所述用户定义的密码来识别至少一个密钥位置。
在一个实施例中,所述一个或多个处理设备被配置为执行至少以下之一:使用所述用户密码确定几何平移序列;以及使用所述用户定义的密码确定几何平移的起始位置。
在一个实施例中,所述系统用于加密数据库,所述数据是所述数据库中的行内容,所述标识符是与所述行内容相关的标识符。
在一个实施例中,所述数据是一串零值位,所述加密数据用作加密密钥。
在一个实施例中,所述数据是区块链哈希值。
在一个实施例中,所述系统用于保护区块链,所述数据包括区块链的端点。从广义上讲,本发明的一个方面旨在提供一种加密方法,所述方法在一个或多个处理设备中,通过以下步骤对与唯一标识符相关的数据进行加密:确定与所述数据相关的唯一标识符;使用所述唯一标识符来识别复数空间内的空间区域;在所述空间区域内确定至少一个密钥位置;使用定义的复数公式确定每个密钥位置的密钥值;以及使用每个密钥值加密数据。
从广义上讲,本发明的一个方面旨在提供一种解密系统,所述系统包括一个或多个处理设备,所述处理设备被配置为解密与唯一标识符相关的数据:确定与所述数据相关的唯一标识符;使用所述唯一标识符来识别复数空间内的空间区域;在所述空间区域内确定至少一个密钥位置;使用定义的复数公式确定每个密钥位置的密钥值;使用每个密钥值对所述数据进行解密。
从广义上讲,本发明的一个方面旨在提供一种解密方法,所述方法包括,一个或多个处理设备中,通过以下步骤对与唯一标识符相关的数据进行解密:确定与所述数据相关的唯一标识符;使用所述唯一标识符来识别复数空间内的空间区域;在所述空间区域内确定至少一个密钥位置;使用定义的复数公式确定每个密钥位置的密钥值;使用每个密钥值对所述数据进行解密。
可以理解的是,本发明的广义形式及其各自的特征可以结合和/或独立使用,提及单独的广义形式并不意味着限制。此外,可以理解的是,方法的特征可以使用系统或装置来执行,系统或装置的特征可以使用方法来实现。
附图说明
将结合附图进行描述本发明的各种示例和实施方式,附图如下所示:
图1A是加密过程示例的流程图;
图1B是解密过程示例的流程图;
图2是分布式计算架构示例的示意图;
图3是处理系统示例的示意图;
图4是客户端设备示例的示意图;
图5A和5B是用于加密数据库的具体过程示例的流程图;以及,
图7是Mandelbrot集合示例的示意图。
具体实施方式
下面将参考图1A描述执行加密的过程示例。
为了说明,假设此过程至少部分使用一个或多个电子处理设备进行,该设备是计算机系统、服务器或类似设备的一部分,可以选择将其通过网络架构连接到一个或多个客户端设备,如手机、便携式电脑、平板电脑或类似设备,如下所述。为方便说明,剩余的描述将提到一个处理设备,但应注意可使用多个处理设备,并根据需要在设备之间分配处理,而对单数的参考也包括复数安排,反之亦然。
加密过程可用于加密与唯一标识符相关的数据。此类数据的例子有很多,其中一个特别的例子就是数据库中的行。具体来说,在大多数关系数据库中,数据都存储在行中,数据库中的每一行都有一个唯一标识符。因此,本发明描述的加密过程可以有效地应用于使用行标识符对数据库中的行内容进行加密,从而对每一行进行不同的加密。不过,可以理解的是,这种方法可以更广泛地应用于加密与标识符相关的任何数据。为了便于说明,下面的描述将侧重于加密数据库的示例,但可以理解的是,这并不意味着限制。
如上所述,在数据库中,数据库的每一行都是单独加密的,加密是根据与该行相关的唯一标识符(ID)进行的。唯一标识符在数据系统中被普遍使用,以促进不同数据表和数据库之间的关系。在一个示例中,唯一标识符是全球唯一标识符(GUID),它是由32个十六进制字符表示的512位数字,使用成熟的GUID生成算法创建。不过,这并不是必须的,还可以使用其他唯一标识符。
因此,在本示例中,在步骤100,处理设备确定与待加密数据相关的标识符。在数据库示例中,这涉及到确定与行内容相关的行标识符,这通常是通过使用数据库查询访问和检索来实现的。
在步骤110中,使用标识符确定复数空间中的空间区域。复数空间可以是任何适当的形式,但通常会填充利用复数公式推导出的数值,在一个特定的示例中是混沌复数公式,例如用于生成分形集(包括Julia集或Mandelbrot集)的公式。这样,复数空间中就有了数值,数值是根据公式迭代得出的。这种复数分形集在本领域是众所周知的,因此不再详细介绍。需要注意的是,为了使这些方法能够实现,实际上并不需要填充复数空间,可以按需计算数值,这一点将在下文中详细介绍。
空间区域可以是任何适当的形式,可以包括复数空间内的一个区域。在这方面,复数空间通常包括以轴为形式的两个维度,分别对应复数的实部和虚部。不过,也可以理解的是,可以提供深度形式的第三维度,与复数公式的迭代深度相对应,这将产生更多的数值。因此,空间区域可以是一个面积,也可以是一个包括面积和深度的体积。
可以任何适当的方式识别空间区域。例如,空间区域可以是先前定义的,在这种情况下,标识符可用于访问查找表,以确定空间区域的位置。在这种情况下,可以使用部分或全部标识符来检索空间区域,这可能涉及多对一映射,即多个标识符都指向同一个区域,也可能涉及一对一映射,即每个标识符都指向一个唯一的空间区域。可选地,如果空间区域以前未被描述过,则可以通过发现过程来确定复数空间中目前未被利用且具有足够复杂性的区域。作为另一种选择,标识符可用于推导出用于定位空间区域的矢量值。
在步骤120,在空间区域中确定至少一个,通常是多个密钥位置。术语“密钥位置”指的是用于生成“密钥值”的位置,该位置是位于空间区域内的或是被映射到空间区域的,该密钥值是用于编码数据库内容的数值。可以以任何适当的方式确定密钥位置,但通常至少部分利用标识符,并可选择使用用户定义的密码来执行此操作。在一个特定的例子中,这是通过在空间区域内或映射到空间区域内进行一系列的平移来实现的,这些平移是根据标识符推导出来的,并且可以选择考虑用户定义的密码。
例如,标识符可以用于确定空间区域内的初始起始密钥位置,并用此来导出第一个密钥值。然后可以使用第一个密钥值计算到下一个密钥位置的平移量,再利用这个新位置生成更多的密钥值,并根据需要重复这个过程。可以考虑密码来识别起始密钥位置和/或平移量,以使起始位置和/或平移序列因使用的密码而有所不同。因此,该过程会产生不同的密钥值,这些值对于任何给定的标识符和任何可选密码都是唯一的。
在步骤130,使用复数公式计算每个密钥位置的密钥值。因此,执行复数公式,以便在步骤120中确定的每个密钥位置上导出一个数值。在这方面,值得注意的是,可以在确定密钥位置后执行公式,这意味着不需要预先计算复数空间的数值。然而,这并非必需,作为替代,可以根据需要简单地检索预先计算的数值。
在步骤140中,使用密钥值作为加密密钥来加密数据,例如在各自行中的数据库内容。可以以任何方式实现这一点,但通常涉及将密钥值添加到数据中,使得数据和密钥值相结合生成一个新值,只有在已知密钥值的情况下才能用其恢复原始数据。
因此,如上所述的过程允许使用与数据(例如,数据库中的行内容)相关的唯一标识符对数据进行加密,并可选择考虑用户生成的密码,将在下面更详细地描述。在数据库加密的情况下,由于作为加密密钥的加密值对于每个标识符都是唯一的,这意味着数据库中的每一行实际上都使用不同且唯一的密钥进行了加密,这反过来使得第三方难以绕过加密。例如,它防止第三方使用暴力破解或其他类似方法来推导用于解密整个数据库的单个密钥。
通过使用唯一标识符和空间区域之间的关系来推导加密密钥,而这种关系可以是任意的,从而可以轻松地混淆。例如,这种关系可以存储在查找表中,因此如果没有访问查找表的权限,就无法从标识符中确定空间区域,这使得第三方难以从标识符或加密数据中导出这些信息。此过程还可以通过允许使用标识符的不同部分来定位区域内的起始位置,并将其用于计算密钥来实现进一步混淆。因此,第三方需要理解标识符的划分方式,并且能够访问查找表,才能重新创建密钥。
此外,使用用户定义的密码可以提供额外的复杂性,使绕过加密过程变得极其困难。
尽管如此,解密可以采用与图1B所示的基本相同的方式进行。在这种情况下,步骤150到180与上述步骤100到130完全相同,由此产生的一个或多个密钥值推导出的加密密钥被用于在步骤190中解密加密数据,例如通过从加密数据中减去密钥值来实现解密。
因此,可理解的是上述方法利用复数空间的复杂性,允许基于唯一标识符对像数据库行这样的数据(例如与数据库行相关联的行标识符)进行加密。这反过来使得通过暴力破解等方法破解加密过程变得几乎不可能,因为需要为每个数据库行计算一个唯一的密钥。尽管如此,该过程允许能够访问行标识符和复数空间之间关系的人可以轻松解密数据,从而实现安全性和易用性之间的平衡。
此外,也可以从唯一的用户定义密码中推导出密钥位置,这意味着只要密码保密,第三方就无法推导出这些数字值并重建解密加密数据所需的密钥值。
尽管如此,由于可以基于唯一的空间区域生成密钥值,这实际上排除了加密密钥的复制,依靠用户定义的密码和唯一标识符之间的差异来生成唯一的密钥值序列,如果使用GUID,则进一步增强了该方法。
尽管如此,在某种意义上加密密钥是具有确定性的,因为可以基于对标识符(以及复数空间中的空间区域位置,可选地包括用户定义的密码)的了解来计算密钥值。因此,只要知道唯一标识符和可选的用户定义的密码,就可以计算出密钥值,同时只要密码和/或将标识符映射到空间区域的方式保密,就可以维持密钥的安全性。由于可以从唯一标识符轻松推导出空间区域位置,例如基于三维坐标向量定义,这提供了一种机制,允许从易于记忆的信息轻松计算出密钥值,同时使加密密钥几乎不可能被逆向工程或以其他方式推导出来。
因此,这消除了传统加密密钥所带来的问题,即生成唯一密钥的计算昂贵过程以及安全存储密钥的困难。特别是,使用易于记忆的信息重新生成密钥绝对避免了对加密密钥进行任何存储的需求,从而在很大程度上减轻了与密钥存储相关的问题。
因此,可以体会到利用这种方法进行的加密过程可以实现远优于现有加密过程的加密,避免密钥存储问题,这是现有加密过程中最薄弱的环节,并且减少了与加密密钥推导和存储相关的技术问题。
如前所述,尽管上述示例集中于对数据库进行加密,但可以理解该方法可用于加密与唯一标识符相关的任何数据,并且尽管已经说明该方法特别适用于数据库的原因,但对数据库加密的提及并不具限制性。
现在将描述此方法的一些进一步的特征。
可以以任何适当的方式计算在密钥位置上的密钥值。在一个示例中,可以通过使用复数公式的迭代计算分形值,然后从分形值推导出密钥值来实现。例如,这可能涉及从分形值生成一个整数值,将其截断或缩短到所需的长度以生成密钥值,长度基于所需的密钥值大小。在一个特定的示例中,为每个位置计算了8位的密钥值,这是通过使用复数公式的迭代计算30位的分形数,然后截断分形数的整数部分以得到一个8位的数值。使用的迭代次数可以是设置值,可以根据所使用的空间区域定义,可以根据唯一标识符定义,或者类似的方式进行定义,只要在加密和解密过程中能够使用这些计算即可。
一旦计算出来,就可以使用密钥值对数据进行加密。在一个示例中,可以通过将数据分割成多个数据片段,为每个数据片段识别相应的密钥位置,然后通过使用从相应的密钥位置获得的密钥值对数据进行编码来实现。因此,在一个示例中,每个数据片段通常具有固定的位长度,例如n位,并且密钥值被计算为相同的大小,以使得计算出的n位密钥值的数量等于组成数据的n位数据片段的数量。
然后可以通过将数据添加到相应的密钥值来轻松进行编码,通常使用基于设置的位长度的模加法来执行,以使得在上述示例中,结果值具有n位长度。使用模加法可以防止超过n位字符串的最大值,确保加密数据具有相同的n位大小。然而,可以理解的是,还可以使用其他适当的方法对数据片段进行编码。
在一个示例中,处理设备通过在一个密钥位置使用定义的复数公式来确定空间区域内的多个密钥位置,并确定下一个密钥位置。在一个特定的示例中,这涉及通过使用上一个密钥位置的密钥值来计算到达下一个密钥位置的平移,例如方向和距离,从而确定密钥位置的序列。因此,在一个位置计算得到的密钥值不仅用于确定到下一个位置的平移,还用于对行内容进行编码。这种方法特别有优势,因为只需要在复数空间中有一个单独的初始起始位置,就可以从复数空间中的不同位置推导出多个密钥值。
平移的确定方式将根据优选实现方式而异,但在一个示例中,这涉及使用复数公式为密钥位置生成分形值,从分形值生成两个平移值,然后使用这两个平移值来确定下一个密钥位置。平移值可以仅仅是分形数的各个部分,但在另一个示例中,分形值可以与其他数字结合,例如乘以一个或多个质数,以生成平移值。另一种选择是直接从密钥值中确定平移值,例如使用密钥值来生成平移值。
平移的实现可以是任何适当的形式,但在一个示例中,它包括从定义的轴向方向(例如x轴(实数)或y轴(虚数))测量的角度和从起点(例如从唯一标识符推导出的位置)测量的距离。例如,这两个值可以包括表示平移长度的第一个值和表示平移角度的第二个值,或者可以沿正交轴进行平移。
也可以通过使用任意可选密码来生成和/或修改平移。尽管可以以任何适当的方式实现这一点,但在一个示例中,当使用密码时,可以使用密码中字母数字字符的ASCII值来创建值,然后使用这些值来计算平移。例如,密码可以被分成两部分,每一部分都用于计算一个值,然后将这些值与从分形或密钥值计算得到的平移值相加,从而计算出平移。
通常基于原始密钥位置计算平移,可以使用任何适当的技术从唯一标识符推导出原始密钥位置。例如,可以使用标识符的第一部分来确定复数空间内的空间区域,并使用标识符的第二部分和第三部分来确定空间区域内的起始密钥位置。因此,使用查找表或其他映射将标识符的一部分与复数空间的特定区域相关联,这个映射通常在处理过程中预先确定的。然后,使用标识符的第二部分和第三部分来在复数空间的空间区域内定位起始密钥位置。因此,即使将多个标识符映射到同一个空间区域,该方法将每个唯一标识符映射到复数空间内的不同密钥位置,从而确保为每个唯一标识符生成唯一的密钥值。
还可以使用密码计算起始位置。例如,可以使用密码从使用唯一标识符确定的位置推导平移量,以使起始密钥位置偏离仅通过唯一标识符确定的位置。这将导致计算出不同的密钥位置和不同的密钥值,这意味着可以将标识符与用户定义的密码结合使用,以实现对行内容的不同加密。
一旦使用标识符和可选密码确定了空间区域内起始位置,就可以执行平移以识别更多的密钥位置。可以使用从起始密钥位置开始的平移确定后续的密钥位置,使得每个平移都是从起始位置开始的;或者可以使用从上一个密钥位置开始的平移,使得平移序列沿着从起始位置开始逐步延伸的路径进行,具体取决于所选方法。
然而,密钥位置和密钥值是确定的,可以理解的是上述过程是不可逆的,因此是单向的,这意味着如果使用密码,则无法从加密密钥中推导出密码。这进一步有助于确保系统的安全性,这意味着即使第三方能够截获与资产相关联的加密密钥,他们也无法恢复密码,因此无法解锁资产和/或任何其他资产。尽管如此,由于密钥位置和密钥值是从标识符和可选密码确定的,因此假设已知标识符和可选密码,就可以恢复密钥值,进而以类似的方式解密数据库。
因此,可以理解的是,数据(例如,行内容)解密过程为:通过确定与数据相关联的标识符,使用标识符来识别复数空间内的空间区域,在空间区域内确定多个密钥位置,使用定义的复数公式为每个密钥位置确定密钥值,并使用密钥值对数据进行解密。
在一个示例中,数据包括一串零值位,加密数据被用作加密密钥。在这方面,所得到的加密密钥被称为隐形密钥,因为它不需要存储在系统中,可以根据一串零字节生成,并根据标识符(例如密码或其他类似的标识符)在需要时重新创建。
在另一个示例中,数据是一个区块链哈希值。在一个具体的示例中,可以使用这种方法来保护区块链,通过使用该方法加密区块链端点。例如,可以使用隐形密钥加密区块链起始处的区块链哈希,同时每次扩展区块链时都可以加密区块链的终点。后面重新加密的区块链终点可以用于确定区块链是否发生变化,从而提供了确保不可变性的机制,避免分布区块链分类账。
如上所述,在一个示例中,该过程由一个或多个处理系统和客户端设备执行,作为分布式架构的一部分运行,下面将参考图2对一个示例进行描述。
在这个示例中,多个处理系统210通过通信网络240(如互联网和/或一个或多个局域网(LAN))连接到多个客户端设备230。值得注意的是,网络240的配置仅为示例目的,在实际中,处理系统210和客户端设备230可以通过任何适当的机制进行通信,如有线或无线连接(包括但不限于移动网络、私人网络(如802.11网络)、互联网、局域网、广域网等),以及直接或点对点连接(如蓝牙等)。
在一个示例中,每个处理系统210能够对复数空间进行搜索,识别空间区域,计算密钥位置和值,并使用这些来加密数据库中的数据。客户端设备230能够与处理系统210交互,允许用户与数据进行交互等。虽然处理系统210被显示为单个,但在实践中,处理系统210可以分布在多个地理分离的位置上,例如通过使用作为云环境一部分提供的处理系统210和/或数据库。然而,上述描述的安排并非必需,也可以使用其他合适的配置。
图3显示了一个合适的处理系统210的示例。
在这个示例中,处理系统210包括至少一个微处理器300、内存301、可选的输入/输出设备302(如键盘和/或显示器)和外部接口303,通过总线304互连。在这个示例中,外部接口303用于将处理系统210与外围设备连接,例如通信网络240、数据库、其他存储设备等。虽然只显示了一个外部接口303,但这只是为了举例说明,在实际应用中可以提供使用各种方式(例如以太网、串行、USB、无线等)的多个接口。
在使用中,微处理器300通过执行存储在内存301中的应用软件形式的指令,以执行所需的处理过程。应用软件可以包括一个或多个软件模块,并且可以在适当的执行环境中执行,例如操作系统环境等。
因此,可以理解的是处理系统210可以由任何适用的处理系统组成,例如,适合编程的客户端设备、个人电脑(PC)、Web服务器、网络服务器等。在一个特定的示例中,处理系统210是标准的处理系统,例如,基于Intel架构的处理系统,它可以执行存储在非易失性存储(例如硬盘)上的软件应用,尽管这并非必须。然而,也应理解的是处理系统可以是任何电子处理设备,例如,微处理器、微芯片处理器、逻辑门配置、与实现逻辑(例如FPGA)相关联的固件,或任何其他电子设备、系统或装置。
图4显示了一个合适的客户端设备230的示例
在一个示例中,客户端设备230包括至少一个微处理器400、内存401、输入/输出设备402,例如,键盘和/或显示器,以及外部接口403,通过如图所示的总线404互连。在这个示例中,外部接口403用于将客户端设备230与外围设备连接,例如,通信网络240、数据库、其他存储设备等。虽然只显示了一个外部接口403,但这只是为了举例说明,在实际应用中可以提供使用各种方式(例如以太网、串行、USB、无线等)的多个接口。
在使用中,微处理器400执行存储在内存401中的应用软件的指令,以允许与处理系统210进行通信,例如,允许接收资产数据。
因此,可以理解的是,客户端设备230可以由任何适用的处理系统组成,例如,合适编程的个人电脑(PC)、互联网终端、笔记本电脑或手持式PC,在一个优选的示例中,客户端设备230可以是平板电脑、智能手机或类似设备。因此,在一个示例中,客户端设备230是标准的处理系统,例如,基于Intel架构的处理系统,它执行存储在非易失性存储(例如硬盘)上的软件应用,尽管这并非必须。然而,也应理解的是客户端设备230可以是任何电子处理设备,例如,微处理器、微芯片处理器、逻辑门配置、与实现逻辑(例如可编程门阵列FPGA)相关联的固件,或任何其他电子设备、系统或装置。
现在将详细描述在数据库中加密数据的过程的示例。在这些示例中,假设一个或多个处理系统210根据通过客户端设备230提供的用户输入与数据库进行交互。在一个示例中,为了以与平台无关的方式实现该功能,允许使用具有不同操作系统和不同处理能力的客户端设备230访问,通过网页接收来自客户端设备230的输入数据和命令,并通过浏览器应用程序或客户端设备230执行的其他类似应用程序在本地以可视化方式呈现结果。因此,处理系统210通常是一台服务器(以下简称为服务器),通过通信网络240或类似的网络基础设施与客户端设备230进行通信。
为了实现这一目标,服务器210通常执行用于托管网页的应用软件,以及执行存储、搜索和处理数据等其他所需任务。由处理器300根据存储在内存301中的应用软件指令和/或通过I/O设备302从用户接收的输入命令或来自客户端设备230的命令来执行处理系统210的操作。同时假定用户通过在客户端设备230上显示的GUI(图形用户界面)或类似界面与服务器210进行交互,一个特定的示例是通过显示由服务器210托管的网页的浏览器应用程序,或者显示由服务器210提供的数据的应用程序。由处理器400根据存储在内存401中的应用软件指令和/或通过I/O设备402从用户接收的输入命令执行客户端设备230的操作。
然而,应当注意到,上述描述的配置仅为以下示例目的而假设的,并非必须的,可以使用许多其他配置。还应当注意,在客户端设备230和服务器210之间的功能划分可能会有所不同,这取决于具体的实现。因此,尽管将下面的过程描述为在服务器210和客户端设备230之间进行分布式执行,但应当理解这可以仅在客户端设备230上或仅在服务器210上执行。
现在,将参考图5A和5B描述一种用于对数据库中的数据进行加密以实现数据库加密的过程的示例。
在这个示例中,在步骤500,服务器210可以确定一个密码,通常由用户通过客户端设备230提供该密码。
在步骤505,服务器210选择数据库中的下一行,并在步骤510确定与该行关联的行标识符。可以理解的是,可通过合适的方式查询数据库来检索此信息。
在步骤515,服务器210将唯一标识符分割成三个部分。所采用的具体分割方式将取决于标识符的性质和优选实现方式,例如,使用GUID时,可以将GUID分割为16位的第一部分,以及各56位的第二部分和第三部分。
在步骤520,第一区域用于在复数空间中查找空间区域。在此方面,通常在发现过程中将空间区域映射到不同的第一部分值,通过发现过程分析复数空间以识别之前未分配给其他标识符部分的空间区域。通常,此过程还将检查已识别的空间区域的复杂性,并验证这些区域是否足够复杂,以便创建唯一标识符和加密密钥,并确保这些区域不包含无穷值。由于复数空间的大小基本上是无限的,因此可以创建满足这些条件的大量不同空间区域。
随后,在步骤525,服务器210计算一个起始位置。在一个示例中,这仅基于标识符进行,使用标识符的第二和第三部分计算第一个和第二个平移值,并使用它们来定义从复数区域中的一个定义的起始位置(可能对应于区域的中心或角等)开始的平移长度和角度。可选地,此步骤还可以涉及使用用户定义的密码,以便使用密码修改平移值,例如使用密码中字符的ASCII值计算修改后的第一个和第二个平移值。无论哪种情况,在步骤525,服务器210使用平移值确定空间区域内的起始密钥位置。
在步骤530,服务器210将行内容分成具有定义的位长度的片段,例如,将行内容分成多个8位片段,允许对每个片段单独进行编码。
在步骤535,服务器210选择下一个片段,然后在当前密钥位置(第一个片段的密钥起始位置)计算一个密钥值。在步骤540,通过将定义复数空间的复数公式的一组迭代执行到一定深度以生成具有定义位数的分形数来计算密钥值。然后在步骤545,从分形数中确定用作密钥值的一个8位整数值,例如,通过截断分形数来确定。在步骤550,这使得可以使用模256加法将密钥值与行片段结合,从而形成8位值,该8位值形成被编码的行片段。
在步骤555,确定行片段是否完成,如果没有,则在步骤560,服务器210从在步骤540中计算的分形值计算出两个平移值。平移值通常是通过与定义的质数执行模加法生成的,尽管这并非必要,也可以使用其他方法。在步骤565中,将平移值用作角度和距离来计算下一个密钥位置。
然后重复执行步骤535到555,对于每个行片段执行这些步骤,直到每个行片段都被编码。
一旦完成,在步骤570,服务器210确定是否已完成行编码,如果没有,则返回步骤505,以允许编码下一行。在步骤575,存储加密数据,例如,在所有行都被编码后。在这种情况下,加密数据将包括与被编码的行内容相关联的未加密行标识符。
可以理解,这提供了一种基于行标识符和可选密码加密行内容的机制。如果需要进行解密,则重复相同的过程,使用被编码的行内容的片段形成行片段,并在步骤550中执行模减法而不是加法,从而恢复原始的行片段值。
因此,上述描述的方法涵盖了使用分形域加密和保护与标识符相关联的数据的方法,例如,存储在数据库中的数据。在一个示例中,数据库为每个表行实现了一个唯一的ID,例如GUID,而分形是Mandelbrot集。
该方法提供了一种用于加密数据库表中的数据的系统,并可实施以保护特定列数据和/或作为整个表内容的区块链验证的一部分。
在这方面,希望对数据库进行加密,以便可以以加密方式存储关键安全数据。使用传统的加密时存在一个重大挑战,即加密算法函数将密钥和有效负载作为输入并输出一个加密块,而密钥管理是一个重要问题。在量子计算时代,还面临着防范量子解密的额外挑战,因为量子解密可以破坏加密解密的非对称性。
以前从未考虑到数据库记录通常具有ID会产生行和区块链加密或密钥管理的安全益处,因为常规的哈希或派生函数很容易被复制,当然不适合作为密钥。上述方法引入了一个新的分形空间,将每个可能的ID映射到分形空间中的唯一位置,这为分形加密和密钥管理开辟了广阔的潜力和可能性。
该方法提供了一种将ID映射到分形以及分形加密/解密过程的方法,可以使用唯一的分形x、y起始点来执行。这使得可以使用Mandelbrot集和GUID实现具有密钥和多次加密的完全功能的分形安全服务。所得到的服务已经成功地通过了数万亿个GUID、密钥、加密次数和有效负载组合的测试。
实施该方法的步骤包括:
1)配置不包含无穷大的分形区域x1、y1、-x2、y2。
2)创建一个数值映射表,将步骤[1]中的分形区域映射到其中。
3)将表行ID分成3个部分:
a)分形区域指针
b)X坐标
c)Y坐标
4)对于步骤[3]中给定的ID,通过将X坐标[b]加到步骤[1]的相应x1区域,并将Y坐标[c]加到步骤[1]的相应y1区域,计算其唯一密钥位置x、y。
5)在步骤[4]的密钥位置x、y处获取一个分形密钥值。
6)按n位片段遍历有效负载数据。
7)对于步骤[6]的每个片段,使用前一个步骤[5]的x、y分形密钥值作为种子执行平面几何函数,以获取新的x、y位置。
8)每一个步骤[7],在新的x、y位置获取一个分形值。
9)将步骤[8]中获取的分形值转换为与步骤[6]中获取的n位片段匹配的二进制n位值范围。
10)将步骤[9]中获取的转换值与步骤[6]中获取的有效负载n位片段相加。
11)如果步骤[9]中得到的和大于2n的位片段的最大二进制值,则从和中减去2n的位片段的最大值。
12)将步骤[11]的转换值存储在与当前步骤[6]相同位置、具有与有效负载相等的二进制长度的缓冲区中。
13)现在,缓冲区中包含了加密数据。
优选的ID是GUID,它是一个128位的二进制数。在一个示例中,以下方法被用于将GUID分成3个部分:
1)0到15位(16位)映射到65,536个勘测分形区域之一。
2)16到71位(56位)映射到X坐标。
3)72到127位(56位)映射到Y坐标。
要解密数据,使用缓冲区内容作为有效负载,并在步骤[10]进行减法操作,在步骤[11]如果值低于零(0),则加上2n的位片段[6]的最大二进制值。
要配置不包含无穷大的区域,可以使用复杂性测试算法来勘测分形区域,以确定不返回分形迭代公式的x、y位置。
平面几何函数可以是x、y的加法、减法、乘法、除法、旋转等操作。
在每个唯一的x、y位置提取的分形值是具有非常高精度的大数,可以选择各种方法来获得2n位的范围内的值,该值用于下一个几何函数计算下一个x、y位置,如果有多个几何函数,该值还用于确定不同几何函数的值。
现在将介绍一个具体的分形映射示例。
图6所示为Mandlebrot复杂度扫描的分形示例。在这个示例中,黑色的中央区域被排除在外,因为它延伸到无穷大,而周围的白色区域也被排除在外,因为其中一些也包含无穷大。
有65536(216)个没有无穷大的彩色分形区域,每个区域为0.01x0.01平方。这些区域将用于下面的例子中。
将每个0.01x 0.01分形区域缩放到72057594037927900x72057594037927900(256x256)。16+56+56=128(GUID的大小,以位为单位)。
一个分形区域单位的大小=0.0000000000000000001387778781(0.01/256)。
GUID是十六进制值,具有2128个二进制数字空间。
对于一个GUID示例:96FD114B-FC16-4586-9851-AEF9BlFC7E75,可以将其分成如表1所示的三个区域。
表1
分形区域57193的左上角是x,y:0.505,-0.565。将区域X和区域Y的十进制值乘以分形区域单位0.0000000000000000001387778781,得到它们在分形区域内的位置。将区域X和区域Y加到分形区域左上角的x,y坐标,即可得到样本GUID在分形位置x,y的位置:
0.5103674819371066892174606413,-0.5615661912507914772099774619。
下面描述一个加密过程的示例。在这个示例中,使用上述示例GUID加密样本文本“这是需要加密的”
初始化:
1)计算GUID x,y分形位置(上文)处的分形值=535174.066493319
2)去掉小数点=535174066493319
3)获取角度(0)535174066493319 mod 347=152
4)获取斜边(O)535174066493319 mod 7919=5338
构建分形值数组(显示了一些处理值,但它们只是一个子集,并不构成限制):
循环(n)以下内容,直到文本(或文件)的字节长度为止。
1)使用勾股定理从GUID分形位置的角度(n)和斜边(n)计算新的x,y(n)位置。
2)(n=l:0.5103674819370984295341462991,-0.5615661912507870854584566892)
3)计算x,y(n)位置处的分形值(n=l:535174.066492741)
4)去掉小数点(n=l:535174066492741)
5)将分形值mod 256存储在数组(n)中
6)获取新的角度(n)535174066492741mod 347
7)获取新的斜边(n)535174066492741mod 7919
8)从1开始重复,直到负载字节的长度为止。
将分形值应用到负载:
循环遍历数组,并将其值加到负载对应字节的值上。如果值大于256,则减去256。
得到的加密字符串为(由于一些值不容易呈现,所以只是近似值):
解密过程则从加密字符串中减去数组的值,如果结果小于零则加上256。
扩展
现在将描述一些其他的变形和扩展。
在使用中加密方法有许多可能的扩展,并可以应用于各种情况。例如,该方法可以扩展到与唯一标识符相关联的任何数据,不限于与数据库相关的应用程序。
加密方法不需要密钥,基于唯一ID提供了独特的加密。虽然可以将ID用作密钥,但它并非旨在如此。相反,ID选择一个唯一的分形区域来进行分形加密。然而,可以通过使用密钥作为负载(而不加载缓冲区)预先运行上述过程,以获得一个新的不可预测的x,y位置,并将其作为加密的起点引入独立密钥。
通过根据上述过程中获得的分形值重新排序二进制数据,可以进行多次遍历。
在每次遍历的末尾将缓冲区转移到负载上,并保持最后一个x,y密钥位置,可以重复n次加密过程。
上述过程可以以零位种子运行,以获得唯一不可预测的密钥,否则在系统中不可见(通常称为不可见密钥)。例如,在本示例中,对包括多个零位的数据字符串进行加密,基于标识符和/或密码,得到的加密数据作为下游加密的加密密钥。在这种情况下,密钥本身无需存储,而是存储用于生成密钥的标识符或密码。
对于每个步骤[6],根据获得的分形值,可以选择进行矢量变换和平面几何函数。
该加密方法适用于广泛的安全应用程序,主要应用包括但不限于数据库加密和区块链安全。
数据库加密
数据库加密方法利用ID映射到唯一的分形位置。在这方面,通常的做法是为每个数据库表和/或对象定义一个唯一的ID列,并且其可以用来加密数据库中的每一行。
在优选实施例中,ID是GUID,即128位二进制数,分为3部分:
1)位0到15(16位)映射到65536个勘测分形区域之一
2)位16到71(56位)映射到X坐标
13)位72到127(56位)映射到Y坐标。
复杂性测试勘测和映射了65,536个没有无穷大的分形区域。缩放分形的x和y坐标以适应每个勘测分形区域的72057594037927900x72057594037927900(256)个位置。所有勘测分形区域的组合缩放位置=2128,因此为所有可能的GUID提供了唯一的分形位置。
区块链安全
区块链技术以向数据库表、特定表列和记录提供可验证的数据不可变完整性而闻名。
区块链将表列数据与前一条(有序的)记录的哈希值连接起来,将结果哈希写入当前记录,创建一个单向序列加密记录链。
可以通过对给定记录重复上述过程并将现有的哈希与计算得到的哈希进行比较来进行快速验证。可以通过对表中所有记录重复上述验证来验证完整性。
如果验证失败,则表示检测到数据被损坏或数据和/或哈希被未经授权的篡改。区块链本质上非常简单,但存在重新处理的漏洞,攻击者可以更改一个区块或记录,并从那里重新处理链。有两种方法用于克服这种漏洞:
1)去中心化-使用加密货币奖励外部和分散的矿工,在添加区块链项目时对区块链状态进行多数投票以验证其未被更改。
2)区块链端点安全-一种存储上一个区块链哈希的加密副本的方法,加密副本用于验证区块链,在添加新记录时进行更新。
选项1还具有使用51%的投票进行验证的额外漏洞。它还需要运营和评估加密货币及相应的挖矿软件。它具有将信任分散的优势。
选项2还存在加密密钥管理的漏洞。它具有独立的区块链安全优势,但缺点是没有将信任分散。
区块链实施的目的是保证所保护的数据未被删除、编辑或插入,这种保证依赖于需要证明验证和验证系统不能被攻击或黑客攻击。区块链本身不符合这一标准,因为它有一个众所周知的再处理漏洞。区块链必须实施一种解决方案来解决此漏洞。
然而,去中心化方法非常复杂和繁琐,端点加密方法存在明显的密钥管理漏洞,即操作解决方案必须知道的密钥是弱点。
然而,与此相反,以上加密过程可以用于保护区块链,甚至可能达到其不可变性的程度,以至于不再需要第三方验证。
由于密钥管理问题,通常不考虑对区块链进行加密(除了哈希)。然而,分形密钥可以提供解决该问题的方法,因此加密也是区块链端点和链节点的可行安全选项。
可以通过从用于第一个哈希值的区块链父对象获取一个不可见密钥来保护区块链端点,然后在每次扩展链时分形加密最后一个链哈希。
可以通过使用节点ID加密预哈希数据,存储加密块以进行验证和恢复,并将加密块包含在哈希生成中来保护区块链节点或链接。
在所有这些区块链安全方法中,重要的是要注意,源自不可见分形密钥的主密钥可以通过区块链层次结构传播,并依次通过区块链本身,在每个步骤中使用本发明给出的分形变形,作为密钥。
尽管这些方法确实提高了安全性和不可变性,但分形加密过程有潜力为独立数据库提供完全的数据不可变性。
上述加密方法可以用单个分形资产实例保护区块链的起点和终点。这形成了一个以分形资产为起点和终点的区块链循环。区块链起始记录通常只使用第一条记录数据生成第一个哈希,这是可以的,因为最后一条记录的哈希保证了所有先前记录的安全。
这种方法可以提供将数据附加到多个分形资产的本地化区块链循环,并且其提供由分形资产生成的哈希种子的能力非常理想,因为它保证了区块链循环属于该分形资产。通过使用由分形资产和/或分形资产层次结构生成的分形密钥进行加密来保护区块链的末尾哈希。
通过如下步骤实施此过程:
1)根据PCT/AU2019/050928的教导配置分形资产,其内容通过交叉引用在此引入
2)配置一个区块链
3)从[1]的分形资产获取唯一的分形密钥
4)向[2]的区块链添加数据
5)将数据和[3]的唯一的分形密钥(第一条记录)或前一条记录的哈希值(后续记录)连接起来,并使用哈希函数从连接的数据中生成并存储当前记录的哈希值
6)从[1]的分形资产获取第二个唯一密钥
7)加密有效载荷,其包括[5]的当前(最近的)记录哈希值
8)将产生的加密块作为[1]的分形资产的一部分进行存储
9)从上述步骤[4]开始重复以添加更多数据
要验证区块链,需要重新处理[5]以比较生成的哈希值与区块链中的哈希值。当到达最后一条记录时,获取[6]的第二个唯一密钥以解密加密块,并将最后一个哈希值与加密的有效载荷进行比较。如果它们匹配,则区块链有效,否则区块链无效。必须从已知的有效备份中恢复无效的区块链。
有几种选项可用于恢复无效的区块链:
1)如果在每次备份之前都进行完整的验证,则完整的数据库恢复可以起作用。这有可能会在多个区块链结构中丢失未受影响的区块链中的记录。
2)使用[1]的第三个分形资产密钥将加密区块链副本地化。这可以是数据库的加密的XML摘要,在定期的区块链验证或每次区块链添加/更新后写入该数据库。
要配置系统,需要配置一个数据库模式,其中包含2对表,其中每对表都包含:
1)一个分形资产表
2)一个与分形资产表有关系的区块链数据表
第一对包含定义数据,其中表[1]描述目的,表[2]描述要存储在区块链中的数据。第二对表与第一张表定义的实例匹配,第二对表包含存储的数据。第二个表对与第一个表对相关联。每个表对的第一张表[1]都有一个层次关系,以便对对象进行分层结构和排序。
量子安全加密
.此外,有理论认为,在量子计算机进行瞬时暴力攻击时,几乎不可能破解根据上述技术的分形加密,尤其是如果进行了多次加密处理。
使用与每次传递的有效载荷大小相同的不可预测密钥对原始数据进行加密,其中密钥在每次传递时以不可预测的方式变化。此外,每次传递都会显著“稀释”有效载荷内容,也就是说,全新且不可预测的二进制模式会依次“覆盖”整个有效载荷,从而使其消失。因此,仅经过几次传递后,有效载荷数据就不再存在,因为其几乎被一系列唯一且不可预测的二进制模式所“覆盖”,这意味着无法同数据内部的模式来进行破解加密。
即使已知上述过程的ID和信息,如果使用了一个密钥来使起始位置x、y偏移,则无法在没有该密钥的情况下破解加密块。该密钥可以基于密码,但也可以是上述所述的“不可见分形密钥”。
要想在接近零的时间内强制破解所有可能的密钥,量子逻辑必须知道解密后的数据是什么样子,才能确定所有密钥中哪一个是成功的。
当前的加密方法只能使用与有效载荷内容相关的特定分形路径进行解密,只有使用相同路径才能恢复该内容,该路径的起点和终点位于一个无限复杂的分形域内。因此,除非了解标识符、确切的方法以及任何密钥,并正确处理它们,否则无法通过任何方法破解该加密,包括量子计算。
实施例
现在描述几个不同的实施例。
在第一实施例中,提供了一种将唯一ID映射到唯一分形x、y位置的方法,该方法通过对分形域进行复杂度函数的勘测来排除包含无限分形值的区域,并将ID二进制序列分为3个部分,其中第一个部分的最大值与勘测的分形区域数相匹配,第二个和第三个部分分别是x和y坐标。
在第二实施例中,提供了一种根据第一个实施例为每个可能的GUID映射唯一ID的方法。
在第三实施例中,提供了一种分形加密方法,该方法通过几何函数序列对数据进行加密,根据第一或第二实施例对几何函数序列的起始点进行映射,以n位步长遍历有效载荷,其中,从一系列x、y分形控制的几何函数从相同位置推导出新的x、y位置,从同样的位置推导分形值,生成与有效载荷长度相同的唯一分形密钥,并通过加上或减去其n位步长与有效载荷合并,创建加密块。
在第四实施例中,提供了一种分形解密方法,它通过在第三种实施例中插入加密块作为有效载荷来重复第三实施例中的步骤,并将加法或减法反转。
在第五实施例中,提供了一种根据第三和第四实施例进行加密和解密的方法,其中将加密块通过多次传递传输到有效载荷,而不重置最后的x、y分形位置。
在第六实施例中,提供了一种使用按照第三实施例处理的密钥字符串来种子化新的x、y起始点的方法,并且在根据第三实施例加密有效载荷之前不加载缓冲区,以生成新的x、y起始位置。
在第七实施例中,根据第三和第四个实施例提供了一种加密和解密方法,由于叠加了多次传递的不可预知密钥的无限大小,即使是量子计算机,仅给定加密块也不可能解密。
在第八实施例中,提供了一种根据第三种实施例,通过加密零位字符串生成来自数据库ID的不可见的不可预测密钥的方法。
在第九实施例中,提供了根据第六实施例使用根据第八实施例的不可见密钥进行种子加密的方法,为数据库创建了不需要存储密钥的数据库加密服务。
在第十实施例中,提供了一种确保区块链端点、第一个和最后一个哈希值安全的方法,该方法是根据第八个实施例用不可见密钥对区块链哈希值进行种子化,并使用区块链父对象的ID存储根据第三实施例加密的最后一个哈希值。
在第十一实施例中,提供了一种通过使用记录ID对第三实施例中的加密内容进行加密来确保区块链中每个链接或记录安全的方法,存储所生成的加密块用于数据验证和还原,并将加密块包含在哈希生成中。
在本说明书和随后的权利要求中,除非上下文另有要求,“包括”以及其变体如“包含”或“含有”的意思应理解为包含所述整数或整数组或步骤的声明,但不排除任何其他整数或整数组。在本说明书中使用的“大约”一词,除非另有说明,指的是±20%
本技术领域内的技术人员会意识到,可以产生许多变化和修改。所有这些变化和修改对于技术领域内的技术人员来说是显而易见的,都应被视为属于本发明的精神和范围。
Claims (23)
1.一种加密系统,所述系统包括一个或多个处理设备,所述处理设备被配置为加密与唯一标识符相关的数据:
a)确定与所述数据相关的唯一标识符;
b)使用所述唯一标识符来识别复数空间内的空间区域;
c)在所述空间区域内确定至少一个密钥位置;
d)使用定义的复数公式确定每个密钥位置的密钥值;以及
e)使用每个密钥值加密数据。
2.根据权利要求1所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)使用复数公式生成密钥位置的分形值;以及
b)从所述分形值推导所述密钥值。
3.根据权利要求2所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)从所述分形值生成整数值;以及
b)从所述整数值生成所述密钥值。
4.根据权利要求1至3中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)将所述数据分割成多个数据片段;
b)为每个所述数据片段识别相应密钥位置;以及
c)通过使用从所述相应密钥位置获取的密钥值对每个数据片段进行编码以加密所述数据。
5.根据权利要求4所述的系统,其特征在于,所述一个或多个处理设备被配置为通过将所述数据片段添加到所述密钥值以将所述数据片段与所述密钥值相结合。
6.根据权利要求5所述的系统,其特征在于,每个数据片段具有设定的位长度,并且所述一个或多个处理设备被配置为基于所述设定的位长度使用模加法将所述数据片段与所述密钥值相结合。
7.根据权利要求1至6中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为在一个密钥位置处使用已定义的复数公式确定下一个密钥位置,从而确定所述空间区域内的多个密钥位置。
8.根据权利要求1至7中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为使用从上一个密钥位置推导的值来计算到下一个密钥位置的平移来确定多个密钥位置。
9.根据权利要求1至8中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)使用所述复数公式为所述密钥位置生成分形值;
b)从所述分形值生成两个平移值;以及
c)使用这两个平移值生成平移来确定下一个密钥位置。
10.根据权利要求9所述的系统,其特征在于,所述两个值包括:
a)表示平移长度的第一值;以及
b)表示平移角度的第二值。
11.根据权利要求1至10中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)使用所述标识符确定所述空间区域内的起始密钥位置;以及
b)使用来自以下至少一个的平移来确定后续的密钥位置:
i)从所述起始密钥位置开始的上一个密钥位置;以及
ii)所述起始密钥位置。
12.根据权利要求1至11中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)使用所述标识符的第一部分来识别所述复数空间内的空间区域;以及
b)使用所述标识符的第二部分和第三部分来在所述空间区域内确定起始密钥位置。
13.根据权利要求12所述的系统,其特征在于,所述一个或多个处理设备被配置为通过查找表来使用所述标识符的所述第一部分来识别所述空间区域。
14.根据权利要求12或13所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)使用所述第二部分和所述第三部分来生成两个平移值;以及
b)使用所述两个平移值生成从空间区域起点到所述起始密钥位置的平移。
15.根据权利要求1至14中任一项所述的系统,其特征在于,所述一个或多个处理设备被配置为:
a)接收用户定义的密码;以及
b)至少部分地使用所述用户定义的密码来识别至少一个密钥位置。
16.根据权利要求15所述的系统,其特征在于,所述一个或多个处理设备被配置为执行至少以下之一:
a)使用所述用户密码确定几何平移序列;以及
b)使用所述用户定义的密码确定几何平移的起始位置。
17.根据权利要求1至16中任一项所述的系统,其特征在于,所述系统用于加密数据库,所述数据是所述数据库中的行内容,所述标识符是与所述行内容相关的标识符。
18.根据权利要求1至17中任一项所述的系统,其特征在于,所述数据是一串零值位,所述加密数据用作加密密钥。
19.根据权利要求1至18中任一项所述的系统,其特征在于,所述数据是区块链哈希值。
20.根据权利要求1至19中任一项所述的系统,其特征在于,所述系统用于保护区块链,所述数据包括区块链的端点。
21.一种加密方法,所述方法在一个或多个处理设备中,通过以下步骤对与唯一标识符相关的数据进行加密:
a)确定与所述数据相关的唯一标识符;
b)使用所述唯一标识符来识别复数空间内的空间区域;
c)在所述空间区域内确定至少一个密钥位置;
d)使用定义的复数公式确定每个密钥位置的密钥值;以及
e)使用每个密钥值加密数据。
22.一种解密系统,所述系统包括一个或多个处理设备,所述处理设备被配置为解密与唯一标识符相关的数据:
a)确定与所述数据相关的唯一标识符;
b)使用所述唯一标识符来识别复数空间内的空间区域;
c)在所述空间区域内确定至少一个密钥位置;
d)使用定义的复数公式确定每个密钥位置的密钥值;
e)使用每个密钥值对所述数据进行解密。
23.一种解密方法,所述方法包括,在一个或多个处理设备中,通过以下步骤对与唯一标识符相关的数据进行解密:
a)确定与所述数据相关的唯一标识符;
b)使用所述唯一标识符来识别复数空间内的空间区域;
c)在所述空间区域内确定至少一个密钥位置;
d)使用定义的复数公式确定每个密钥位置的密钥值;
e)使用每个密钥值对所述数据进行解密。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2021902586A AU2021902586A0 (en) | 2021-08-18 | Fractal database encryption | |
AU2021902586 | 2021-08-18 | ||
PCT/AU2022/050734 WO2023019288A1 (en) | 2021-08-18 | 2022-07-13 | Encryption scheme |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117859131A true CN117859131A (zh) | 2024-04-09 |
Family
ID=85239269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280053620.4A Pending CN117859131A (zh) | 2021-08-18 | 2022-07-13 | 加密方法 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN117859131A (zh) |
AU (1) | AU2022328452A1 (zh) |
WO (1) | WO2023019288A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782101B1 (en) * | 2000-04-20 | 2004-08-24 | The United States Of America As Represented By The Secretary Of The Navy | Encryption using fractal key |
US8819452B2 (en) * | 2009-11-25 | 2014-08-26 | Cleversafe, Inc. | Efficient storage of encrypted data in a dispersed storage network |
US10298555B2 (en) * | 2014-04-04 | 2019-05-21 | Zettaset, Inc. | Securing files under the semi-trusted user threat model using per-file key encryption |
US10491568B1 (en) * | 2014-05-21 | 2019-11-26 | Amazon Technologies, Inc. | Management of encrypted data storage |
US11463248B2 (en) * | 2018-09-03 | 2022-10-04 | Munia Limited | Management system |
-
2022
- 2022-07-13 CN CN202280053620.4A patent/CN117859131A/zh active Pending
- 2022-07-13 WO PCT/AU2022/050734 patent/WO2023019288A1/en active Application Filing
- 2022-07-13 AU AU2022328452A patent/AU2022328452A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023019288A1 (en) | 2023-02-23 |
AU2022328452A1 (en) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230231840A1 (en) | Encryption and decryption techniques using shuffle function | |
US20200344071A1 (en) | Personal device security using cryptocurrency wallets | |
ES2691254T3 (es) | Método y sistema para verificar la integridad de un activo digital mediante el uso de una tabla de hash distribuidas y un libro mayor distribuido entre pares | |
US8429720B2 (en) | Method and apparatus for camouflaging of data, information and functional transformations | |
US7454782B2 (en) | Method and system for camouflaging access-controlled data | |
CN106776904A (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
CN111476573B (zh) | 一种账户数据处理方法、装置、设备及存储介质 | |
CN111314069A (zh) | 基于区块链的摇号系统、方法、电子设备及存储介质 | |
US9313023B1 (en) | Format-preserving cipher | |
CN108833117B (zh) | 一种私钥存储和读取方法、装置及硬件设备 | |
CN111914264A (zh) | 索引创建方法及装置、数据验证方法及装置 | |
CN107070896B (zh) | 一种安全高效的区块链网络客户化登录方法及安全加固系统 | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
CN113221155A (zh) | 一种多层级与多等级加密的云储存系统 | |
CN110719172A (zh) | 区块链系统中的签名方法、签名系统以及相关设备 | |
CN112805704A (zh) | 保护数据的方法和系统 | |
CN117859131A (zh) | 加密方法 | |
AU2019203281A1 (en) | Management system | |
US9634836B1 (en) | Key shadowing | |
Liu et al. | Efficient dynamic multi-client searchable encryption supporting fuzzy search | |
US20210279348A1 (en) | Secure access control processes | |
Lopes | Implementation of practical and secure methods for storage of cryptographic keys in applications | |
CN116484389A (zh) | 基于可信硬件的隐私集合求交与数据分析方法 | |
CN117955636A (zh) | 一种高安全性的敏感数据存取方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |