CN111034115B - 用于扩展真随机数池的表观大小的加密系统和方法 - Google Patents
用于扩展真随机数池的表观大小的加密系统和方法 Download PDFInfo
- Publication number
- CN111034115B CN111034115B CN201880054728.9A CN201880054728A CN111034115B CN 111034115 B CN111034115 B CN 111034115B CN 201880054728 A CN201880054728 A CN 201880054728A CN 111034115 B CN111034115 B CN 111034115B
- Authority
- CN
- China
- Prior art keywords
- random number
- pool
- trn
- true random
- key data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 280
- 230000008569 process Effects 0.000 claims abstract description 223
- 230000015654 memory Effects 0.000 claims description 35
- 230000001360 synchronised effect Effects 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 16
- 239000004606 Fillers/Extenders Substances 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 101000648832 Homo sapiens TMF-regulated nuclear protein 1 Proteins 0.000 description 31
- 102100028172 TMF-regulated nuclear protein 1 Human genes 0.000 description 31
- 238000004891 communication Methods 0.000 description 20
- 238000003860 storage Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000000670 limiting effect Effects 0.000 description 12
- 239000000463 material Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 210000004247 hand Anatomy 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 229910052814 silicon oxide Inorganic materials 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 235000002566 Capsicum Nutrition 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 239000006002 Pepper Substances 0.000 description 1
- 235000016761 Piper aduncum Nutrition 0.000 description 1
- 235000017804 Piper guineense Nutrition 0.000 description 1
- 244000203593 Piper nigrum Species 0.000 description 1
- 235000008184 Piper nigrum Nutrition 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005184 irreversible process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
真随机数(TRN)池的第一副本包括文件池中真随机数的密钥数据,并可以存储在发送器上,而TRN池的第二副本存储在接收器上。使用随机化过程来扩展每个装置上的TRN池的表观大小,该随机化过程用于从文件选择和重新使用密钥数据,以从第一副本产生发送密钥数据,并从第二副本产生接收密钥数据。
Description
优先权声明
本申请要求于2017年8月25日提交的题为“用于扩展真随机数池的表观大小的加密系统和方法”的美国临时专利申请号62/550,068的权益,其全部公开内容通过引用结合于此。
技术领域
本公开的实施方式总体涉及密码学,更具体地,涉及使用类似于一次性密码本的数据和结构的加密和解密。
背景技术
密码学对于许多类型的通信非常重要,包括但不一定限于涉及金融数据、医疗数据和政府机密数据的通信。许多类型的加密很难解密,但最终会被破解。其他类型的加密具有显著的漏洞,使得解密相对容易。传统的一次性密码本通常被认为是完全安全且不易破解的。然而,传统的一次性密码本具有与如何传送一次性密码本以保持其是机密的相关的缺点。此外,对于传统的一次性密码本,密钥的长度等于要加密的数据的长度,这可能不适用于高带宽应用,即使可能安全传送一次性密码本。
发明内容
本公开的一方面提供了用于执行加密过程的计算机实现的方法,包括:在第一计算系统上存储真随机数(TRN)池的第一副本,真随机数(TRN)池包括可单独寻址文件池中真随机数的密钥数据元素,其中,真随机数(TRN)池的第二副本存储在第二计算系统上;并且使用池扩展器扩展真随机数(TRN)池的表观大小,以创建用于从真随机数(TRN)池中的可单独寻址文件选择和重新使用密钥数据元素的随机化过程,从而在第一计算系统上产生最终密钥数据元素以加密明文数据元素,池扩展器定义了在真随机数的密钥数据元素退出使用之前多次使用真随机数(TRN)池中的真随机数的密钥数据元素的基本随机的方法,其中,随机化过程被配置为在第二计算系统上的真随机数(TRN)池的第二副本上执行,以使第一计算系统上的真随机数(TRN)池与第二计算系统上的真随机数(TRN)池一致,以便对第一计算系统和第二计算系统之间传送的数据元素进行加密和解密中的至少一者。
本公开的另一方面提供了用于执行加密过程的计算机实现的方法,包括:在发送装置上:将包括真随机数的密钥数据元素的真随机数(TRN)池的第一副本存储在可单独寻址文件池中;使用随机数合并模块扩展真随机数(TRN)池的表观大小,以创建用于从真随机数(TRN)池的第一副本中的可单独寻址文件选择和重新使用密钥数据元素以产生最终密钥数据元素的随机化过程,池扩展器定义了在真随机数的密钥数据元素退出使用之前多次使用真随机数(TRN)池的第一副本中的真随机数的密钥数据元素的基本随机的方法;使用加密操作将明文数据元素与最终密钥数据元素组合,以产生加密数据元素;并且传输加密数据元素;并且在接收装置上:存储真随机数(TRN)池的第二副本,其中,第二副本与第一副本匹配;使用接收随机数合并模块扩展接收装置上的真随机数(TRN)池的表观大小,以创建用于从真随机数(TRN)池的第二副本中的可单独寻址文件选择和重新使用密钥数据元素以产生接收密钥数据元素的随机化过程,池扩展器定义了在真随机数的密钥数据元素退出使用之前多次使用真随机数(TRN)池的第二副本中的真随机数的密钥数据元素的基本随机的方法,其中,接收装置上的随机化过程执行与发送装置上的随机化过程相同的功能,并且与发送装置上的随机化过程同步,使得接收密钥数据元素与最终密钥数据元素匹配;接收加密数据元素;并且使用解密操作将接收密钥数据元素与加密数据元素组合,以产生接收明文元素。
本公开的又一方面提供了被配置为执行加密过程的计算系统,计算系统包括:存储器,被配置为存储计算指令;并且处理器,可操作地耦接到存储器并被配置为执行计算指令,计算指令被配置为:将真随机数(TRN)池的第一副本存储在存储器中,真随机数(TRN)池包括可单独寻址文件池中真随机数的密钥数据元素,其中,真随机数(TRN)池的第二副本被配置为存储在第二计算系统上;使用池扩展器扩展真随机数(TRN)池的表观大小,以创建用于从真随机数(TRN)池中的可单独寻址文件中选择和重新使用密钥数据元素从而产生最终密钥数据元素的随机化过程,池扩展器定义了在真随机数的密钥数据元素退出使用之前多次使用真随机数(TRN)池中的真随机数的密钥数据元素的基本随机的方法,其中,随机化过程被配置为在第二计算系统上的真随机数(TRN)池的第二副本上执行,以使第一计算系统上的真随机数(TRN)池与第二计算系统上的真随机数(TRN)池一致,以便对第一计算系统和第二计算系统之间传送的数据元素进行加密和解密中的至少一者;使用针对每个明文数据元素和每个密钥数据元素的加密操作,将明文数据元素和最终密钥数据元素组合,以产生加密数据元素;并且将加密数据元素传输到第二计算系统。
本公开的又一方面提供了一种被配置为执行加密过程的计算系统,包括:发送装置,包括用于存储第一计算指令的第一存储器和可操作地耦接到第一存储器并被配置为执行第一计算指令的第一处理器,第一计算指令被配置为:将包括真随机数的密钥数据元素的真随机数(TRN)池的第一副本存储在可单独寻址文件池中;使用随机数合并模块扩展真随机数(TRN)池的表观大小,以创建用于从真随机数(TRN)池的第一副本中的可单独寻址文件中选择和重新使用密钥数据元素以产生最终密钥数据元素的随机化过程,池扩展器定义了在真随机数的密钥数据元素退出使用之前多次使用真随机数(TRN)池的第一副本中的真随机数的密钥数据元素的基本随机的方法;使用加密操作将明文数据元素与最终密钥数据元素组合,以产生加密数据元素;并且传输加密数据元素;接收装置,包括用于存储第二计算指令的第二存储器和可操作地耦接到第二存储器并被配置为执行第二计算指令的第二处理器,第二计算指令被配置为:存储真随机数(TRN)池的第二副本,其中,第二副本与第一副本匹配;使用接收随机数合并模块扩展接收装置上的真随机数(TRN)池的表观大小,以创建用于从真随机数(TRN)池的第二副本中的可单独寻址文件中选择和重新使用密钥数据元素以产生接收密钥数据元素的随机化过程,池扩展器定义了在真随机数的密钥数据元素退出使用之前多次使用真随机数(TRN)池的第二副本中的真随机数的密钥数据元素的基本随机的方法,其中,接收装置上的随机化过程执行与发送装置上的随机化过程相同的功能,并且与发送装置上的随机化过程同步,使得接收密钥数据元素与最终密钥数据元素匹配;接收加密数据元素;并且使用解密操作将接收密钥数据元素与加密数据元素组合,以产生接收明文元素。
附图说明
图1是使用真随机数(TRN)池的加密系统的框图,所述池具有扩展的表观大小,以容纳大容量数据管道;
图2是示出使用TRN池的加密服务器上的元素的更详细的框图;
图3是示出用于合并来自TRN池中不同位置的随机数密钥信息的池扩展器的框图;
图4A和图4B示出了用于从图3的实施方式的文件中选择随机数的过程;
图5是示出了池扩展器的框图,该池扩展器包括用于将生成的伪随机数与来自TRN池的随机数密钥信息组合的过程;
图6是示出用于实践本公开的实施方式的计算系统的框图。
具体实施方式
在下面的详细描述中,参考了附图,这些附图形成了本发明的一部分,并且在这些附图中,通过示例的方式示出了可以实践本公开的特定示例实施方式。足够详细地描述了这些实施方式,以使本领域普通技术人员能够实践本公开。然而,在不脱离本公开的范围的情况下,可以使用其它实施方式,并且可以进行结构、材料和过程的改变。本文呈现的图示不意味着是任何特定方法、系统、装置或结构的实际视图,而仅仅是用于描述本公开的实施方式的理想化表示。本文呈现的附图不一定按比例绘制。为了阅读的方便,不同附图中的类似结构或部件可以保留相同或类似的编号;然而,编号的相似性并不意味着结构或部件在尺寸、组成、配置或任何其他性质上必然相同。
很容易理解的是,如在本文总体描述的和在附图中示出的实施方式的部件可以以各种不同的配置来设置和设计。因此,各种实施方式的以下描述并不旨在限制本公开的范围,而是仅仅表示各种实施方式。虽然可以在附图中呈现实施方式的各个方面,但是除非特别指出,否则附图不一定按比例绘制。
此外,示出和描述的具体实现方式仅是示例,不应被解释为实现本公开的唯一方式,除非本文另有说明。元素、电路和功能可以方框图的形式示出,以免在不必要的细节上使本公开模糊。相反,所显示和描述的具体实现方式仅是示例性的,不应被解释为实施本公开的唯一方式,除非本文另有说明。此外,方框定义和不同方框之间的逻辑划分是特定实现方式的示例。对于本领域的普通技术人员来说显而易见的是,本公开可以通过许多其他划分解决方案来实践。对于大多数部件,已经省略了关于时间考虑等的细节,其中,这些细节对于获得对本公开的完全理解不是必需的,并且在相关领域的普通技术人员的能力范围内。
本领域普通技术人员将理解,可以使用多种不同技术和技艺中的任何一种来表示信息和信号。例如,在整个说明书中可能引用的数据、指令、命令、信息、信号、比特、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任意组合来表示。为了清楚表述和描述,一些附图可以将信号显示为单个信号。本领域普通技术人员将理解,信号可以表示信号总线,其中,总线可以具有多种位宽,并且可以以包括单个数据信号的任何数量的数据信号实现本公开。
结合本文公开的实施方式描述的各种说明性逻辑块、模块和电路可以用通用处理器、专用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件或被设计成执行本文描述的功能的其任意组合来实现或执行。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算装置的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核的结合、或任何其他这样的配置。包括处理器的通用计算机被认为是专用计算机,而通用计算机被配置为执行与本公开的实施方式相关的计算指令(例如,软件代码)。
此外,应当注意,可以根据被描绘为流程图、流图、结构图或方框图的过程来描述实施方式。尽管流程图可以将操作动作描述为顺序过程,但是这些动作中的许多动作可以以另一顺序、并行或基本上同时执行。此外,可以重新排列动作的顺序。过程可以对应于方法、线程、函数、过程、子例程、子程序等。此外,本文公开的方法可以用硬件、软件或这两者来实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码在计算机可读介质上存储或传输。计算机可读介质包括计算机存储介质和通信介质,包括有助于将计算机程序从一个地方传送到另一地方的任何介质。
应当理解,在本文使用诸如“第一”、“第二”等名称对元素的任何引用并不限制这些元素的数量或顺序,除非明确陈述了这种限制。相反,这些名称可以在本文用作区分两个以上元素或元素实例的方便方法。因此,对第一和第二元素的引用并不意味着在那里只能使用两个元素,或者第一元素必须以某种方式在第二元素之前。此外,除非另有说明,否则一组元素可以包括一个或多个元素。
本文描述的元素可以包括相同元素的多个实例。这些元素一般可以由数字指示符(例如,110)表示,并且具体地,对于给定的实例化,由数字指示符后跟字母指示符(例如,110A)或数字指示符后跟“破折号”(例如,110-1)来表示。为了便于跟随描述,对于大多数部件,元素编号指示符从介绍或最充分讨论元素的示图的编号开始。因此,例如,图1上的元素标识符将主要以数字格式1xx,而图4上的元素将主要以数字格式4xx。
本文可以包括标题,以帮助定位详细描述的某些章节。这些标题不应被认为限制在任何特定标题下描述的概念的范围。此外,在任何特定标题中描述的概念通常适用于整个说明书的其他章节。
如本文所使用的,关于给定的参数、特性或条件引用术语“基本上”意味着并且在一定程度上包括本领域普通技术人员将理解,给定的参数、特性或条件满足小程度的变化,例如,在可接受的制造公差内。举例来说,取决于基本满足的特定参数、特性或条件,参数、特性或条件可以是满足至少90%、满足至少95%、或者甚至满足至少99%。
在本说明书中对“一个实施方式”、“实施方式”或类似语言的引用意味着结合所指示的实施方式描述的特定特征、结构或特性包括在本公开的至少一个实施方式中。因此,在本说明书中的短语“在一个实施方式中”、“在实施方式中”和类似的语言可以但不一定都指同一实施方式。
“模块”是指被配置为实现本公开的一个或多个元素的软件过程、软件过程的集合、硬件元素的集合或其组合。
在描述具体实施方式之前,并且为了便于本公开中的描述,本文描述了各种术语。在普通含义、词典含义和本文所述术语之间可能存在歧义的情况下,本领域普通技术人员将认识到,本文所述术语将最好地符合本公开的实施方式的更全面理解。
“一次性密码本”(OTP)是一种不可破解的加密技术,其中,在两个通信方需要加密通信之前,将相同的成对密钥材料组分发给他们。当需要时,发送通信方使用一部分OTP来加密消息,接收通信方使用匹配部分来解密消息。在早期的实现方式中,OTP是带有随机单字母替换的书面文字密码本,在密码本中的一页或多页的部分用于加密消息之后,这些页可以从密码本中移除并销毁,以防止除了具有匹配密码本的接收方之外的任何人解密消息。
根据本公开的一些实施方式,“随机密码密码本”(RCP)类似于但是不同于OTP。术语RCP可以用作各种RCP的通用术语。RCP是真随机数的集合,该集合可以是文件,例如,从一个或多个“真随机数发生器”(TRNG)中收集真随机数。“随机”一词的使用通过暗示密码的真正随机性质,唤起了OTP提供的保护。虽然RCP的大小可能在实例之间变化,或者可能甚至在特定实例内变化,但在许多情况下,RCP以千字节甚至更大的单位来测量。
“RCP池”是RCP的集合。RCP池中的每个RCP可以由该池中唯一的数字(例如,顺序整数)来标识。全局唯一标识符(GUID)均包含一个唯一的128位数字,可以用作标识符,使得仔细构造这个数字可以保证任何特定系统中的全局唯一性。因此,在一些实施方式中,每个RCP池可以用GUID来标识。此外,虽然简单的顺序标识符可以用于标识RCP池内的每个RCP,但是GUID、RCP的散列或其他类型的唯一标识符可以替代地用于标识RCP池内的每个RCP。
“真随机数发生器”(TRNG)是一种硬件装置,如果需要,还包括相关软件,用于从不可预测的量子或非量子物理过程中生成真随机数。这些过程的量子示例包括核衰变、通过部分透明反射镜传输的光子以及真空能量的波动。非量子示例包括热噪声、时钟漂移和RF噪声。
“真随机数(TRN)池”是由TRNG硬件装置和相关软件(如果需要)生成的一组真随机数。QRN池是普通TRN池的一种,其中,池中的真随机数是由量子过程产生的。术语“集合(set,组)”和“池”在本说明书中可以互换使用。换言之,这种描述可以互换使用TRN池和TRN集合,并且互换使用QRN池和QRN集合。此外,TRN池可以被配置为单独可选择和可寻址的RCP的池,例如,上述RCP池。
“数据RCP”是一种用于加密和解密两个以上端点之间的通信的RCP。
“随机密码密钥”(RCK)是数据RCP、数据RCP的一部分、两个以上数据RCP的组合或两个以上数据RCP的一部分的组合,使得RCK的长度对应于将由RCK操作的消息的长度。
“密钥RCP”是一种RCP,用于加密和解密数据RCP,以电子方式安全传输。每个密钥RCP仅使用一次。
“映射”是将数据RCP(一旦使用)转换为密钥RCP以安全传输后续数据RCP的过程。
“映射索引”是以随机顺序在数据RCP中包括从1到单位数(例如,字节、单词等)的整数的数字列表。映射索引可以被加密并发送到特定通信信道的合适端点,并且可以用作将数据RCP转换成密钥RCP的过程的一部分。
术语“未加密的”、“未加密的数据”、“未加密的数据结构”、“未加密的消息”、“明文”和“明语文本”是指未加密的数据。
术语“加密的”、“加密的数据”、“加密的数据结构”、“加密的消息”和“密文”是指已经通过根据本公开的实施方式的加密过程的数据。作为非限制性示例,可以通过在明文消息和来自TRN池的随机数之间执行按位异或来生成加密数据。
术语“解密的”、“解密的数据”、“解密的数据结构”和“解密的消息”是指先前加密并已返回其原始值的数据。作为非限制性示例,可以通过在加密消息和用于加密明文消息的来自TRN池的相同随机数之间执行按位异或来生成解密数据。解密的数据也可以称为“明文”或“明语文本”。因此,明语文本和明文可以指加密前的数据或解密后的数据。
术语“可通信的”是指多个RCP的应用特性,其方式是使用多个RCP加密数据的顺序无关紧要。换言之,只要同一组RCP用于加密和解密,以不同的顺序使用RCP进行加密和解密将产生相同的最终结果。
根据本公开的实施方式,术语“密码本”在本文中一般用于指RCP。相反,传统的一次性密码本明确地称为传统的一次性密码本或一次性密码本,而不仅仅是密码本。
实现方式概述
本文描述的实施方式有助于利用随机密码密码本(RCP),随机密码密码本可能与传统的一次性密码本有些相似,但是以新的和不同的方式使用。RCP不仅用于加密信息(例如,文档、媒体流和数据文件),还用于加密后续RCP,这些RCP进而可以被原始用户递归使用。此外,本公开的实施方式包括扩展RCP池的表观大小的过程,这在高带宽应用中可能特别有用。
传统的一次性密码本加密通常被认为是不可破解的。类似地,在以下条件下,使用RCP是不可破解的:(1)RCP安全地分发到通信端点,或者(2)将数据RCP转换为密钥RCP的映射过程是安全且不可破解的。因此,只要生成RCP的一方继续发送由先前RCP加密的后续RCP,并且所使用的RCP变得不可发现、不可用、不可读、以其他方式不可访问,或销毁,通信方就可以安全地使用无限数量的RCP。
拦截传输通常不会帮助入侵者,因为不能破解RCP加密。最坏的情况是,预期接收者将不会收到预期发送给他的传输,而是会联系发送者,发现信息被盗或丢失。
在一些实施方式中,初始RCP交换安装在电子环境“之外”完成,或者以高度安全的方式完成,对发送者和接收者进行完整认证。这导致一种情况,即,每个后续RCP都不能被解密,因此不能被拦截而使用。
传统的一次性密码本目前不适用于普遍用途,或者甚至不适用于企业用途,因为每个密码本都是单独的事件,并且发送者和接收者对于每个传输都必须有相同的密码本。加密和解密需要相同的密码本。迄今为止,使用可破解的公钥加密(PKE)交换发送者和接收者之间的传统一次性密码本。使用PKE来“确保”交换密码本是不安全的,而且越来越容易受到攻击。为每次新的使用手动传送新的密码本(例如,通过邮件或快递)可能是不切实际的、昂贵的和低效的;此外,将每个连续的密码本交到一个或多个接收者手中的方法会产生漏洞。在补偿(替代,replenishment)不切实际或有限的情况下,根据本公开的实施方式,可以扩展或延伸现有的RCP。
在单独或累积实施方式中呈现的以下方面呈现了RCP加密方法或过程可能带来的功能机会。通常,RCP可用于数据加密,并单独用于加密该加密过程本身的特征。换言之:
1、原始RCP可用于加密新的、不相关的RCP进行电子传输,这种RCP也是不可破解的;
2、使用其前面的RCP加密新的不相关RCP,这意味着即使被拦截,也无法解密或使用新的RCP;
3、原始用户可以生成和传输多个新的RCP(单独地或连同他们加密的文档或信息)。
换言之,本公开的实施方式包括用于提供加密过程的设备和方法,加密过程包括将当前RCP重新映射到用于安全传送替换RCP的不相关随机变量。这些实施方式被配置成减少和/或消除攻击面。这种递归过程意味着初始RCP和映射数据可以与原始软件安装一起安装,作为端点注册过程的一部分。初始RCP和映射数据可以被配置成使得包括服务器或其他装置上的匹配数据。为了确保系统的完整性,应使用高安全协议完成包括初始RCP的初始安装。
在一些实施方式中,本文描述的一些或全部加密特征在执行加密过程的计算机处理器或处理装置内实现。根据在本文描述的特定加密技术发生的数据转换使执行在本文描述的实施方式的处理装置成为能够具有新功能的专用处理装置,不同地,在执行传统软件或逻辑过程时该新功能不可用。此外,这种加密过程的有效处理需要在计算机处理系统内实现。此外,存储与本文描述的加密技术相关联的数据的电子存储装置和执行本文描述的加密技术的计算机处理装置之间的交互实现了比通过其他非计算机化手段可能实现的更大的功效。
RCP加密的一个特点是,如果使用异或运算(XOR)加密数据,则第二次应用异或XOR(具有相同RCP数据)将解密数据。因此,加密和解密过程是相似的。然而,加密和解密不限于使用异或作为RCP编码器和解码器的加密操作符。可以使用任何合适的对称运算。
在一些实施方式中,RCP生成发生在具有最大资源的计算机上,或者在发送者的计算机上,或者在接收者的计算机上。或者,RCP生成可以由第三方中间计算机或参考计算机(例如,RCP服务器)执行,并且以安全的方式传送给希望通过安全信道相互通信的每台计算机。
在不同的实现中,或者甚至在发送器和接收器装置之间的同一通信流的不同阶段,RCP的大小可能不同。
为了便于描述,数据元素通常用“字节”来描述。然而,本领域普通技术人员将认识到,数据元素可以被配置为适合不同应用的许多大小,例如,“16、32或64位字”。
实现细节
图1是使用同步TRN池(125A、125B)的加密系统100的框图,该池具有扩展的表观大小,以容纳大容量数据管道150。许多大型企业对企业和企业园区对园区数据运营都在利用当前可用的最高可行吞吐量光纤/线缆连接选项。这些带宽可以在100-300千兆比特/秒的范围内。这些大容量数据管道(HVDP)支持分布式位置之间以接近实时的速度进行高效、超高速的数据交换。HVDP 150可以以高价出租,并处理公司可能拥有的一些最私有的数据。HVDP 150也为黑客和犯罪活动提供了广泛的目标机会。本公开的实施方式包括加密解决方案,用于在防火墙内的公司控制下自主地和无缝地加密所有数据,然后在另一端在防火墙内解密数据,将数据移回到企业服务器110上以进行分发。
在图1中,加密服务器(120A、120B)位于实体防火墙(130A、130B)内,例如,在HVDP150的每一端的公司防火墙。图1和图2中的元素编号包括附加的“A”或“B”,以表示通信系统每一侧的类似的块、模块和功能。因此,当描述在每一端相似的功能时,附图元素可以用其通用编号来指代,而没有附加的“A”或“B”。当数据在进入HVDP 150之前离开发送装置105A时,加密作为一个最后的操作发生在加密服务器120上。相反,当数据在接收装置105B处离开HVDP 150时,解密作为一个第一操作在加密服务器120上进行。加密服务器120耦接到企业服务器110,企业服务器110收集要在发送装置105A上加密的明文业务,或者在接收装置105B上解密之后将明文业务分发给指定的接收者。每个加密服务器120还连接到单独的数据存储器,该数据存储器包含大的真随机数池(TRNP)(125A、125B)。对于本公开的实施方式,每一侧上的这些TRNP 125是相同的,并且可以同步,以提供用作加密密钥和解密密钥的真随机数(TRN)。TRNP可以由从远程系统提供并由客户的IT管理员安装的带外密钥管理器160按常规补充。各种高安全性特征建立入该系统中,以防止在控制或补充TRNP 125上的损害。
在一些实施方式中,加密服务器120和企业服务器110可以是不同的物理服务器。在其他实施方式中,加密服务器120和企业服务器110可以被配置为在单个物理硬件装置上相互通信的独立过程。
本公开的实施方式扩展了给定密钥材料池的有效大小,该密钥材料用于1)用户数据的对称加密/解密(本文也称为对称加密)或2)随机数据的对称加密,所述随机数据是为用于用户数据的对称加密的密钥数据的动态替换而产生的。用于用户数据的这种对称加密和密钥数据的动态替换的细节可以参见2016年4月20日提交的题为“随机密码的密码本加密(Random Cipher Pad Cryptography)”美国专利申请号15/134,260,该申请于2018年6月19日作为美国专利10,003,457公开,其全部公开内容通过引用结合于此。
在扩展给定密钥材料池的有效大小时,密钥材料的随机字节被重复使用。结果,本公开的实施方式可能达不到字节从不重复使用的一次性密码本的安全性。然而,这样的实施方式可以比私钥基础设施(PKI)加密方法更安全,并且也可以是量子证明。
图2是示出使用TRN池(210A和210B)的加密服务器120上的元件的更详细的框图。通常,每个加密服务器120操作相同,除了一方加密明文数据元素202A,作为加密操作(operation,运算)270A(例如,逐位异或)的输入,以创建加密的数据元素280,另一方使用解密操作270B(例如,逐位异或)解密加密的数据元素280,以创建明文数据元素202B,作为输出。当然,通信是双向的,尽管加密和传输在图2中从A到B(从左到右)示出,但加密和传输通常会双向流动。
同步TRN池(210A和210B)的第一副本210A和第二副本210B是相同的,并且包括池同步/再同步模块290,以确保在每一侧同时选择和使用同步TRN池210内的相同密钥材料元素。
本公开的实施方式可以通过提供池扩展器(220A和220B)来扩展用于对称加密的给定TRN池210的有效大小,该池扩展器定义了在TRN池210中的真随机数(本文也称为密钥材料元素)退出使用之前多次使用TRN池210中的真随机数的基本随机的方法。同步TRN池210将以安全的方式传递给每一方,例如,通过可信的通信员(courier)、防盗包装或其他合适的安全通信信道。
池扩展器220提供用于从同步TRN池210中选择密钥材料元素的一个或多个随机化过程,在一些实施方式中,这可以是基本随机的方式,但是也是可再现的,使得发送装置105A和接收装置105B可以保持同步以从TRN池210中选择和/或修改相同的密钥数据元素。在池扩展器220内,在本公开的各种实施方式中,用虚线示出的块可以包括在池扩展器220中或者省略。
池寻址模块230可以被配置为寻址同步TRN池210内的一个或多个单独的密钥材料元素。下面在图3至图5的描述中提供了关于各种实施方式中的池寻址模块230及其功能的更多细节。
可以包括伪随机数发生器250来实现伪随机数生成过程以生成伪随机数,以在XOR260处与来自同步TRN池210的一个或多个密钥材料元素组合。伪随机数发生器250被配置为当其通过其状态时产生随机数,但是具有预定义的序列。换言之,每一侧的池同步/再同步模块290可以使用初始化参数来将每一侧的伪随机数发生器250设置为相同的初始状态。从那时起,只要每一侧的伪随机数发生器250保持同步,每个后续状态将在每一侧产生相同的伪随机数。伪随机数发生器250的输出在XOR 260处与同步TRN池210(或随机数合并模块240)的输出组合,以产生已经被伪随机数修改的真随机数结果262。下面在图5的描述中提供了关于各种实施方式中的伪随机数发生器250及其功能的更多细节。
时钟204可用于确保池寻址模块230和伪随机数发生器250保持同步,并根据需要为用于同步、初始化或再同步的池同步/再同步模块290和池寻址模块230和伪随机数发生器250提供时序。
在一些实施方式中,可以包括随机数合并模块240,以将来自同步TRN池210的多个密钥数据元素合并成用于加密的单个密钥元素。下面在图3和图4的描述中提供了关于各种实施方式中的随机数合并模块240及其功能的更多细节。
因此,在发送装置105A中,在原始明文元素202A的加密操作270A(例如,逐位异或)中使用最终密钥数据元素262A来产生加密数据元素280,加密数据元素280传输到接收装置105B。在接收装置105B处,从池扩展器220B产生接收密钥数据元素262B。当在每一侧使用相同的TRN池210,在每一侧使用相同的随机化过程,并且随机化过程被同步,接收密钥数据元素262B将与最终密钥数据元素262A匹配。结果,将加密数据元素280与接收密钥数据元素262组合的解密操作270B(例如,逐位异或)将产生与原始明文元素202A相匹配的接收明文元素202B。
在本公开的一些实施方式中可以包括扭曲模块285。可能存在未经授权的内部或外部参与者能够通过某种方式获得随机密码密码本(RCP)或TRN池210的副本或者能够以其他方式确定TRN池210的内容的情况。可能存在其他情况,即,在TRN池210已经由TRN池210的供应商提供之后,客户希望修改TRN池210(例如,在供应商的数据泄露或者以其他方式被第三方确定的情况下)。本公开的一些实施方式允许用于执行TRN池210的用户特定修改的过程(本文也称为扭曲或执行扭曲操作)。一旦实现扭曲,只有客户端用户能够解密任何业务。此时,TRN提供商已经不可撤销地将对TRN池210中的密钥数据元素的完全控制移交给客户。例如,在2018年1月16日提交的美国临时专利申请号62/617,984中公开了这种扭曲过程的示例,该申请的公开内容通过引用整体结合于此。
该扭曲操作包括多方过程,由此一个、两个以上个体能够彼此协调,以两个端点TRN池210在该过程之后保持精确同步的方式扭曲TRN池210。
作为非限制性示例,可以被描述为将输入TRN池210映射到类似大小的输出扭曲TRN池210的明确定义的可逆或不可逆过程。为了使现场操作人员的操作过程保持一定的简化,可以在受控的环境下提前启动或预安装部分扭曲过程。随后,由于操作端点在现场条件下处于实际服务状态,指定的管理器能够输入不太复杂的扭曲代码,该代码与另一端点协调输入的代码精确匹配。只要每个端点管理器具有足够的访问权限和相同的输入代码以及一致的输入时间,就可以根据需要经常扭曲每个端点上的TRN池210。如果需要,可以通过任意数量的通信链路或通过对相互已知的序列的屏蔽引用或组合来离线交换额外的输入代码。
作为另一种可能性,对于不太易受攻击或不太敏感的公司用例,在从TRN提供商接收并将部分委托给每个部署的端点之前,在基地或总部维护的主TRN池210可以完全扭曲。这将消除TRN提供商开发业务的任何可能性,将所有漏洞留在客户手中。
可以包括扭曲模块285,使得可以使用用于修改TRN池210中的密钥数据元素的各种手段来完成扭曲。
作为非限制性示例,可以在发送装置105A上使用密钥导出功能,例如,从秘密密码或秘密口令创建散列,使得散列与TRN池210组合,以在TRN池210中创建TRN提供商未知且不可发现的新密钥数据元素。只有那些具有秘密密码或秘密口令以及知道密钥导出功能的人才能以相同的方式修改另一TRN池210,使得可以用于接收装置105B上的解密目的。此外,当创建散列时,可以通过提供非秘密的盐参数、秘密的胡椒参数或其组合来修改密钥导出功能。
图3是示出用于合并来自同步TRN池210中不同位置的随机数密钥信息的池扩展器220的框图。
回想一下,本公开的实施方式可以加密:1)用户数据以及2)为密钥数据的动态替换而产生的随机数据,该密钥数据稍后可以用于用户数据的对称加密。
关于用户数据加密,同步TRN池210可以被配置为针对TRN池210中的总共N×M个字节,由“N”个文件(例如,RCP)组成的静态TRN池210,每个文件包含“M”个随机字节。
如果TRN池210中的这些字节用作100Mbit/s的一次性密码本,则将持续N*M*8/2^20/86,400天(假设24/7运算)。本公开的实施方式使用池扩展器220,以通过用各种池重用过程来扩展TRN池210的表观大小,从而大幅增加给定TRN池210的可用性。
这些池重用过程被配置为以在每一侧(即发送和接收)的加密过程中可再现的方式,置换两个以上可单独寻址文件中的每一个的TRN内容。可以使用许多不同的置换过程,只要每一侧具有初始化参数来定义置换过程、使用哪些文件以及从哪里开始置换过程,以便可以在置换过程中保持同步。作为非限制性示例,讨论了使用质数和互质数来创建寻址置换的循环过程。
作为这些循环过程的一般示例,首先看看在扩展单个随机字节字符串的有效长度时使用的开始/步长值。例如,假设数组“R”中有“N”字节的随机数据。如果地址指针设置为0,并以步长1递增,则将产生原始的随机数据字符串。现在,想要扩展随机数据的长度,但是没有生成额外数据的手段,并且“循环”地址指针(重复相同的序列)通常是不可接受的。扩展随机数据的长度的一种方法是向混合中增加整数“步长”。现在,我们将地址指针设置为0,并将步长设置为执行各种循环算法来置换数组中的元素。
作为一个示例,考虑由发送系统选择的位置描述,包括“K”个随机文件、“K”个起始地址(每个“K”个随机文件一个)和“K”个步长(每个“K”个随机文件一个)。该位置描述在本文也称为TRNP寻址信息和初始化参数。该TRNP寻址信息可以作为报头中的信息发送给接收系统。对于“M”个随机字节的数据,起始地址和步长的位长度是ceil(log2(M))和“N”个文件,文件id的位长度是ceil(log2(N))。因此,包含在报头中的TRNP寻址信息至少为2*ceil(log2(N))+ceil(log2(K))位长。
TRNP寻址信息可以在使用前对于几个块从发送系统加密发送到接收系统,以便接收方准备在适当的时间使用新的寻址布置。换言之,当发送系统和接收系统都可以切换到使用新的TRNP寻址信息时,TRNP寻址信息还包括指示预定即将到来的时刻(即,加密过程中的一个点)的信息。使用该TRNP寻址信息,直到被新的TRNP寻址信息块代替。当发送系统决定停止使用给定的TRNP寻址布置时,记录TRNP寻址信息块,包括该TRNP寻址布置的最后使用的文件、文件地址和文件步长。该记录使得在发送系统决定返回到保存的TRNP寻址布置的情况下能够快速恢复。
在图3中,同步TRN池210包括N个文件,并且任何给定的TRNP寻址布置将随机选择K个文件,示为文件-1、文件-2、文件-3、…文件-K。池寻址模块230使用K个当前地址中的每一个作为“起始地址”,并且在K个文件中的每一个内增加“步长”,以针对要加密的用户数据的每一个字节产生K个加密字节。下面参考图4A和图4B描述通过文件的逐步处理的细节。
在随机数合并模块240中,从K个文件地址中检索所产生的K个字节的内容在XOR270中进行异或,以产生用于加密/解密的最终密钥数据元素。
使用这种方法,通过置换每个文件中的元素,每组K个文件可以产生多个TRN序列。相对于那些文件中K*M个原始TRN,K个文件中TRN的置换组合指数地增加从K个文件中可获得的最终密钥数据元素的TRN流的总长度。扩展级别的精确计算尤其取决于置换文件内容的方法。
图4A和图4B示出了用于从图3的实施方式的文件中选择随机数的两个示例过程。请注意,这些过程将在K个独立的过程中运行,每个文件一个,并且这些独立的过程中的每个将使用自己的起始地址和步长。
过程400示出了如图4A所示置换每个文件的TRN内容的一个示例。选择文件中的初始起始索引以及与N(文件大小)互质的步长,然后通过顺次将步长添加到索引中,模(mod)N,文件中的每个位置将在返回到原始起始索引之前精确地访问一次,以便用新的互质数再次循环。
图4B中示出了使用质数置换每个文件的TRN内容的另一可能的过程450。选择文件的初始起始索引和质数步长,并识别大于文件M大小的下一个质数(M’)。然后,通过依次地将步长添加到索引上,模M’,文件中的每个位置将在返回到原始起始索引之前精确地访问一次,以便用新的质数再次循环。
参考图4A,寻址过程400开始于过程块402,其中,地址指针例如初始化为0。在过程块404,步长被初始化为与数组大小N互质的数字。在使用上述TRNP寻址信息块中定义的起始地址和步长的实施方式中,寻址过程400的地址指针和步长将被初始化为寻址信息块中定义的那些值,而不是过程404中定义的0和初始互质数。对于随后通过过程400,地址指针和步长将分别初始化为0和初始互质数。此外,该过程可以在任何点停止,并且地址指针和步长存储在TRNP寻址信息块中,以供以后使用,使得循环可以在其停止点恢复。
在过程块406,地址指针用于从数组中获得下一个随机数并输出结果。在过程块408,地址指针前进步长的当前值。
在过程块410,测试新的地址指针,以查看是否指向数组中的元素。如果指向数组中的元素,则过程循环回到过程块406,以获得下一个随机数。
如果当前地址指针没有指向数组中的元素,则过程块412测试,以查看地址指针是否刚好指向数组的最后一个元素之外(注意:由于大小为N的数组从0寻址到N-1,则当指针=N时,实际上指向最后一个元素之外的一个地址)。使用互质数的这种循环过程的特征在于,当地址达到N时,数组的每个元素已经在包括过程块406到414的内部循环中寻址。为了完成这个内部循环,在过程块412,如果地址指针没有刚好指向数组的最后一个元素之外,则地址指针指向数组的最后一个元素之外甚至更远,并且过程块414将地址指针设置为其当前值模N(即,将其除以N并使用整数余数),并且内部循环返回到过程406。
如果地址指针指向数组的最后一个元素,则内部循环完成,并且过程块416将步长设置为与N互质的下一个更大的值。可以在初始化时产生最多为N的互质数表,以促进该过程。
在过程块420,测试步长,以查看是否大于数组中的元素数量。如果不大于,则该过程循环回到过程块406,以获得下一个随机数,并在过程块406和过程块420之间重复外部循环。如果步长大于数组中的元素数量,则该过程停止。允许该过程在不重新初始化的情况下运行超过这个点,会产生复制的字符串。
参考图4B,寻址过程450开始于过程块452,其中,地址指针例如初始化为0。在过程块454,步长例如初始化为3。没有形成子循环的危险,因为循环限制(M’)被选择为质数,因此没有互质。此外,步长也被选择为质数,以避免各种步长之间的调和关系。如果确定步长之间的调和关系对于特定应用是可接受的,则可以放弃该要求,以换取池表观大小的显著增加。此外,识别大于M的下一个质数,其中,M是数组的大小。下一个大于M的质数被定义为M’。
在使用上述TRNP寻址信息块中定义的起始地址和步长的实施方式中,寻址过程450的地址指针和步长将被初始化为寻址信息块中定义的那些值,而不是过程块454中定义的0和初始质数。对于随后通过过程450,地址指针和步长将分别初始化为0和3。此外,该过程可以在任何点停止,并且地址指针和步长存储在TRNP寻址信息块中,以供以后使用,使得循环可以在其停止点恢复。
在过程块456,地址指针用于从数组中获得下一个随机数并输出结果。在过程块458,地址指针前进步长的当前值。
在过程块460,测试当前地址指针,以查看是否指向数组中的元素之外。如果不指向数组中的元素之外,则过程循环回到过程块416,以获得下一个随机数。
如果当前地址指针指向数组中的元素之外,则过程块462测试,以查看地址指针是否大于或等于M’。如果不大于或等于M’,则该过程循环回到过程块458,以推进地址指针。只要地址指针大于M,但小于M’,这个循环(即458、460、462)就重复。这种使用质数的循环过程的一个特征在于,当地址指针大于或等于M’时,数组的每个元素已经在由过程块456到462定义的内部循环中寻址。
一旦在过程块462地址指针大于或等于M’,则过程块464将地址指针设置为其当前值模M’(即,将其除以M’并使用整数余数)。在过程块465,测试新指针值,以查看是否等于零。如果不等于零,则过程循环回到过程块416,以获得下一个随机数。
如果指针等于零,则过程块466将步长设置为下一个更大的质数。可以在初始化时产生高达M’的质数表,以促进该过程。
在过程块470,测试步长,以查看是否大于数组中的元素数量。如果不大于数组中的元素数量,则该过程循环回到过程块456,以获得下一个随机数,并在过程块456和过程块470之间重复外部循环。如果步长大于数组中的元素数量,则该过程停止。允许该过程在不重新初始化的情况下运行超过这个点,会产生复制的字符串。
下面更详细地解释过程450,以给出具有实际数字的示例。首先,识别大于或等于M的最小质数(称为M’)。然后,小于M的所有质数都可以通过以下方式用作步长。如果向当前文件索引添加步长,导致新索引大于或等于M但小于M’,则继续向索引添加步长增量,直到大于或等于M’,然后减去M’,得到新文件索引。由于大约有x/ln(x)个质数小于x,所以这种对互质步长的先前使用的变化允许近似计算总TRN流长度的增加因子。因此,这种近似将用于下面的计算中,即使这只是置换文件内容的一种方法。
作为非限制性的示例来说明这个过程将如何工作,考虑小的15元素数组(M=15),地址从0到14,M’=最小的质数,等于或大于M,在当前情况下,M’=17。在过程块454和456中被选择的步长的质数是:3,5,7,11和13。规则是:p=(p+S)模M’,如果结果是p>=M,则继续根据需要添加S,直到p>=M’。因此,该过程将循环通过数组的地址,如下所示:
步长3--0 3 6 9 12 1 4 7 10 13 2 5 8 11 14(返回0)
步长5--0 5 10 3 8 13 1 6 11 4 9 14 2 7 12(返回0)
步长7--0 7 14 4 11 1 8 5 12 2 9 6 13 3 10(返回0)
步长11--0 11 5 10 4 9 3 14 8 2 13 7 1 12 6(返回0)
步长13--0 13 9 5 1 14 10 6 2 11 7 3 12 8 4(返回0)
可以看出,每个步长的循环触及每个地址一次,并且该过程通过每次以不同质数步长通过所有地址执行五个循环,将数组的可用地址序列从15扩展到75。为了便于描述,这个小的数组用作示例,一些实施方式可以使用明显更大的数组/文件。
在一种提高系统的实际或感知安全性的可选方法中,当来自每个文件的TRN重新排序几次(例如,可能10次)时,当前地址和步长将被记录为暂时退役的TRNP寻址信息块,并且随机选择新的TRNP寻址信息块来代替。新的TRNP寻址信息块将从其记录的文件、起始地址和步长值中提取。同时在发送系统和接收系统上发生新的TRNP寻址信息块的这种改变。改变的时间可以作为报头信息或其他合适的方法从发送系统上的池同步/再同步模块290发送到接收系统上的池同步/再同步模块290。
因此,使用这种密钥合并方法,可以为所有N个文件产生大约(N*(M^2))/(K*ln(M))字节的密钥数据。这意味着1TB TRN池210的密钥数据的效用增加了M/(K*ln(M))倍。
为了使数学描述更容易理解,描述了针对总共为1M×1M字节(即,1T字节)的静态TRN池210的示例,该池由1M个文件组成,每个文件包含1MB的随机字节。对于每个1M字节的1M文件的这个示例,假设100Mbit/s,每个具有1M字节的1M文件,TRN池210将持续1天(24/7),没有任何池重用。
在这个示例中,TRNP寻址信息块是用5个1M字节的文件来定义的。对于五个文件,五个字节的随机数据(五个文件中的每一个具有一个)在随机数合并模块240中进行异或,以产生要与明文数据元素202进行异或的最终密钥数据元素。
例如,发送方定义五个随机文件(例如,五个随机选择的文件)、每个相应文件内的五个起始地址和每个相应文件的五个步长,并将该信息作为报头内的寻址信息发送给接收方。在这个1M字节文件的示例中,寻址信息将是300比特长,因为将包括五个文件中的每一个的60比特信息(30比特用于起始地址,30比特用于步长)。
使用该示例,每组五个文件在回收之前可以产生一个82.3GB的序列(注意,不要使用非质数步长)。对于所有1M文件,该序列大约为16.4PB。这意味着1TB密钥数据的效用增加了约17,262倍。
关于可以稍后用于用户数据的对称加密的密钥数据的动态替换的加密,该过程将与上述过程相同,除了加密数据是密码本而不是用户数据以外。在所有情况下,密钥数据以及几组初始TRNG池将以安全的方式传送,例如,通过可信的通信员或防盗包装。
这些循环过程(400、450)将数据围成(fold)环,然后用N的互质数或质数<M’对环进行循环。因此,每次在外环产生不同的随机数序列。虽然每个序列本身都是随机的,但序列之间有确定的关系。
然而,如果所有密码本都是独立的(这是该系统所提供的,因为所有密码本都是由TRNG生成的),则用第二(或多个)密码本加密将会处理该问题。在对独立的随机数据集合进行异或的情况下,如果两个是好的,则更多是更好的。这源于这样一个事实:当对一对独立随机变量进行异或时,结果的熵等于或大于该对变量的最高熵,并且平均分布更平坦。
去除和/或减少序列之间的确定性关系的这种需要是随机选择多个文件(即,K个文件)的原因,每个文件独立地通过单循环过程,以生成其自己的密钥字节。执行单循环过程的多个版本的过程称为多循环过程。如上所述,来自K个文件中的每一个的密钥字节然后在随机数合并模块240中组合,以产生用于明文202加密的单个密钥字节。
如前所述,已发送的数据的先前块的报头可以包括TRNP寻址信息块,具有指向文件的指针、指向起始地址的指针和包含用于每个循环的步长的整数,以用于下一个块。需要TRNP寻址信息块的这种预先通信,因为解密每个数据块所需的信息不能在同一个块中,接收方需要已经拥有。解密第一块所需的数据存储在由可信的通信员交付的防盗包装中。
发送系统决定何时切换到不同的TRNP寻址信息块。当使用的数据量超过文件大小的固定倍数(例如,10)时,可以触发切换。当交换TRNP寻址信息块时,记录其下一个可用地址和步长,以备调回重新使用。当TRNP寻址信息块已经绕回其起始点时,不再可行并且删除。对于交换阈值为10的1MB文件,预期的可用寿命为75.6GB,当选择这样做时,在交换之前将保持使用10MB。预期交换大约7500次。
所有这些交换的原因是为了避免让窃听者有机会获得关于内部过程的任何信息,即使窃听者有明文样本。
图5是示出池扩展器220的框图,池扩展器220包括用于将生成的伪随机数与来自同步TRN池210的随机数密钥信息进行组合的过程。使用该过程,可以扩展TRNG生成的随机数的大固定集合的表观大小,例如,比方说2^36、64G,相当于当前的大拇指驱动器。
在一些实施方式中,伪随机数发生器250可以被配置为异或移位,其具有被选择来给出预定长度的参数,例如,2^64和高质量随机分布(例如,比梅森旋转算法更好)。异或移位是一种线性反馈移位寄存器,其以非常快的处理速度产生良好的结果。
其他伪随机数发生器250可以不同的效率使用,只要在前进通过其状态时产生随机数,但是具有预定义的结果。换言之,每一侧的池同步/再同步模块290可以使用初始化参数将每一侧的伪随机数发生器250设置为相同的初始状态,使得将在每个状态转换时产生相同的随机数。
如前所述,时钟204可用于确保池寻址模块230和伪随机数发生器250保持同步。换言之,在每个时钟事件,指向同步TRN池210的指针推进,并且伪随机数发生器250的状态推进,以创建新的伪随机数据元素252。伪随机数据元素252然后与来自同步TRN池210的密钥数据元素组合,以生成组合的密钥数据元素262。组合的密钥数据元素262然后可以用于加密明文数据元素202,以生成加密数据元素280。时钟还可以根据需要为同步、初始化或再同步的池同步/再同步模块290以及池寻址模块230和伪随机数发生器250提供时序。
在一些实施方式中,池寻址模块230将使用时钟204以线性方式仅将指针推进到固定同步TRN池210中,并且在到达终点时,设置为循环回到起点。该时钟还将触发异或移位到其下一状态,并且在到达终点时,退出并向异或移位提供新的参数和/或定义要从同步TRN池210使用的新文件。
基本上,该过程通过将伪随机数发生器250的输出与同步TRN池210的输出进行异或运算,将已经高质量的伪随机数转换成真随机数。
可以在传送同步TRN池210时(例如,可信的通信员、篡改证据等),提供定义伪随机数发生器250的参数的种子值(即初始化参数)。如果丢失,则可能需要恢复同步。这种重新同步可能需要将状态信息从发送器传输到接收器。失去同步意味着安全信道关闭,但不安全的以太网信道可用于通信。因此,可以通过以太网信道上的独立RCP加密路径来恢复同步。作为一个示例,发送器和接收器上可以包括小的RCP加密密码本,以提供用于恢复的信息。
回到图2的总体框图,可以看出,图3和图5的实施方式可以组合,使得在XOR 270获得的用于加密的密钥字节可以来自XOR 260,并且XOR 260可以将伪随机数发生器250的输出与来自随机数合并模块240的密钥数据元素组合。随机数合并模块240和池寻址模块230可以操作,以通过对同步TRN池210中的选定文件执行单个置换过程来提供密钥数据元素,如上面参考图4所讨论的。在其他实施方式中,随机数合并模块240和池寻址模块230可以操作,以组合来自多个文件的多个密钥数据元素,以通过如上所述对同步TRN池210执行多个置换(permutation)过程来生成最终密钥数据元素。在任一情况下,来自随机数合并模块240的密钥数据元素可以与来自伪随机数发生器250的组合密钥数据元素组合,以生成用于XOR 270的最终密钥数据元素。
图6示出了用于实践本公开的实施方式的计算系统600。作为非限制性示例,计算系统600可以是用户类型的计算机、文件服务器、计算服务器、笔记本计算机、平板电脑、手持装置、移动装置或用于执行软件的其他类似计算机系统。计算机、计算系统和服务器在本文可互换使用,以指示用于实践本公开的实施方式的系统。计算系统600被配置为执行包含计算指令的软件程序,并且包括一个或多个处理器610、内存620、存储器630、用户接口元素640和一个或多个通信元素650。计算系统600的一些实施方式可以包括一个或多个随机数发生器660,如以上结合图1至图6更全面解释的。
一个或多个处理器610可以被配置为执行各种操作系统和应用程序,包括用于执行本公开的实施方式的计算指令。
内存620可用于保存计算指令、数据结构和用于执行各种任务的其他信息,包括执行本公开的实施方式。通过示例而非限制的方式,内存620可以包括同步随机存取存储器(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、闪存等。
内存620可以包括被配置为存储信息的其他类型的存储器装置,包括易失性存储装置或非易失性存储装置。其它类型的内存620的示例包括纳米RAM或(NRAM)、基于纳米晶线的内存、基于氧化硅的亚10纳米工艺内存、石墨烯内存、氧化硅-氮化物-氧化硅(SONOS)、电阻随机存取内存(RRAM)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、相变RAM(PCRAM)、相变内存或其它固态存储介质。
存储器630可用于存储较大量的非易失性信息,以供计算系统600使用,并且可以被配置为一个或多个存储装置。通过示例而非限制的方式,这些存储装置可以包括计算机可读介质(CRM)。该CRM可以包括但不限于磁和光存储装置,例如,磁盘驱动器、磁带、光存储驱动器,例如CD(光盘)、DVD(数字通用盘或数字视频盘)和其他等效存储装置。
与计算系统600相关的信息可以通过一个或多个用户接口元素640呈现给用户以及从用户接收。作为非限制性示例,用户接口元素640可以包括诸如显示器、键盘、鼠标、操纵杆、触觉装置、麦克风、扬声器、相机和触摸屏之类的元素。计算系统上的显示器可以被配置为向图形用户界面(GUI)呈现关于本公开的实施方式的信息。
通信元素650可以被配置为与其他装置或通信网络通信。作为非限制性示例,通信元素650可以包括用于在有线和无线通信介质上通信的元素,例如,举例为串行端口、并行端口、以太网连接、通用串行总线(USB)连接IEEE 1394(“火线”)连接、闪电连接、雷电连接、蓝牙无线连接、802.1a/b/g/n型无线连接、蜂窝电话连接、TCP/IP、FTP、HTTP以及其他合适的通信接口和协议。
本文说明的软件过程旨在说明可由本文说明的系统执行的代表性过程。除非另有说明,描述过程动作的顺序并不旨在被解释为限制,并且被描述为依次发生的动作可以以不同的顺序发生或者以一个或多个并行的过程流发生。本领域普通技术人员将理解,除了流程图中概述的步骤和过程之外,还可以发生许多步骤和过程。此外,这些过程可以用任何合适的硬件、软件、固件或其组合来实现。
作为非限制性示例,用于执行过程的计算指令可以存储在存储器640上,传送到内存620,以供执行,并由处理器610执行。处理器610在执行被配置为执行这些过程的计算指令时,构成用于执行这些过程的结构,并且当这样配置时,可以被视为专用计算机。此外,该过程的一些或全部部分可以由专门配置为执行该过程的硬件来执行。
本说明书中描述的许多功能单元可以被标记为模块、线程或编程代码的其他分段,以便更特别地强调其实现独立性。模块可以以一种或另一种形式至少部分地以硬件实现。例如,模块可以被实现为硬件电路,包括定制VLSI电路或门阵列、现成的半导体,例如,逻辑芯片、晶体管或其他分立元素。模块也可以在可编程硬件装置中实现,例如,现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等。
还可以使用存储在物理存储装置630(例如,计算机可读存储介质)上、内存620中或其组合以由各种类型的处理器执行的软件来实现模块。
可执行代码的识别模块可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为线程、对象、过程或功能。然而,标识模块的可执行代码不需要物理地定位在一起,而是可以包括存储在不同位置的不同指令,当这些指令逻辑地结合在一起时,包括该模块并实现了该模块的所述目的。
实际上,可执行代码的模块可以是单个指令或多个指令,甚至可以分布在几个不同的代码段上、不同的程序之间以及几个存储器630或内存620装置上。类似地,在本文可以在模块内识别和示出操作数据,并且可以以任何合适的形式体现,并且组织在任何合适类型的数据结构中。可以收集操作数据,作为单个数据集,或者可以分布在不同的位置,包括不同的存储装置上,并且可以至少部分地仅仅作为电子信号存在于系统或网络上。在模块或模块的一部分以软件实现的情况下,软件部分存储在一个或多个物理装置上,这些物理装置在本文称为计算机可读介质。
在一些实施方式中,以非暂时状态存储软件部分,使得软件部分或其表示在同一物理位置持续一段时间。另外,在一些实施方式中,软件部分存储在一个或多个非暂时性存储装置上,这些装置包括能够存储表示软件部分的非暂时性状态和/或信号的硬件元素,即使非暂时性存储装置的其他部分能够改变和/或传输信号。非暂时性存储装置的一个示例包括只读存储器(ROM),其可以存储表示软件部分的信号和/或状态持续一段时间。然而,存储信号和/或状态的能力并没有因为传输与存储的信号和/或状态相同的或表示存储的信号和/或状态的信号的其他功能而减弱。例如,处理器可以访问ROM,以获得表示存储的信号和/或状态的信号,以便执行相应的软件指令。
虽然在本文已经针对某些图示的实施方式描述了本公开,但是本领域普通技术人员将认识到并理解,本公开不限于此。相反,在不脱离下文所要求保护的本公开的范围以及其合法等同物的前提下,可以对所示和所描述的实施方式进行许多添加、删除和修改。此外,来自一个实施方式的特征可以与另一实施方式的特征组合,同时仍然包含在发明人所设想的本公开的范围内。
本公开的附加非限制性实施方式包括:
计算系统,其被配置为执行加密过程,包括用于存储计算指令的一个或多个存储器和可操作地耦接到所述一个或多个存储器的一个或多个处理器。
Claims (28)
1.一种用于执行加密过程的计算机实现的方法,包括:
在第一计算系统上存储真随机数(TRN)池的第一副本,所述真随机数(TRN)池包括可单独寻址文件池中真随机数的密钥数据元素,其中,所述真随机数(TRN)池的第二副本存储在第二计算系统上;并且
使用池扩展器扩展所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池中的可单独寻址文件选择和重新使用所述密钥数据元素的随机化过程,从而在所述第一计算系统上产生最终密钥数据元素以加密明文数据元素,所述池扩展器定义了在所述真随机数的所述密钥数据元素退出使用之前多次使用所述真随机数(TRN)池中的真随机数的所述密钥数据元素的基本随机的方法,其中,所述随机化过程被配置为在所述第二计算系统上的所述真随机数(TRN)池的第二副本上执行,以使所述第一计算系统上的所述真随机数(TRN)池与所述第二计算系统上的所述真随机数(TRN)池一致,以便对所述第一计算系统和所述第二计算系统之间传送的数据元素进行加密和解密中的至少一者。
2.根据权利要求1所述的计算机实现的方法,还包括:
使用通过每个密钥数据元素对每个所述明文数据元素的加密操作,将所述明文数据元素和所述最终密钥数据元素组合,以产生加密数据元素;并且
将所述加密数据元素传输到所述第二计算系统。
3.根据权利要求2所述的计算机实现的方法,其中,所述第二计算系统包括接收装置,所述方法还包括在所述接收装置上执行以下:
存储所述真随机数(TRN)池的所述第二副本,其中,所述第二副本与所述第一副本匹配;
使用接收随机数合并模块扩展所述接收装置上的所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池的所述第二副本中的可单独寻址文件选择和重新使用所述密钥数据元素的随机化过程,以产生接收密钥数据元素,其中,所述接收装置上的所述随机化过程执行与发送装置上的所述随机化过程相同的功能,并且与所述发送装置上的所述随机化过程同步,使得所述接收密钥数据元素与所述最终密钥数据元素匹配;
接收所述加密数据元素;并且
使用解密操作将所述接收密钥数据元素与所述加密数据元素组合,以产生接收明文元素。
4.根据权利要求1所述的计算机实现的方法,还包括:
从所述第二计算系统接收加密数据元素;并且
使用针对每个所述加密数据元素和每个所述最终密钥数据元素的解密操作,将所述最终密钥数据元素和所述加密数据元素组合,以产生明文数据元素。
5.根据权利要求1至4中任一项所述的计算机实现的方法,还包括:
在所述第一计算系统和所述第二计算系统之间传送真随机数(TRN)池寻址信息,其中,所述真随机数(TRN)池寻址信息包括两个以上文件标识符、所述两个以上文件标识符中的每一个的起始地址以及所述两个以上文件标识符中的每一个的步长信息;并且
使用所述真随机数(TRN)池寻址信息定义所述加密过程中的预定即将到来的点处的新的随机化过程,其中,能够在所述第二计算系统上再现和同步所述加密过程中的所述预定即将到来的点。
6.根据权利要求1至4中任一项所述的计算机实现的方法,其中,所述随机化过程还包括:
包括被配置为提供两个以上寻址置换的池寻址模块,每个所述寻址置换被配置为通过以非先后顺序置换所述真随机数(TRN)池的文件中的数据元素来寻址所述真随机数(TRN)池的一个可单独寻址文件中的数据元素,以产生置换数据元素;并且
用异或运算组合来自所述两个以上寻址置换中的每一个的所述置换数据元素,以创建所述最终密钥数据元素。
7.根据权利要求6所述的计算机实现的方法,其中,所述两个以上寻址置换中的每一个包括步进过程,以使用一个或多个初始化参数在文件中循环,所述初始化参数包括起始地址和步长,所述步长被配置为通过在所述文件中执行多个循环来生成所述非先后顺序,其中,所述步长在每次经历所述循环时修改,并且所选择的文件的所有密钥数据元素被所述步进过程寻址。
8.根据权利要求1至4中任一项所述的计算机实现的方法,其中,所述随机化过程还包括:
执行植入有一个或多个初始化参数的伪随机数生成过程,以在该过程的每个后续状态产生伪随机数数据元素,其中,当植入有所述一个或多个初始化参数时,能够在所述第二计算系统上再现和同步所述伪随机数生成过程;
用异或运算将所述伪随机数据元素与来自所述真随机数(TRN)池中的所述可单独寻址文件的所述密钥数据元素组合,以创建组合的密钥数据元素;并且
使用所述组合的密钥数据元素作为所述最终密钥数据元素。
9.根据权利要求1至4中任一项所述的计算机实现的方法,其中:
存储所述真随机数(TRN)池的所述第一副本包括存储由真随机数(TRN)提供商提供的真随机数(TRN)池,并且其中,所述真随机数(TRN)池的所述第二副本也由所述真随机数(TRN)提供商提供;并且
所述方法还包括使用至少一个用户识别的随机化过程来修改所述真随机数(TRN)池的所述第一副本,以产生具有所述真随机数(TRN)提供商未知的用户特定修改的经修改的密钥数据元素,其中,所述至少一个用户识别的随机化过程被配置为使得能够在所述第二计算系统上的所述真随机数(TRN)池的所述第二副本上执行。
10.一种用于执行加密过程的计算机实现的方法,包括:
在发送装置上:
将包括真随机数的密钥数据元素的真随机数(TRN)池的第一副本存储在可单独寻址文件池中;
使用随机数合并模块扩展所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池的所述第一副本中的可单独寻址文件选择和重新使用所述密钥数据元素以产生最终密钥数据元素的随机化过程,包括所述随机数合并模块的池扩展器定义了在所述真随机数的所述密钥数据元素退出使用之前多次使用所述真随机数(TRN)池的所述第一副本中的真随机数的所述密钥数据元素的基本随机的方法;
使用加密操作将明文数据元素与所述最终密钥数据元素组合,以产生加密数据元素;并且
传输所述加密数据元素;并且
在接收装置上:
存储所述真随机数(TRN)池的第二副本,其中,所述第二副本与所述第一副本匹配;
使用接收随机数合并模块扩展所述接收装置上的所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池的所述第二副本中的可单独寻址文件选择和重新使用密钥数据元素以产生接收密钥数据元素的随机化过程,包括所述接收随机数合并模块的池扩展器定义了在所述真随机数的所述密钥数据元素退出使用之前多次使用所述真随机数(TRN)池的所述第二副本中的真随机数的所述密钥数据元素的基本随机的方法,其中,所述接收装置上的随机化过程执行与所述发送装置上的随机化过程相同的功能,并且与所述发送装置上的随机化过程同步,使得所述接收密钥数据元素与所述最终密钥数据元素匹配;
接收所述加密数据元素;并且
使用解密操作将所述接收密钥数据元素与所述加密数据元素组合,以产生接收明文元素。
11.根据权利要求10所述的计算机实现的方法,还包括:
在所述发送装置和所述接收装置之间传送真随机数(TRN)池寻址信息,其中,所述真随机数(TRN)池寻址信息包括两个以上文件标识符、所述两个以上文件标识符中的每一个的起始地址以及所述两个以上文件标识符中的每一个的步长信息;并且
使用所述真随机数(TRN)池寻址信息定义所述加密过程中的预定即将到来的点处的新的随机化过程,其中,能够在所述发送装置和所述接收装置上再现和同步所述加密过程中的所述预定即将到来的点。
12.根据权利要求10所述的计算机实现的方法,其中,所述发送装置上的随机化过程和所述接收装置上的随机化过程均还包括:
包括被配置为提供两个以上寻址置换的池寻址模块,每个所述寻址置换被配置为通过以非先后顺序置换所述真随机数(TRN)池的文件中的数据元素来寻址所述真随机数(TRN)池的一个可单独寻址文件中的数据元素,以产生置换数据元素;并且
用异或运算组合来自所述两个以上寻址置换中的每一个的所述置换数据元素,以在所述发送装置上创建所述最终密钥数据元素,并在所述接收装置上创建所述接收密钥数据元素。
13.根据权利要求10至12中任一项所述的计算机实现的方法,其中,所述发送装置上的随机化过程和所述接收装置上的随机化过程均还包括:
执行植入有一个或多个初始化参数的伪随机数生成过程,以在该过程的每个后续状态产生伪随机数数据元素,其中,当植入有所述一个或多个初始化参数时,能够在所述接收装置上再现和同步所述伪随机数生成过程;
用异或运算将所述伪随机数据元素与来自所述真随机数(TRN)池中的所述可单独寻址文件的所述密钥数据元素组合,以创建组合的密钥数据元素;并且
使用所述组合的密钥数据元素作为所述发送装置上加密操作的所述最终密钥数据元素,并且作为所述接收装置上解密操作的所述接收密钥数据元素。
14.根据权利要求10至12中任一项所述的计算机实现的方法,其中:
存储所述真随机数(TRN)池的所述第一副本和存储所述真随机数(TRN)池的所述第二副本包括存储由真随机数(TRN)提供商提供的真随机数(TRN)池;并且
所述方法还包括:
使用至少一个用户识别的随机化过程来修改所述真随机数(TRN)池的所述第一副本,以产生具有所述真随机数(TRN)提供商未知的用户特定修改的经修改的密钥数据元素;并且
使用所述至少一个用户识别的随机化过程来修改所述真随机数(TRN)池的所述第二副本,以产生具有所述真随机数(TRN)提供商未知的用户特定修改的经修改的密钥数据元素。
15.一种被配置为执行加密过程的计算系统,所述计算系统包括:
存储器,被配置为存储计算指令;并且
处理器,可操作地耦接到所述存储器并被配置为执行所述计算指令,所述计算指令被配置为:
将真随机数(TRN)池的第一副本存储在所述存储器中,所述真随机数(TRN)池包括可单独寻址文件池中真随机数的密钥数据元素,其中,所述真随机数(TRN)池的第二副本被配置为存储在第二计算系统上;
使用池扩展器扩展所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池中的可单独寻址文件中选择和重新使用所述密钥数据元素从而产生最终密钥数据元素的随机化过程,所述池扩展器定义了在所述真随机数的所述密钥数据元素退出使用之前多次使用所述真随机数(TRN)池中的真随机数的所述密钥数据元素的基本随机的方法,其中,所述随机化过程被配置为在所述第二计算系统上的所述真随机数(TRN)池的所述第二副本上执行,以使第一计算系统上的所述真随机数(TRN)池与所述第二计算系统上的所述真随机数(TRN)池一致,以便对所述第一计算系统和所述第二计算系统之间传送的数据元素进行加密和解密中的至少一者;
使用针对每个明文数据元素和每个密钥数据元素的加密操作,将所述明文数据元素和所述最终密钥数据元素组合,以产生加密数据元素;并且
将所述加密数据元素传输到所述第二计算系统。
16.根据权利要求15所述的计算系统,其中,所述计算指令还被配置为:
从所述第二计算系统接收所述加密数据元素;以及
使用针对每个加密数据元素和每个最终密钥数据元素的解密操作,将所述最终密钥数据元素和所述加密数据元素组合,以产生明文数据元素。
17.根据权利要求15所述的计算系统,还包括所述第二计算系统,所述第二计算系统包括接收装置,所述接收装置包括用于存储第二计算指令的第二存储器和可操作地耦接到所述第二存储器并被配置为执行所述第二计算指令的第二处理器,所述第二计算指令被配置为:
存储所述真随机数(TRN)池的第二副本,其中,所述第二副本与所述第一副本匹配;
使用接收随机数合并模块扩展所述接收装置上的所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池的所述第二副本中的可单独寻址文件中选择和重新使用所述密钥数据元素以产生接收密钥数据元素的随机化过程,其中,所述接收装置上的随机化过程执行与发送装置上的随机化过程相同的功能,并且与所述发送装置上的随机化过程同步,使得所述接收密钥数据元素与所述最终密钥数据元素匹配;
接收所述加密数据元素;并且
使用解密操作将所述接收密钥数据元素与所述加密数据元素组合,以产生接收明文元素。
18.根据权利要求17所述的计算系统,其中,所述计算指令还被配置为:
从所述第二计算系统接收加密数据元素;并且
使用针对每个加密数据元素和每个最终密钥数据元素的解密操作,将所述最终密钥数据元素和所述加密数据元素组合,以产生明文数据元素。
19.根据权利要求15至18中任一项所述的计算系统,其中,所述计算指令还被配置为:
在所述第一计算系统和所述第二计算系统之间传送真随机数(TRN)池寻址信息,其中,所述真随机数(TRN)池寻址信息包括两个以上文件标识符、所述两个以上文件标识符中的每一个的起始地址以及所述两个以上文件标识符中的每一个的步长信息;并且
使用所述真随机数(TRN)池寻址信息定义所述加密过程中的预定即将到来的点处的新的随机化过程,其中,能够在所述第二计算系统上再现和同步所述加密过程中的所述预定即将到来的点。
20.根据权利要求15至18中任一项所述的计算系统,其中,所述计算指令被进一步配置为执行随机化过程以执行以下:
包括被配置为提供两个以上寻址置换的池寻址模块,每个寻址置换被配置为通过以非先后顺序置换所述真随机数(TRN)池的文件中的数据元素来寻址所述真随机数(TRN)池的一个可单独寻址文件中的数据元素,以产生置换数据元素;并且
用异或运算组合来自所述两个以上寻址置换中的每一个的所述置换数据元素,以创建所述最终密钥数据元素。
21.根据权利要求20所述的计算系统,其中,所述两个以上寻址置换中的每一个包括步进过程,以使用一个或多个初始化参数在文件中循环,所述初始化参数包括起始地址和步长,所述步长被配置为通过在所述文件中执行多个循环来生成所述非先后顺序,其中,所述步长在每次经历所述循环时修改,并且所选择的文件的所有密钥数据元素被所述步进过程寻址。
22.根据权利要求15至18中任一项所述的计算系统,其中,所述计算指令被进一步配置为执行随机化过程以执行以下:
执行植入了一个或多个初始化参数的伪随机数生成过程,以在该过程的每个后续状态产生伪随机数数据元素,其中,当植入了所述一个或多个初始化参数时,能够在所述第二计算系统上再现和同步所述伪随机数生成过程;
用异或运算将所述伪随机数据元素与来自所述真随机数(TRN)池中的可单独寻址文件的所述密钥数据元素组合,以创建组合的密钥数据元素;并且
使用所述组合的密钥数据元素作为所述最终密钥数据元素以用于加密操作。
23.根据权利要求15至18中任一项所述的计算系统,其中,所述计算指令还被配置为:
将所述真随机数(TRN)池的所述第一副本存储为从真随机数(TRN)提供商接收的真随机数(TRN)池,并且其中,所述真随机数(TRN)池的所述第二副本也由所述真随机数(TRN)提供商提供;并且
使用至少一个用户识别的随机化过程来修改所述真随机数(TRN)池的所述第一副本,以产生具有所述真随机数(TRN)提供商未知的用户特定修改的经修改的密钥数据元素,其中,所述至少一个用户识别的随机化过程被配置为使得能够对所述第二计算系统上的所述真随机数(TRN)池的所述第二副本执行。
24.一种被配置为执行加密过程的计算系统,包括:
发送装置,包括用于存储第一计算指令的第一存储器和可操作地耦接到所述第一存储器并被配置为执行所述第一计算指令的第一处理器,所述第一计算指令被配置为:
将包括真随机数的密钥数据元素的真随机数(TRN)池的第一副本存储在可单独寻址文件池中;
使用随机数合并模块扩展所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池的所述第一副本中的可单独寻址文件中选择和重新使用所述密钥数据元素以产生最终密钥数据元素的随机化过程,包括所述随机数合并模块的池扩展器定义了在所述真随机数的所述密钥数据元素退出使用之前多次使用所述真随机数(TRN)池的所述第一副本中的真随机数的所述密钥数据元素的基本随机的方法;
使用加密操作将明文数据元素与所述最终密钥数据元素组合,以产生加密数据元素;并且
传输所述加密数据元素;
接收装置,包括用于存储第二计算指令的第二存储器和可操作地耦接到所述第二存储器并被配置为执行所述第二计算指令的第二处理器,所述第二计算指令被配置为:
存储所述真随机数(TRN)池的第二副本,其中,所述第二副本与所述第一副本匹配;
使用接收随机数合并模块扩展所述接收装置上的所述真随机数(TRN)池的表观大小,以创建用于从所述真随机数(TRN)池的所述第二副本中的可单独寻址文件中选择和重新使用所述密钥数据元素以产生接收密钥数据元素的随机化过程,包括所述接收随机数合并模块的池扩展器定义了在所述真随机数的所述密钥数据元素退出使用之前多次使用所述真随机数(TRN)池的所述第二副本中的真随机数的所述密钥数据元素的基本随机的方法,其中,所述接收装置上的随机化过程执行与所述发送装置上的随机化过程相同的功能,并且与所述发送装置上的随机化过程同步,使得所述接收密钥数据元素与所述最终密钥数据元素匹配;
接收加密数据元素;并且
使用解密操作将所述接收密钥数据元素与所述加密数据元素组合,以产生接收明文元素。
25.根据权利要求24所述的计算系统,其中,所述计算指令还被配置为:
在所述发送装置和所述接收装置之间传送真随机数(TRN)池寻址信息,其中,所述真随机数(TRN)池寻址信息包括两个以上文件标识符、所述两个以上文件标识符中的每一个的起始地址以及所述两个以上文件标识符中的每一个的步长信息;并且
使用所述真随机数(TRN)池寻址信息定义所述加密过程中的预定即将到来的点处的新的随机化过程,其中,能够在所述发送装置和所述接收装置上再现和同步所述加密过程中的所述预定即将到来的点。
26.根据权利要求24或25所述的计算系统,其中:
所述发送装置上的所述第一计算指令还被配置为执行随机化过程,以执行以下:
提供两个以上寻址置换,每个所述寻址置换被配置为通过以非先后顺序置换所述真随机数(TRN)池的文件中的数据元素来寻址所述真随机数(TRN)池的所述第一副本的一个可单独寻址文件中的数据元素,以产生置换数据元素;并且
用异或运算组合来自所述两个以上寻址置换中的每一个的所述置换数据元素,以在所述发送装置上创建所述最终密钥数据元素;并且
所述接收装置上的所述第二计算指令还被配置为执行随机化过程,以执行以下:
提供两个以上寻址置换,每个所述寻址置换被配置为通过以非先后顺序置换文件中的数据元素来寻址所述真随机数(TRN)池的所述第二副本的一个可单独寻址文件中的数据元素,以产生置换数据元素;并且
用异或运算组合来自所述两个以上寻址置换中的每一个的所述置换数据元素,以在所述接收装置上创建接收密钥数据元素。
27.根据权利要求24或权利要求25所述的计算系统,其中,所述发送装置上的所述第一计算指令和所述接收装置上的所述第二计算指令均被进一步配置为:
执行植入有一个或多个初始化参数的伪随机数生成过程,以在该过程的每个后续状态产生伪随机数数据元素,其中,当植入有上述一个或多个初始化参数时,能够在所述接收装置上再现和同步所述伪随机数生成过程;
用异或运算将所述伪随机数据元素与来自所述真随机数(TRN)池中的所述可单独寻址文件的所述密钥数据元素组合,以创建组合的密钥数据元素;并且
使用所述组合的密钥数据元素作为所述发送装置上加密操作的所述最终密钥数据元素并且作为所述接收装置上解密操作的所述接收密钥数据元素。
28.根据权利要求24或25所述的计算系统,其中:
所述发送装置上的所述第一计算指令均还被配置为:
从真随机数(TRN)提供商接收所述真随机数(TRN)池的所述第一副本;并且
使用至少一个用户识别的随机化过程来修改所述真随机数(TRN)池的所述第一副本,以针对所述真随机数(TRN)池的所述第一副本产生具有所述真随机数(TRN)提供商未知的用户特定的修改的经修改的密钥数据元素;并且
所述接收装置上的所述第二计算指令均还被配置为:
从所述真随机数(TRN)提供商接收所述真随机数(TRN)池的所述第二副本;并且
使用所述至少一个用户识别的随机化过程来修改所述真随机数(TRN)池的所述第二副本,以针对所述真随机数(TRN)池的所述第二副本产生具有所述真随机数(TRN)提供商未知的用户特定的修改的经修改的密钥数据元素。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762550068P | 2017-08-25 | 2017-08-25 | |
US62/550,068 | 2017-08-25 | ||
PCT/US2018/048010 WO2019040909A1 (en) | 2017-08-25 | 2018-08-24 | CRYPTOGRAPHIC SYSTEMS AND METHODS FOR EXTENDING THE APPARENT SIZE OF GROUPS OF REAL RANDOM NUMBERS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111034115A CN111034115A (zh) | 2020-04-17 |
CN111034115B true CN111034115B (zh) | 2023-10-20 |
Family
ID=65439261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880054728.9A Active CN111034115B (zh) | 2017-08-25 | 2018-08-24 | 用于扩展真随机数池的表观大小的加密系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11362813B2 (zh) |
EP (1) | EP3673611A4 (zh) |
CN (1) | CN111034115B (zh) |
AU (1) | AU2018321922A1 (zh) |
CA (1) | CA3073880A1 (zh) |
IL (1) | IL272504B2 (zh) |
WO (1) | WO2019040909A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL272504B2 (en) | 2017-08-25 | 2024-05-01 | 7Tunnels Inc | Cryptographic systems and methods for expanding the apparent size of real random number stores |
US20230082077A1 (en) * | 2020-02-28 | 2023-03-16 | 7Tunnels Inc. | Cryptographic systems and methods for maintenance of pools of random numbers |
US20230083850A1 (en) * | 2020-03-02 | 2023-03-16 | 7Tunnels Inc. | Cryptographic systems and methods for development of pools of random numbers |
CN111901100B (zh) * | 2020-06-17 | 2023-03-24 | 南京如般量子科技有限公司 | 基于对称密钥池的数据链抗量子计算通信方法及系统 |
CN111814212B (zh) * | 2020-09-07 | 2020-12-18 | 南京芯驰半导体科技有限公司 | 总线数据的保护方法、装置、存储介质及芯片 |
WO2022245817A1 (en) * | 2021-05-17 | 2022-11-24 | Matrics2, Inc. | Using globally-unique numbers for all secure unique transactions, authentications, verifications, and messaging identities |
CN114584368A (zh) * | 2022-03-02 | 2022-06-03 | 上海图灵智算量子科技有限公司 | 基于量子真随机数的智能家居保密通信系统及控制方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012139174A1 (en) * | 2011-04-15 | 2012-10-18 | Quintessencelabs Pty Ltd | Qkd key management system |
KR101813481B1 (ko) * | 2013-12-23 | 2017-12-29 | 인텔 코포레이션 | 사용자 정보를 익명 처리하는 장치, 저장 매체 및 방법 |
CN107787568B (zh) * | 2015-04-24 | 2021-09-07 | 7隧道公司 | 随机密码密码本密码学 |
CN107086908B (zh) * | 2016-02-15 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 一种量子密钥分发方法及装置 |
AU2017308060B2 (en) * | 2016-08-12 | 2021-12-23 | 7Tunnels, Inc. | Devices and methods for enabling portable secure communication using random cipher pad cryptography |
US11082211B2 (en) * | 2016-08-12 | 2021-08-03 | 7Tunnels, Inc. | Systems and methods for secure communication using random cipher pad cryptography |
IL272504B2 (en) | 2017-08-25 | 2024-05-01 | 7Tunnels Inc | Cryptographic systems and methods for expanding the apparent size of real random number stores |
WO2019143528A1 (en) * | 2018-01-16 | 2019-07-25 | 7Tunnels, Inc. | Cryptographic systems and methods for modification of pools of truly random numbers |
-
2018
- 2018-08-24 IL IL272504A patent/IL272504B2/en unknown
- 2018-08-24 CN CN201880054728.9A patent/CN111034115B/zh active Active
- 2018-08-24 US US16/637,806 patent/US11362813B2/en active Active
- 2018-08-24 AU AU2018321922A patent/AU2018321922A1/en active Pending
- 2018-08-24 EP EP18848991.8A patent/EP3673611A4/en active Pending
- 2018-08-24 WO PCT/US2018/048010 patent/WO2019040909A1/en unknown
- 2018-08-24 CA CA3073880A patent/CA3073880A1/en active Pending
-
2022
- 2022-06-02 US US17/830,333 patent/US11924328B2/en active Active
Non-Patent Citations (1)
Title |
---|
Key Recycling in Authentication;Christopher Portmann;《IEEE Transactions on Information Theory》;20140414;摘要,第I-V部分 * |
Also Published As
Publication number | Publication date |
---|---|
IL272504B2 (en) | 2024-05-01 |
AU2018321922A1 (en) | 2020-02-20 |
CN111034115A (zh) | 2020-04-17 |
US11362813B2 (en) | 2022-06-14 |
CA3073880A1 (en) | 2019-02-28 |
IL272504A (en) | 2020-03-31 |
US11924328B2 (en) | 2024-03-05 |
EP3673611A1 (en) | 2020-07-01 |
EP3673611A4 (en) | 2021-04-28 |
US20220303118A1 (en) | 2022-09-22 |
IL272504B1 (en) | 2024-01-01 |
US20210218553A1 (en) | 2021-07-15 |
WO2019040909A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111034115B (zh) | 用于扩展真随机数池的表观大小的加密系统和方法 | |
CN109565510B (zh) | 使用随机加密密码本加密法进行安全通信的系统和方法 | |
US10979221B2 (en) | Generation of keys of variable length from cryptographic tables | |
US8416947B2 (en) | Block cipher using multiplication over a finite field of even characteristic | |
US7945049B2 (en) | Stream cipher using multiplication over a finite field of even characteristic | |
JP5167374B2 (ja) | データ暗号化装置、及び、メモリカード | |
AU2017308060B2 (en) | Devices and methods for enabling portable secure communication using random cipher pad cryptography | |
CA3056814A1 (en) | Symmetric cryptographic method and system and applications thereof | |
CN111602113A (zh) | 用于修改真随机数池的密码系统和方法 | |
US20100124328A1 (en) | Extensive ciphertext feedback | |
TWI751075B (zh) | 記憶體中的不可複製函數應用 | |
KR20180065183A (ko) | Cctv 카메라 영상보안 암호화 임베디드 모듈 | |
US20230082077A1 (en) | Cryptographic systems and methods for maintenance of pools of random numbers | |
Kadry et al. | An improvement of RC4 cipher using vigenère cipher | |
Pushpa | Enhancing Data Security by Adapting Network Security and Cryptographic Paradigms | |
CN108777622B (zh) | 一种二进制流散列取模加密解密方法 | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design | |
US20230083850A1 (en) | Cryptographic systems and methods for development of pools of random numbers | |
Ahuja et al. | Dual layer secured password manager using Blowfish and LSB | |
Tripathi et al. | Survey on performance comparison of various symmetric encryption algorithms | |
Mahmood et al. | Improving Security Using Cryptography Based on Smartphone User Locations | |
JP2014232906A (ja) | 暗号処理システム | |
Devi et al. | A Research: Image Encryption Using Chaotic and Logistic Map and Pixel Hobbling |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40017202 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |