CN107787568A - 随机密码密码本密码学 - Google Patents

随机密码密码本密码学 Download PDF

Info

Publication number
CN107787568A
CN107787568A CN201680036990.1A CN201680036990A CN107787568A CN 107787568 A CN107787568 A CN 107787568A CN 201680036990 A CN201680036990 A CN 201680036990A CN 107787568 A CN107787568 A CN 107787568A
Authority
CN
China
Prior art keywords
rcp
data
encryption
computing system
key
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.)
Granted
Application number
CN201680036990.1A
Other languages
English (en)
Other versions
CN107787568B (zh
Inventor
迈克尔·L·哈蒙
凯文·R·麦卡锡
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.)
7Tunnels Inc
Original Assignee
7Tunnels Inc
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 7Tunnels Inc filed Critical 7Tunnels Inc
Publication of CN107787568A publication Critical patent/CN107787568A/zh
Application granted granted Critical
Publication of CN107787568B publication Critical patent/CN107787568B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

用于服务器的方法包括定义起始元素和元素步长。以预定的非顺序次序使用数据RCP中的每个元素一次以将密码本映射应用至数据随机密码密码本(RCP),以便获得密钥RCP。起始元素和元素步长与数据RCP结合。使用密钥RCP加密数据RCP以产生后续数据RCP。后续数据RCP被传输至另一个计算机。用于客户端的方法包括以预定的非顺序次序使用数据RCP中的每个元素一次,以将密码本映射应用至数据RCP而获得密钥RCP,以便开发密钥RCP。使用数据RCP加密密钥RCP以产生后续密钥RCP。使用数据RCP加密数据结构以产生加密的数据结构。

Description

随机密码密码本密码学
相关申请的交叉引证
本申请要求于2015年4月24日提交的题为Dual Use Pad Encryption Using One-time Pads的美国临时专利申请序号62/152,816的提交日期的权益,其全部公开内容通过引证结合于此。
技术领域
本公开的实施方式总体上涉及密码学,并且更具体地,涉及使用与一次一密相似的数据和结构的加密和解密。
背景技术
密码学对于包括但当然不限于涉及财务数据、医学数据和政府机密数据的通信的许多类型的通信是重要的。许多类型的加密很难解密,但是最终可以被破解。其他类型的加密具有使解密相对简单的明显弱点。常规的一次一密通常被认为是完全安全并且不可破解的。然而,常规的一次一密具有与如何传达一次一密以将它们保密相关的缺点。此外,对于常规的一次一密,密钥的长度等于要加密的数据的长度,即使一次一密的安全传达是可能的,这对于低带宽应用来说也可能是不合适的。
附图说明
图1是示出了用于实践本公开的实施方式的计算***的框图。
图2是示出了用于消息加密的包括随机密码密码本(RCP)服务器和RCP客户端的***的框图。
图3示出了用于产生映射索引、使用该映射索引将数据RCP映射至密钥RCP、以及将数据RCP直接映射至密钥RCP的过程。
图4示出了用于在RCP服务器上创建新的RCP、在客户端上从加密的RCP产生新的RCP、发送加密消息、以及解密所接收的消息的过程。
图5A是示出了RCP中枢的实施方式的简化框图。
图5B是示出了使用预加载的RCP库的RCP客户端的实施方式的简化框图。
图6是示出了使用本公开的一个或多个实施方式的无人驾驶飞行器(UAV)***的框图。
图7是示出了使用本公开的一个或多个实施方式的飞机通信***的框图。
图8是示出了使用本公开的一个或多个实施方式的监控和数据采集(SCADA)***的框图。
具体实施方式
在以下的详细描述中,参考形成本描述的一部分的附图,并且在附图中以图示的方式示出了可以实践本公开的具体实施方式。充分详细地描述了这些实施方式以使本领域中的普通技术人员能够实践本公开。然而,可以利用其他实施方式,并且可以在不偏离本公开的范围的情况下对结构、材料和过程做出改变。本文中呈现的图示不意味着是任何特定方法、***、装置或结构的实际视图,而仅是采用以描述本公开的实施方式的理想化表达。本文中呈现的附图不必按比例绘制。为了读者的便利,各个附图中的相似结构或部件可保持相同或相似编号;然而,编号中的相似性不意味着结构或部件在大小、组成、配置或者任何其他特性上必须相同。
将容易理解,如本文中总体上描述和附图中示出的实施方式的部件可以各种各样的不同配置进行布置和设计。因此,各种实施方式的以下描述不旨在限制本公开的范围,而是仅表示各种实施方式。尽管可在附图中呈现实施方式的各个方面,但是除非特别指出,否则附图不必按比例绘制。
此外,示出和描述的特定实现方式仅是实例,并且除非在本文中另有指定,否则不应解释为实现本公开的唯一方式。为了不使本公开在不必要的细节中模糊,可以框图的形式示出元件、电路和功能。相反地,示出和描述的特定实现方式仅是示例性的,并且除非在本文中另有指定,否则不应解释为实现本公开的唯一方式。另外,框限定和各个框之间的逻辑分区是特定实现方式的示例。对本领域中普通技术人员而言将是显而易见的是,可以通过许多其他分区解决方案实践本公开。在很大程度上,已经省去了涉及时间因素等的细节,这种细节对获得本公开的彻底理解不是必需的并且在相关领域中的普通技术人员的理解能力内。
本领域中的普通技术人员将理解,可以使用各种不同的科技和技术中的任一者表示信息和信号。例如,可以贯穿本描述中引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或者它们的任何组合来表示。为了清楚呈现和描述的目的,一些附图可以将多个信号示出为单个信号。本领域中的普通技术人员将理解,信号可以表示信号总线,其中,该总线可具有各种位宽并且本公开可以在包括单个数据信号的任意数量的数据信号上实现。
结合本文中公开的实施方式描述的各种说明性逻辑块、模块和电路可以利用通用处理器、专用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件部件、或者被设计成执行本文中描述的功能的它们的任何组合来实现或执行。通用处理器可以是微处理器,但是可替代地,处理器可以是任何常规处理器、控制器、微控制器或者状态机。处理器还可被实现为计算装置的组合,诸如,DSP与微处理器的组合、多个微处理器、结合DSP核的一个或多个微处理器或者任何其他这种配置。包括处理器的通用计算机被认为是专用计算机,同时通用计算机被配置为实施与本公开的实施方式相关的计算指令(例如,软件代码)。
另外,应注意,可以根据描述为流程图、作业图、结构图或者框图的过程描述实施方式。尽管流程图可以将操作行为描述为顺序过程,但是这些行为中的许多可以以另一顺序、并行或者基本上同时地执行。此外,可以重新布置行为的顺序。过程可以对应于方法、线程、功能、流程、子程序、辅程序等。此外,本文中公开的方法可以在硬件、软件或者硬件和软件中实现。如果在软件中实现,则该功能可存储为计算机可读介质上的一个或多个指令或代码或作为其发送。计算机可读介质包括计算机存储介质和通信介质,通信介质包括促进将计算机程序从一个地方转移到另一个地方的任何介质。
应当理解,本文中使用诸如“第一”、“第二”等指示的对元件的任何引用不局限于那些元件的数量或顺序,除非明确说明这种限制。相反地,这些指示可以在本文中用作区分两个或更多个元件或者一个元件的多个实例的便利方法。因此,引用第一元件和第二元件不意味着在此仅可以采用两个元件或者第一元件必须以某些方式在第二元件之前。此外,除非另有说明,否则一组元件可以包括一个或多个元件。
本文中描述的元件可包括相同元件的多个实例。这些元件通常可以由数字指示符(例如,110)表示,并且由后跟字母指示符的数字表示符(例如,110A)或者前面是“破折号”的数字表示符(例如,110-1)特定地表示。为了便于以下描述,在很大程度上,元件编号表示符以附图编号开始,在该附图上元件被介绍或最充分地讨论。因此,例如,图1上的元件标识符将大部分是数字格式1xx并且图4上的元件将大部分是数字格式4xx。
本文中包括的标题有助于定位详细说明的某些部分。这些标题不应被认为是限制在任何特定标题下描述的概念的范围。此外,在任何特定标题中描述的概念通常可以应用在贯穿整个说明书的其他部分中。
如本文中使用的,关于给定的参数、特性或条件的术语“基本上”意味着并包括到这样一个程度,即本领域中普通技术人员将理解给定的参数、特性或条件满足诸如在可接受的制造公差内的小的变化程度。举例来说,根据基本上满足的具体参数、特性或条件,该参数、特性或条件可以至少90%满足,至少95%满足,或者甚至至少99%满足。
贯穿此说明书,“一个实施方式”、“实施方式”或者类似语言意味着结合表示的实施方式所描述的具体的特征、结构或特性包含在本公开的至少一个实施方式中。因此,贯穿本说明书的短语“在一个实施方式中”、“在实施方式中”和类似语言可以但是不必全部指代相同的实施方式。
图1示出了用于实践本公开的实施方式的计算***100。作为非限制性实例,计算***100可以是用户型计算机、文件服务器、计算服务器、笔记本计算机、平板电脑、手持装置、移动装置、或者用于实施软件的其他类似的计算机***。在本文中可以可互换地使用计算机、计算***和服务器以表示用于实践本公开的实施方式的***。计算***100被配置为实施包含计算指令的软件程序并且包括一个或多个处理器110、存储器120、存储装置130、用户界面元件140和一个或多个通信元件150。如以下结合图2至图5B更充分解释的,计算***100的一些实施方式可包括一个或多个随机数生成器160。
一个或多个处理器110可被配置为实施各种各样的操作***以及包括用于执行本公开的实施方式的计算指令的应用。
存储器120可以用于保持计算指令、数据结构、以及用于执行包括执行本公开的实施方式的各种各样的任务的其他信息。举例来说,但是不受限制,存储器120可包括同步随机存取存储器(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、闪速存储器等。
存储器120可包括被配置为存储信息的其他类型的存储器装置,包括易失性存储装置或者非易失性存储装置。其他类型的存储器120的实例包括纳米RAM或者(NRAM)、纳米晶体有线存储器、基于氧化硅的子-10纳米工艺存储器、石墨烯存储器、氧化硅氮氧化硅(SONOS)、电阻式随机存取存储器(RRAM)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、相变RAM(PCRAM)、相变存储器、或者其他固态存储介质。
存储装置130可以用于存储计算***100中使用的相对大量的非易失性信息并且可以配置为一个或多个存储装置。举例来说,但是不受限制,这些存储装置可包括计算机可读介质(CRM)。该CRM可包括但是不限于,诸如磁盘驱动器的磁光存储装置、磁带、诸如CD(光盘)的光存储驱动器、DVD(数字通用光盘或者数字视频盘)、以及其他等同的存储装置。
与计算***100相关的信息可以利用一个或多个用户界面元件140呈现给用户并且从用户接收。作为非限制性实例,用户界面元件140可包括诸如显示器、键盘、鼠标、操纵杆、触觉装置、麦克风、扬声器、照相机和触摸屏的元件。计算***上的显示器可以被配置为利用有关本公开的实施方式的信息呈现图形用户界面(GUI)。
通信元件150可被配置为与其他装置或者通信网络通信。作为非限制性实例,通信元件150可包括用于在有线和无线通信介质上通信的元件,诸如,串行端口、并行端口、以太网连接、通用串行总线(USB)连接IEEE1394(“火线”)连接、蓝牙无线连接、802.1a/b/g/n类型的无线连接、蜂窝电话连接、TCP/IP、FTP、HTTP、以及其他合适的通信接口和协议。
本文中示出的软件过程旨在说明可以通过本文中示出的***执行的典型过程。除非另有指定,否则描述的该过程行为的顺序不旨在被解释为限制,并且如连续发生所描述的行为可以不同的顺序发生,或者以一个或多个并行过程流发生。本领域中的普通技术人员将理解,除了流程图中概括的那些之外,还可以发生许多步骤和过程。此外,该过程可以在任何合适的硬件、软件、固件或其组合中实现。
通过非限制性实例的方式,用于执行过程的计算指令可以存储在存储装置140上、转移至存储器120以用于执行、并且由处理器110执行。当执行被配置为执行该过程的计算指令时,处理器110构成用于执行该过程的结构并且当如此配置时可以被认为是专用计算机。此外,过程的一些或者所有部分可以由被专门配置为执行该过程的硬件执行。
本说明书中描述的许多功能单元可被标记为模块、线程、或者编程代码的其他分离,以便更具体地强调其实现独立性。模块可以以一个形式或另一形式至少部分地以硬件实现。例如,模块可以被实现为包括定制VLSI电路或门阵列的硬件电路、诸如逻辑片的现成半导体、晶体管或者其他分立部件。模块还可以以诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等的可编程硬件装置实现。
模块还可以使用存储在物理存储装置130(例如,计算机可读存储介质)上、在存储器120中的软件或其组合实现,以用于由各种类型的处理器实施。
例如,识别的可执行代码的模块可以包括计算机指令的一个或多个物理或逻辑块,其例如可被组织为线程、对象、流程或功能。然而,识别的模块的可执行文件不必物理地定位在一起而是可包括存储在不同位置中的完全不同的指令,当这些指令在逻辑上连接在一起时,包括模块并且实现模块的所述目的。
实际上,可执行代码的模块可以是单个指令或者许多指令,并且甚至可以分布在不同程序中的几个不同的代码段上,并且跨越几个存储装置130或者存储器装置120。类似地,在本文中可在模块中标识和示出操作数据,并且操作数据可以任何合适的形式体现并且被组织在任何合适类型的数据结构内。操作数据可以收集为单个数据集,或者可分布在包括不同存储装置上的不同位置上,并且可至少部分地仅存在为***或网络上的电子信号。在软件中实现模块或者模块的一部分的情况下,软件部分被存储在一个或多个物理装置上,这些物理装置在本文中被称为计算机可读介质。
在一些实施方式中,软件部分以非临时性状态存储,使得软件部分或者其表示在一段时间持续在相同的物理位置。另外,在一些实施方式中,软件部分被存储在一个或多个非临时性存储装置上,即使非临时性存储装置的其他部分可能能够改变和/或传输信号,但是这些存储装置包括能够存储表示软件部分的非临时性状态和/或信号的硬件元件。非临时性存储装置的一个实例包括可以在一段时间存储表示软件部分的信号和/或状态的只读存储器(ROM)。然而,存储信号和/或状态的能力不会由传输与所存储的信号和/或状态相同或者表示所存储的信号和/或状态的信号的进一步功能减弱。例如,处理器可以访问ROM以获得表示所存储的信号和/或状态的信号,以便实施对应的软件指令。
本文中描述的实施方式促进随机密码密码本(RCP)的利用,该随机密码密码本可以是稍微类似于常规的一次一密,但是以新的和不同的方式使用。RCP不仅用于加密信息(例如,文档、媒体流和数据文件),而且用于加密反过来可以由最初的用户递归使用的后续RCP。
常规的一次一密加密通常被认为是不可破解的。类似地,只要为发起方和接收方设置递归地使用RCP的方法,RCP就包含这些不可破解的属性。因此,只要产生RCP的一方继续发送由之前的RCP加密的后续RCP并且所使用的RCP被销毁,则它们可以使用无数个RCP。
由于RCP加密不能被破解,因此传输的拦截通常不能帮助侵入者。在最坏的情况下,预期的接收方将不能接收旨在给他的传输并且将联系发送方,从而发现信息的窃取或丢失。
在一些实施方式中,最初的RCP交换安装在电子环境“外部”完成,或者以具有发送方和接收方的完全认证的高度安全的方式完成。这导致每个后续RCP不能被解密的情况,并且因此不能被拦截使用。
这种设置使企业(例如,需要向符合健康保险流通与责任法案(HIPPA)的成千上万的客户发送医疗记录的HMO)具有确保客户或者参与者信息不被盗的方式。
如另一实例,它还保证两个政府机构(例如,司法部和财政部)之间的信息的传输在传输期间始终是安全的。
常规的一次一密当前用于广泛使用或甚至企业使用是不实用的,因为每个密码本是单一事件并且发送方和接收方必须具有用于每次传输的相同的密码本。相同的密码本是加密和解密的必要条件。迄今为止,发送方与接收者之间的常规的一次一密使用可破解的公共密钥加密(PKE)进行交换。使用PKE来“保证”密码本的交换是不安全的,并且越来越脆弱。为每次新的使用手动(例如,通过邮件或快递)传递新的密码本是不切实际的、成本高的并且效率低的;另外,将每个连续的密码本送入一个或多个接收方的手中的方法造成漏洞。
以单独的或者累积的实施方式呈现的以下方面呈现了RCP加密方法或过程可能实现的功能机会。通常,RCP可以用于数据加密并且单独地用于加密过程本身的加密特征。换言之:
1.原始的RCP可用于加密以用来电子地传输也是不可破解的新的、不相关的RCP。
2.使用在其之前的RCP加密新的不相关的RCP,意味着新的RCP即使被拦截也不能被解密或使用。
3.多个新的RCP可以由原始的用户(与它们所加密的文档或者信息一起或者单独地)产生和传输。
换句话说,本公开的实施方式包括用于提供密码流程的设备和方法,该密码流程包括将当前的RCP重新映射到用于安全地传递替换RCP的不相关随机变量中。这些实施方式被配置为减少和/或消除攻击面。这个递归过程暗示最初的RCP和映射数据可以结合原始的软件安装而被安装,作为端点注册过程的一部分。最初的RCP和映射数据可以配置为使得它们包括服务器或其他装置上的匹配数据。为了确保***的完整性,包括最初的RCP的最初的安装应该使用高的安全性协议来完成。
在描述特定实施方式之前,并且为了促进本公开中的描述,本文中描述了各种术语。在多义性可能存在于普通含义、字典含义以及本文中描述的术语之间的情况下,本领域中的普通技术人员将理解,本文中描述的术语将最好地符合对本公开的实施方式的更全面的理解。
“真随机数生成器”(TRNG)是硬件装置,并且如果需要的话还有相关联的软件,用于从无法预测的量子或非量子物理过程产生真正的随机数。这些过程的量子实例包括核衰变、穿透部分透明镜的光子、以及真空能量中的起伏现象。非量子实例包括热噪声、时钟漂移和RF噪声。
“一次一密”(OTP)是常规的随机密码密钥对,其中,每个密钥对仅使用一次并然后被销毁。该对中的一个密钥用于加密消息并且该对中的另一个密钥用于解密加密的消息。普通的OTP是对称的加密方法并且密钥是相同的。
“随机密码密码本”(RCP)是根据本公开的实施方式的OTP的不同的形式。术语RCP可以用作各种类别的RCP的通用术语。RCP是例如从一个或多个TRNG收集的真正的随机数的集合。使用单词“随机”通过提及密码的真正随机性质而唤起OTP提供的保护。尽管RCP的大小可以在实例化之间改变,或者也许甚至在具体的实例化内改变,但是在许多情况下,RCP以千字节或者甚至更大的单位来测量。
“RCP池”是RCP的集合。RCP池内的每个RCP可以由该池内的唯一的数字(例如,顺序整数)识别。每个包括独特的128位数字的全球唯一标识符(GUID)可以用作使得这个数字的精心构造可以保证任何具体***内的全局唯一性的标识符。因此,在一些实施方式中,每个RCP池可以用GUID来标识。此外,尽管简单的顺序标识符可以用于标识RCP池内的每个RCP,但是反过来也可以使用GUID、RCP的散列、或者其他类型的唯一标识符来标识RCP池内的每个RCP。
“数据RCP”是用于加密和解密两个或更多个端点之间的通信的一种RCP。每个数据RCP仅使用一次。
“密钥RCP”是用于加密和解密数据RCP以电子方式安全地将其转移的一种RCP。每个密钥RCP仅使用一次。
“映射”是将使用过一次的数据RCP转换为密钥RCP以用于后续数据RCP的安全转移的过程。
“映射索引”是以随机顺序包括在数据RCP中从一至单位数量(例如,字节、字等)的整数的数字列表。映射索引可以被加密并发送至具体通信信道的适合端点并且可以用作将数据RCP转换为密钥RCP的过程的一部分。
术语“加密的”、“加密的数据”、“加密的数据结构”以及“加密的消息”指的是通过根据本公开的实施方式的加密过程传递的数据。作为非限制性实例,加密的数据可以通过在纯文本消息与RCP之间执行按位异或来产生。
术语“解密的”、“解密的数据”、“解密的数据结构”以及“解密的消息”指的是先前加密的并且已经返回至它的原始值的数据。作为非限制性实例,解密的数据可以通过在加密消息与用于加密纯文本消息的相同RCP之间执行按位异或来产生。
术语“未加密的”、“未加密数据”、“未加密数据结构”以及“未加密消息”指的是从未加密的数据。
术语“交换的”指的是以其中使用多个RCP加密数据的顺序无关紧要的方式应用多个RCP的特征。换言之,只要使用相同的一组RCP用于加密和解密,则使用不同顺序的RCP用于加密和解密将产生相同的最终结果。
术语“密码本(pad)”通常可在本文中用于指代根据本公开的实施方式的RCP。相反,常规的一次一密被明确地称为常规的一次一密或者一次一密并且不简单地称为密码本。
实现概述
在详细描述每一个附图之前,本部分描述某些实施方式的概述。本文中描述的装置和方法的实施方式允许当前使用的RCP重新用于加密和发送下一个RCP。因为在这种情况下数据纯粹是随机的并且当前RCP在使用之后被销毁,因此没有执行密码分析的机会。
此外,在一些实施方式中,因为另外的安全措施,尽管使用RCP,但是采样序列可能不是顺序的。例如,许多随机性方法中的一个可能使用在随机的密码本地址的RCP开始,并且然后使用随机的步长通过RCP前进。有关起始地址和步长的信息将与要解密的数据一起发送至解密装置。
RCP加密的特点是如果使用异或操作来加密数据,则第二次(利用相同的RCP数据)应用异或(XOR)将解密数据。因此,加密和解密过程类似。然而,加密和解密不限于使用XOR作为用于RCP编码器和解码器的加密算子。可以使用任何合适的对称操作。
由于使用旧的RCP来加密和下载新的RCP,因此一些实施方式针对使用的第一个RCP的原点。在一些实施方式中,每对安装都是独特的并且包含相对大的种子RCP。在一些实施方式中,种子RCP决不删除并且仅在产品初始化和产品灾难恢复期间使用。在几次使用之后,可以替换种子RCP。这个过程将通过使用防篡改传输或者快递递送来完成。
以下描述用于发送安全文档的过程的实施方式。在这个描述中,假设双方(指定为“A”和“B”)已经完成了产品的安装和初始化。
1.A具有文档并且想要将其发送至B。
2.该过程执行任何要求的预处理并且开始逐字节扫描该文档和RCP。
3.随机挑选用于确定通过RCP的路径的随机性方法和常数。
4.认证、散列值、校验和、以及字节计数,可以被预计算并且其中嵌入未加密数据。
5.文档(和元数据)的每个字节与对应的RCP字节进行异或并且保持在临时位置。
6.当加密完成时,A将RCP随机性方法和常数嵌入加密数据。这个元数据可以不被加密,但是它可能被混淆,因此看起来是加密流的一部分。
7.A经由标准方法(例如,TCP/IP、FTP和HTTP)将这个加密数据发送至B。
8.当B接收到这个数据时,B按照相反流程恢复未加密的数据。
在一些实施方式中,RCP产生发生在具有最大资源的计算机上,要么在发送方的计算机上要么在接收方的计算机上。可替换地,可以通过第三方中间计算机或者基准计算机(例如,参见图2,RCP服务器210)执行RCP产生。
RCP产生可以它自身的线程运行,并且与加密/解密(客户端)线程进行极少的通信。在一些实施方式中,两个客户端线程维护几个RCP的本地池,当决定引退当前RCP时它们可以迅速地切换到本地池。当该池下降到指定数量以下时,RCP维护线程请求RCP生成器线程将另一RCP对发送至两个客户端的RCP池。客户端维护线程还可以维护RCP使用计数,这确定应该何时引退RCP。
RCP生成器线程可以监测其池水平,使真随机数生成器(TRNG)产生新的RCP。在一些实施方式中,TRNG的质量是重要的。RCP的大小可以有意地保持为实际那么小。保持小的RCP可以有助于避免不必要的RCP延迟。RCP使用和销毁得越快,***越安全。
尽管RCP大小可以在不同的实现方式中改变,或者甚至在发送方与接收者装置之间的相同通信流的不同阶段中改变,但是当前原型具有100,003字节(大于100,000的最小的素数)的RCP大小。可能存在有益于素数大小的路径随机化。
“大”文件可以被定义为大于RCP大小的任何事物。平均来说,数据的每个{RCP大小}字节将引退RCP。因此,1千兆字节的文件将使用和引退约10,000个RCP,并且相同的文件将在接收线程处重新装配的10,000个段中发送。
相反地,没有其他文件活动的约1,000字节的小文件,将不会替换RCP,直到它被自然引退。因此,可以由用户指定在非活动时段期间保留部分使用的RCP的时间。
在解密期间,可以监测几个因素以便保证消息完整性(认证、散列值、校验和、以及字节计数),当这些故障时通过向发送方发送NAK(否定确认)信号来拒绝数据块。这导致发送方重新格式化并且重新发送该消息。如果一切正常,则接收方将ACK(确认)信号发送至发送方,然后发送方格式化并发送下一个块。
在一些实施方式中,本文中描述的一些或所有加密特征在执行加密流程的计算机处理器或处理装置内实现。根据本文中描述的特定加密技术发生的数据转换致使处理装置成为能够具有新的功能(否则使用常规编程或逻辑流程不可用)的专用处理装置。此外,这种加密流程的有效处理要求在计算机处理***内实现。此外,与通过其他非计算机化装置所能实现的相比,存储与本文中描述的加密技术相关联的数据的电子存储装置与执行本文中描述的加密技术的计算机处理装置之间的交互实现更大的功效。
实现细节
本部分描述参考图2至图8的某些实施方式的实现细节。
图2是示出了用于消息加密的包括RCP服务器210以及两个RCP客户端(260A和256B)的***的框图。
RCP服务器210可包括可以在RCP服务器210上以单独线程运行的各种过程。熵源220可以用于产生随机数并且管理主RCP池224。一个或多个RCP客户端对线程230(例如,在图2中示出的RCP客户端对A-B线程230)可以用于产生密钥RCP和数据RCP。可以包括一个或多个资产库存线程250以管理用于各种RCP客户端对的RCP并且管理用于各种RCP客户端对的匹配元数据252。
为了便于描述,图2是完整***的简化描绘。本领域普通技术人员将认识到在根据本公开的***中可能存在许多RCP客户端。此外,许多不同的RCP客户端可能希望通信。在本公开的***中,通信发生在RCP客户端的配对以及RCP服务器210与每个RCP客户端260之间的配对之间。例如,或许存在四个RCP客户端;客户端A、客户端B、客户端C以及客户端D。在这种***中,RCP服务器210可能需要管理用于各种客户端对的数据RCP和密钥RCP。为了简便起见,在本文中仅讨论RCP客户端A 260A与RCP客户端B 260B之间的A-B配对。然而,作为非限制性实例,可能存在其他客户端配对,诸如,A-C、A-D、B-C、B-D和C-D。所有这些各种配对将由RCP服务器210管理并且每个单独的配对可具有在RCP服务器210上运行的其自身的RCP客户端对线程。
在图2的实例中,RCP服务器210在RCP服务器210与RCP客户端A 260A之间的S-A密钥/元数据路径212上传达RCP和RCP元数据252。类似地,RCP服务器210在RCP服务器210与RCP客户端B 260B之间的S-B密钥/元数据路径214上传达RCP和RCP元数据。RCP客户端A260A和RCP客户端B 260B通过通信路径216来回发送加密数据。通信路径(212、214和216)可以使用任何合适的通信接口和协议,诸如例如,蓝牙无线信号、802.1a/b/g/n类型的无线信号、蜂窝电话信号、TCP/IP、FTP和HTTP。
熵源220包括主RCP池224,主RCP池224保持通用RCP的集合以由各种RCP客户端对线程用来构建密钥RCP 238和数据RCP 232并将其传输至RCP客户端对(260A 260B)。池管理器228管理来自主RCP池224的池请求以保持主RCP池224相对完整。例如,如果主RCP池224降到低于可用RCP的预定阈值,则主RCP池224可以将对另外的RCP的请求发送至池管理器228。在一些实施方式中,请求可以来自其他源,诸如,例如客户端对A-B线程230中的密钥RCP池244、数据RCP或者密钥RCP运行不足的RCP客户端对(260A 260B)、或者资产库存线程250。
真随机数生成器(TRNG)222是硬件装置,并且如果需要的话还有相关联的软件,用于从无法预测的量子或非量子物理过程产生真正的随机数。这些过程的量子实例包括核衰变、穿透部分透明镜的光子、以及真空能量中的涨落现象。非量子实例包括热噪声、时钟漂移和RF噪声。TRNG222将随机数递送至主RCP池224以利用随机数填充RCP。如以下更充分说明的,TRNG 222还可以将随机数递送至映射生成器226以用于构建映射索引227。
转至客户端对A-B线程230(并且未示出任何其他客户端对线程),主RCP池224将RCP递送至数据RCP 232。主RCP池224还将相同的RCP递送至映射生成器226,其中,RCP被映射为密钥RCP。映射的密钥RCP 238被递送至密钥RCP池244。此外,用于定义来自密钥RCP池244的哪个密钥RCP将被使用的唯一密钥RCP标识符242被发送至组合模块234。组合模块234将数据RCP 232作为消息主体并且将唯一密钥RCP标识符242添加为报头。以下更充分地说明这个过程的细节。
加密过程236使用来自密钥RCP池244的当前密钥RCP 246加密所组合的数据RCP232。加密过程236在图2中被示出为简单的按位异或。然而,其他实施方式可包括任何合适的对称的加密过程。在加密之后,产生的RCP被传输至RCP客户端A 260A和RCP客户端B 260B这两者。
RCP客户端A 260A和RCP客户端B 260B以基本上类似的方式操作并且包括相同的元件。因此,除了需要的情况之外,RCP客户端260的描述将指的是没有指示符“A”或者“B”的通用元件。RCP密码在解密过程262接收。解密过程262使用当前密钥RCP 270解密RCP并且将其发送至分解模块264。分解模块264分隔主体部分并且将其发送至一个或多个数据RCP池272。在一些实施方式中,分离的池被维护用于发送数据和接收数据。为了RCP客户端260正确地加密和解密消息,RCP客户端260保持同步。此外,一些RCP客户端260也许能以同时发送和接收加密消息的全双工进行传送。因此,为了促进这个复杂的业务,每个RCP客户端260可以维护发送数据RCP池272和接收数据RCP池272。在这种实施方式中,一个RCP客户端260上的发送数据RCP池272中的数据RCP将与接收数据RCP池272中的数据RCP匹配,反之亦然。RCP客户端260之间的这些各种RCP和RCP池的相关性可以通过资产库存线程250以及发送至各种RCP客户端260的匹配元数据252管理。
分解模块264还将解密的RCP(主体和报头)发送至映射模块266。映射模块266执行与在RCP服务器210中的映射生成器226所使用的类似的过程以将数据RCP转换为密钥RCP。这个过程由报头中的变量确定并且以下进行更充分地说明。产生的密钥RCP被发送至密钥RCP池268以供将来使用。映射模块266还可以将主体发送至数据RCP池272中的一个。映射模块266还可以使用来自分解模块264的解密RCP产生新的映射索引267以便替换当前映射索引267或者修改当前映射索引267。
为了RCP客户端260之间的安全通信,从适当的数据RCP池272中提取当前数据RCP274。例如,客户端A 260A使用当前发送的数据RCP274A和加密过程276A加密客户端消息278A。加密的消息被发送至客户端B。客户端B使用当前接收的数据RCP 274B和解密过程276B产生解密的客户端消息278B。如前文讨论的,在这个实例中,加密过程276A和解密过程276B被示出为简单的按位异或,并且因此,可以在两个客户端上是相同的过程。在使用不同类型的对称加密的实施方式中,加密过程和解密过程可以是不同的。
在反方向上,客户端B 260B使用当前发送的数据RCP 274B和加密过程276B加密客户端消息278B。加密的消息被发送至客户端A。客户端A使用当前接收的数据RCP 274A和解密过程276A产生解密的客户端消息278A。在两个方向上,数据RCP仅使用一次并且在使用后被销毁。
***交互
目前,更充分的***交互讨论将添加涉及RCP服务器210与RCP客户端对(260A260B)之间的RCP管理和通信的补充细节。该概念是为客户端260提供匹配的数据RCP,匹配的数据RCP可以自由地浸入以进行标准的对称加密。如前所述,为了避免某些冲突问题,一些实施方式可以维护用于发送和接收数据的分离的数据RCP。一个客户端的发送数据RCP与另一个客户端的接收数据RCP配对。
可以在RCP服务器210与独立于客户端配对的每一个客户端260之间交换元数据。这个元数据交换甚至可以在建立配对之前要求另外的RCP池。这个链路的使用非常受限,但是在一些实施方式中可能是必须的。例如,如果在客户端配对之前不存在通信,则客户端将不知道如何请求客户端配对。
以下将讨论引导到客户端配对中,然后引导到客户端对启动,然后引导到客户端通信。
在客户端安装时,每个客户端260加载有充分的RCP数据以与RCP服务器210建立配对,不要求未加密的通信。不要求预定义的映射参数。这意味着应该加载当前密钥RCP 270并且密钥RCP池268应该包含一个项目。额外的RCP是因为RCP服务器210将发送具有比仅RCP更大的报头的RCP。可以使用报头中的元数据将数据RCP解密262的输出重新定向至任何RCP池(接收272、发送272、密钥268)或者映射索引267。
服务器启动&初始化
熵源220被启动以开始填充主RCP池224。这个线程使用TRNG 222为每个RCP的每个元素产生随机数并且开始构建主RCP池224。池管理器228监测主RCP池224以在主RCP池224接近满时限制RCP的创建。
用户登陆
***线程(未示出)在RCP服务器210上启动以便监测用于各个用户登录的各种客户端260。RCP服务器210上的用户线程(未示出)启动,该用户线程处理客户端260与RCP服务器210上的各个用户之间的通信。RCP服务器210发送定向到密钥RCP池268的新的RCP以用于服务器/客户端链路。RCP服务器210循环创建新的密钥RCP直到实现了用于服务器/客户端链路(212,214)的密钥RCP池268中的密钥RCP的期望水平。与配对相反,这个链路用于所有的通信预配对以及与单独的客户端相关联的任何通信。
应注意,这个服务器/客户端链路是图2中未示出的线程。其与客户端对A-B线程230相似,但是用于保持RCP服务器210与单独的客户端260之间的RCP管理和安全通信的配对。
用户请求配对
客户端260可以请求与任何其他登陆的客户端260配对。RCP服务器210从该请求启动客户端对A-B线程230。此外,在来自RCP服务器210的指导下,每个客户端260针对这个特定的客户端配对启动其用户对线程。尽管图2中未示出,但是客户端260可以与多个其他客户端260通信,并且将为它正在与之通信的每个客户端260维护客户端对线程。
RCP服务器210发送定向到两个客户端(260A,260B)上的密钥RCP池(268A,268B)的新的RCP。RCP的报头中的元数据包括定向为对数据RCP池(272A,272B)进行播种的随机选择的映射参数。重复这个过程直到在密钥RCP池(268A,268B)中达到期望的RCP水平。
RCP服务器210发送定向到两个客户端的数据RCP池(272A,272B)的新的RCP,新的RCP中的元数据包括定向为对数据RCP池(272A,272B)进行播种的随机选择的映射参数。重复这个过程直到在数据RCP池(272A,272B)中达到期望的RCP水平。
RCP服务器210启动资产库存线程250,资产库存线程使用元数据促使客户端RCP池(密钥268、发送272和接收272)与映射参数缓冲器(未示出)匹配。客户端260使用任何合适的通信接口和协议来初始化用户对通信链路216。
映射参数在RCP服务器210的指导下存储在与每个数据RCP池272相关联的缓冲器中。新的参数与接收的每个数据RCP一起提供但是不必与那个池相关联。目标由资产库存线程250决定。可以以先入先出(FIFO)的方式选择参数。如果遇到某些错误,则映射参数可以想得到地减少,在这种情况下资产库存线程250可以引导给予优先权以补充。相同的一般性评述也适用于密钥RCP池268。在这种设置中存在带宽的大量不对称。RCP服务器210与客户端260之间的大部分带宽在RCP移动中消耗,而所有其他通信仅是少量的元数据。
用户对通信
客户端260之间的通信可以是全双工的。(意味着如果数字协议允许,则两个用户可以同时发送而不发生冲突。)假设两个客户端260同步并且客户端A 260A正将客户端消息278A发送至客户端B 260B,然后当客户端A 260A已删除了当前发送的数据RCP 274A时,客户端A只是从发送数据RCP池272A中拾取下一个发送数据RCP 274A并且继续,直到当前客户端消息278A完成或者发送块已满。
当客户端B 260B接收到块时它执行相同的操作,但是从接收数据RCP池272B获得下一个接收数据RCP 274B。如果发生任何同步丢失,则可由块报头中的GUID或者其他RCP标识符拾取。
将数据RCP映射至密钥RCP
图3示出了用于产生映射索引、使用该映射索引将数据RCP映射至密钥RCP、并且将数据RCP直接映射至密钥RCP的过程。
图4示出了用于在RCP服务器210上创建新的RCP、在客户端上从加密的RCP产生新的RCP、发送加密的消息、并且解密所接收的消息的过程。
将一起讨论这些附图并且结合图2充分讨论映射过程的示例性实施方式。通常,映射过程以预定的非顺序次序使用数据RCP中的每个元素一次来将密码本映射应用至数据RCP,以开发密钥RCP。
只要映射索引偶尔被替换,则映射索引可用于充分地使数据RCP随机化为密钥RCP。如果映射索引被使用多次,即使利用随机寻址方法选择映射索引的元素,则模式也可能出现在数据RCP与密钥RCP之间的相互关系中。通过使映射索引的大小为素数并且使用许多不同的随机寻址方法中的一个,对于数据RCP至密钥RCP的每个映射,密码本映射过程可以通过映射索引采用不同的路径。
由于映射索引替换可能比移动的RCP是更加带宽密集的,因此可以通过使用随机寻址方法延长需要替换之前的映射索引的寿命,以采取通过映射索引的不同路径。作为一个非限制性实例,通过映射索引的随机开始位置和随机步长可以包括在加密的数据RCP中。
图3包括用于构建映射索引的过程300。在过程302,为映射索引中的所有可用的槽创建列表。在过程302,指针值也被初始化为0。
在过程304,从TRNG 222(图2)获得随机数。这个随机数用于选择映射索引中的槽。因此,对于这个过程,TRNG 222可以被配置为产生0至M-1之间的随机数。
在过程306,当前指针值(对于循环的第一次是0)被存储在由来自TRNG 222的随机数所选择的槽中。
在过程308,从可用槽的列表中去除当前选择的槽。
在过程310中,执行决定以确定映射索引中的全部槽是否已经被填充。如果是,则过程300结束。如果不是,则过程304递增指针并且过程300循环回到过程304以利用当前指针值填充另一个随机选择的槽。
图3还包括用于使用映射索引将数据RCP映射至密钥RCP的过程330。对于这个映射过程,定义随机寻址方法以用于确定通过映射索引的随机路径。
作为一个非限制性实例,可以提供初始位置和步长以形成用于遍历密钥RCP的所有位置的过程。因此,可以选择与步进的映射索引的大小互为素数的步长。这可以通过为作为素数的映射索引选择大小,或者通过仔细选择与映射索引的大小互为素数的步长来实现(例如,步长本身就是素数)。
只要用于执行寻址方法的映射参数可以在需要遵循通过用于数据RCP至密钥RCP的任何特定映射的映射索引的相同路径的两个节点之间传递,则可以为本公开的实施方式定义用于映射索引的许多其他随机寻址方法。
在过程332,初始化空密钥RCP。另外,映射参数用于将偏移定义在映射索引中,作为开始过程330的初始位置。
在过程334,从映射索引选择由偏移值指向的位置的RCP指针。
在过程340,从数据RCP选择在由RCP指针值所指向的位置处的字节。
在过程342,检索的字节被附加至密钥RCP的下一个位置。
在过程344,执行测试以确定密钥RCP是否已满。如果是,则该过程结束。
如果密钥RCP未满,则过程346使用映射参数将新的偏移定义到映射索引中。在获得新的偏移之后,过程330循环回到过程334并且重复直到密钥RCP被完全填充。
可以在以下利用图4的说明所描述的过程400和过程420中使用映射过程330、以及其他合适的映射过程。这些映射过程在本文中还可以称为密码本映射。此外,尽管数据RCP和密钥RCP被描述为使得每个位置包括单个字节,但是也可以使用其他大小,例如16位字、32位字和64位字。
图4示出了用于在RCP服务器210上创建新的RCP、在客户端上从加密的RCP产生新的RCP、发送加密的消息、并且解密所接收的消息的过程。
过程400是用于在RCP服务器210上创建新的RCP的过程。在过程402,执行根据过程330的密码本映射、或者用于定义通过映射索引的路径的其他合适的过程以便从数据RCP获得密钥RCP,新的密钥RCP可以存储在RCP池中。
在过程404,数据RCP与从RCP池检索到的当前密钥RCP进行异或以便获得新的加密数据RCP。如前所述,异或是可以使用的对称加密的一个实例。其他实施方式可以使用不同类型的对称加密。
在过程408,唯一密钥RCP标识符可以预置至新的加密数据RCP。预置是非限制性实例。只要密钥RCP标识符可用于由发送者和接收者定义密钥RCP池中相同的密钥RCP,则密钥RCP标识符可以放置在加密数据RCP内的其他位置处。
在过程410,包括有密钥RCP标识符的加密数据RCP被发送至RCP客户端对(260A260B)。
过程420是用于在客户端260上从加密的RCP产生新的RCP的过程。这个过程420在RCP客户端对(260A 260B)的每个客户端上执行。
在过程422,由客户端260接收包括有密钥RCP标识符的加密的数据RCP,并且从加密的数据RCP提取密钥RCP标识符。
在过程424,密钥RCP标识符用于选择当前密钥RCP并且当前密钥RCP与数据RCP进行异或以获得新的解密的数据RCP。如前所述,异或是可以使用的对称加密的一个实例。其他实施方式可以使用不同类型的对称加密。
在过程426,可以执行根据过程330的密码本映射、或者用于定义通过映射索引的路径的其他合适的过程以便从数据RCP获得密钥RCP。新的密钥RCP可以存储在RCP池中。
在过程428,新的解密的数据RCP被存储在数据RCP池272(发送或者接收)、密钥RCP池268(当构建密钥RCP的储备时)、或者当通过来自RCP服务器210的资产库存线程250引导时的映射索引267中的一个内。
过程440是用于加密客户端消息并且发送加密的消息的过程。在过程442,从发送数据RCP池272获得数据RCP 274。在不能够全双工通信的一些实施方式中,可能存在单个数据RCP池272而不是发送数据RCP池272和接收数据RCP池272。
在过程444,未加密的客户端消息278与数据RCP 274进行异或276以获得加密的消息。如前所述,异或是可以使用的对称加密的一个实例。其他实施方式可以使用不同类型的对称加密。
在过程446,加密的消息被发送至参与这个客户端对的其他客户端。
过程460是用于接收加密的消息并且解密该消息的过程。在过程462,加密的消息从参与这个客户端对的其他客户端接收。
在过程464,从接收数据RCP池272获得数据RCP 274。在不能够全双工通信的一些实施方式中,可能存在单个数据RCP池272而不是发送数据RCP池272和接收数据RCP池272。
在过程466,加密的客户端消息与数据RCP 274进行异或276以获得未加密的客户端消息278。如前所述,异或是可以使用的对称加密的一个实例。其他实施方式可以使用不同类型的对称加密。
图5A是示出了RCP中枢500的实施方式的简化框图。RCP中枢500包括RCP服务器510和RCP客户端260。在一些实施方式中,RCP服务器510可以与图2的RCP服务器210相似并且RCP客户端540可以与图2的RCP客户端260相似。在一些实施方式中,一个或多个RCP客户端540可以与以下描述图5B时讨论的RCP客户端560相似。RCP中枢500可用于在客户端不能直接通信的情况下促进客户端对客户端的通信。加密的通信路径542将与图2中的加密的通信路径216相似。
作为客户端通信的非限制性实例,远程RCP客户端520A可能希望通过RCP中枢500与远程RCP客户端520C通信。远程RCP客户端520A将使用RCP客户端540A与远程RCP客户端520A之间的客户端配对将加密的客户端消息通过加密的通信路径542A发送至RCP客户端540A。RCP客户端540A将解密客户端消息并且将其通过中枢内的客户端通信块530发送至RCP客户端540C。RCP客户端540C然后将使用RCP客户端540C与远程RCP客户端520C之间的客户端配对加密客户端消息并且将加密的消息通过加密的通信路径542C发送至远程RCP客户端520C。远程RCP客户端520C然后可以解密该客户端消息。当然,消息可以由其它路径从远程RCP客户端520C传递至远程RCP客户端520A并且不必对其进行详细描述。
客户端配对可以由RCP服务器510定义并且正确的密钥RCP和数据RCP可以发送至客户端配对的每侧,使得它们具有加密和解密客户端消息的正确的RCP。
中枢内的客户端通信530可以任何形式在RCP中枢500上的RCP客户端540之间移动客户端消息。例如,中枢内的客户端通信530可以是客户端540之间的字节流、两个客户端都可以访问的RCP服务器510(例如,FIFO)的存储器中的数据结构、或者在线程之间传递数据的其他合适的方式。
在RCP中枢500中包括RCP服务器510允许RCP中枢500具有TRNG,因此具有创建RCP的能力并且允许RCP中枢500然后将RCP分布至各个端点。在停歇时间期间,RCP中枢500可以产生构建物理分布的替换RCP的熵。如果在高安全性环境中正确引用的RCP中枢500还可以与在企业***中的其他地方静止的数据的RCP的存储相关联。
在一些实施方式中,更简单的RCP中枢可不包括RCP服务器510。在这种***中,RCP客户端540将需要从RCP中枢500上的远程RCP服务器(未示出)与RCP客户端540之间的加密的通信路径获得它们用于客户端配对的RCP。
图5B是示出了使用预加载的RCP库574的RCP 560客户端的实施方式的简化框图。本公开的实施方式的一些应用可能具有使RCP的动态传递不切实际的有限的带宽。在动态RCP替换不可能或者不切实际的,并且需要RCP的任务的配置文件提前是已知的情况下,可以提前已知完成任务所需的所有事物。在这些情况下,可以创建和预定位提前支持任务所要求的所有RCP数据。预加载的RCP库574是具有充足随机元素的大RCP以便在操作期间不需要电子交换替换RCP的情况下启动整个任务的加密通信。在一些实施方式中,预加载的RCP库574可以在停歇时间期间在主操作中心进行物理替换或者硬线替换。在一些实施方式中,预加载的RCP库574通过RCP服务器产生并且在任务之外预加载到RCP客户端560中。在具有许可带宽和安全性要求的一些实施方式中,如果需要可以在任务期间更新一些或者所有预加载的RCP库574。
使用大的预加载的RCP库574的RCP客户端560可能比图2中示出的RCP客户端260更简单。如果预加载的RCP库574是可用的,则用于解密数据RCP、并且映射以产生密钥RCP的许多过程是不必要的。
RCP库574可以被配置为包括千字节至千兆字节的真随机数据。客户端配对将各自包括匹配预加载的RCP库574。作为通信的非限制性实例,发送客户端将包括用于产生从用于加密和解密的预加载的RCP库574开始读取随机数据的地址的参数的报头预置至客户端消息578的主体。当然,该参数不必预置为报头,而是只要接收者了解在哪里提取参数,该参数就可以包括在加密消息578中的任何地方。
库管理器572可以用于管理开始并定义在发送侧要发送的映射参数的地址的产生。在接收侧,库管理器572可以用于提取参数并且使用它们确定开始解密的地址。
这些类型的RCP客户端560可以在可能捕捉、盗取或以其他方式拦截的包括RCP客户端560的装置的应用中使用。作为非限制性实例,图6的无人驾驶飞行器(UAV)610、以及图7的个人电子装置(PED)720可能易于被捕捉。因此,本公开的一些实施方式可以删除预加载的RCP库574的使用过的位置。库管理器572可以管理消除已经使用过的数据的过程。因此,可以消除用于在发送路径上加密的数据以及用于在接收路径上解密的数据。消除的过程可能是复杂的以保证数据被完全消除并且可以是不同的以用于不同类型的数据存储器。换言之,用于磁存储器的消除过程可能比用于电子存储器或者固态存储器的消除过程更复杂。在消除使用过的信息的情况下,假定***记录两个客户端之间的每条消息,则***也不能解码过去的、现在的或者未来的任何消息。
在一些实施方式中,预加载的RCP库574可以配置为与图2的数据RCP池272相似的RCP的池。在这些配置中,预置参数可以包括起始地址(在第一RCP内)、决定用在这个消息中的所有RCP的GUID(或者其他唯一标识符)的列表、以及结束地址(在当前消息所需的最后一个RCP内)。
图6是示出了使用本公开的一个或多个实施方式的无人驾驶飞行器(UAV)610***的框图。这个***使用用于一个或多个UAV 610的企业操作的本公开的实施方式以使能安全通信。公众通常将这些机器称为无人机并且其是便利的,然而该行业通常使用术语UAV610。对UAV 610操作存在许多担心,以保障允许地面控制器开飞行器的命令和控制(C2)链路为开始。至于更大、更昂贵、尤其是具有重武器的无人机,存在几个单独且冗余的C2信道和地面控制中心。这个冗余的体系结构保持绝对控制并且防止仅封锁到达或来自飞行器的信号的通报。
在图6中,UAV 610通过一个或多个RCP中枢620通信至无论它们在全球的哪个地方的全部利益相关方。UAV 610包括用于与以上描述图5A和图5B时所讨论的RCP中枢620通信的RCP客户端612和RCP库614。
在一些实施方式中,RCP中枢620可包括RCP服务器210和两个或更多个RCP客户端260(例如,图5的RCP中枢500),使得不管它们是RCP管理和分布或者加密的数据通信,所有通信都是安全的。在其他实施方式中,RCP中枢可包括两个或更多个客户端并且RCP中枢中的每一个客户端将与远程RCP中枢通信。
这些安全通信可能来自各种操作和管理利益相关方。作为非限制性实例,图6示出了有效载荷和传感器操作652、官方观察员654、数据储存库656、行政管理和监督640、飞行控制632、现场操作人员634、战术行动中心636、恢复机场飞行控制642以及其他利益相关方638。包括UAV 610的每一个通信块都包括至少一个RCP客户端以便促进通过根据本公开的实施方式的RCP中枢620的安全通信。
冗余的RCP中枢620可以用于促进完全单独分布的中枢以便确保下载数据的绝对控制和接收。此外,可以使用多个RCP中枢620,使得不同的RCP中枢专用于不同类型的数据流量(例如,不同的优先权,诸如,相对于监视或归档流量实时敏感的流量)。
UAV操作的一个显著的方面是带宽。大量带宽用于传感器和C2流量,几乎不留备用。在本公开的实施方式中,数据RCP的库可以预产生并且在起飞前安装在飞行器上,使得库足以处理全部任务。这个库消除对飞行中加载RCP数据的需要。
如果发生机器的潜在捕捉,为了保护库,本公开的实施方式包括针对此行为的非破坏性创新***;如上所述,本质上当已经使用过的RCP或者RCP库的一部分可能被消除时。现在飞行器上没有可以允许访问传输或者存储的数据的东西,只有RCP在地面上的RCP中枢620上。可能被捕捉的未使用的RCP是无用的,因为地面上的对应RCP仅被破坏就永不被使用。另外,这个***使每一个通信链路能够被单独且唯一地端点到端点加密。
在这个模型中,RCP中枢620成为通过其所有流量从任何端点至任何其他端点被加密的连接,并且冗余的中枢能够通过最初的中枢与网络直接通信。进入中枢的加密流量利用向前加密分布的新的加密的RCP进行传送。利用该方法,在该过程期间在任何时候流量从未穿过未加密的状态,从而提供连续的安全性。
这个***也能够使实现RCP客户端260安装的能力,加上RCP库的初始化,大大提前了它们可能的应用。例如,特定操作员可以在离开它们美国中的基地用于海外部署之前使安装完成。然后,当具体操作员在随后任务上激活时,操作员具有全球命令授权的全部安全通信。
恢复机场飞行控制642包括在飞行器起飞或返场着落时实际控制UAV 610的人。在这些飞行周期期间,较低的延迟通信路径可以是有用的,同时仍然保持安全性。因此,在一些实施方式中,恢复机场飞行控制642可能能够与UAV 610直接通信而不通过RCP中枢620,但是仍然使用直接路径上的RCP加密。在这些实施方式中,恢复机场飞行控制642还将包括具有与UAV 610和RCP中枢中的RCP库614相同信息的RCP库(未示出)。因此,恢复机场飞行控制642可具有到达飞行器的双路径,一个通过RCP中枢620以及当授权了起飞与着陆流程时的直接链路。
尽管相对于UAV讨论了图6的实施方式,但是它们还可以应用于其他无人应用,例如,无人驾驶车辆应用,诸如陆上车辆、水上飞行器和机器人。
图7是示出了使用本公开的一个或多个实施方式的飞行器通信***的框图。与UAV应用一样,在飞行器通信中带宽再次是珍贵的商品。连接速度不好并且成本惊人。
图7的实施方式包括携带在飞机上的个人电子装置(PED)720作为包括如以上参考图5B讨论的预加载的RCP库的RCP***,因此消除对加载相对带宽密集的RCP的需要。商用航空通信通常由专用供应商处理。为了使飞行器710具有连接性,必须装备有所有需要的通信接口730,诸如,WiFi路由器、调制解调器收发器、以及主要沿着它们的飞行航线与地面中继站740或者卫星750通信的天线(共同地示出为元件730)。从地面站740,可以将流量向上发射至卫星750用于传输至全球通信服务供应商(GCSP)760。
然而,许多全球地面中继站740是政府所有并且运行的并且许多政府与美国不是特别友好。因此,大部分复杂的商用航空操作员知道它们的地面中继器由谁在哪处理。当进入到不友好的区域(例如,中国)时,大部分操作员将物理地断开***。尽管如此,这些许多相同的操作员在中国上空花费大量的飞行时间并且想要使他们的时间是有生产力的。现在一些GCSP 760利用已经或将被量子计算破解的256位加密。
此外,由于它仅利用安装该***的公司的***操作,因此用于GCSP 760的飞行器710上的所有通信设备730成本高并且是专有的。由于FAA规则这个专有结果较大,该FAA规则很严密地监控安装或者附接至飞行器710的任何硬件。至于安装在任何品牌或型号飞行器710上的每个特定品牌和型号设备零件,供应商必须获得称为补充型别验证(STC)的FAA验证。支付开发和获得STC的公司然后拥有那个具体机型上的那个具体设备的所有安装。任何竞争者必须购买通向STC的入口并且特定设备不能利用它们的操作工作或者开发它们自己的STC。
在一些实施方式中,STC设备全部按照FAA被安装在飞行器上并且可包括在飞行器710上携带的FAA授权的个人电子装置(PED)720。这个PED 720可以类似于Kindle、笔记本电脑、或者平板电脑的方式在商务航班上携带。不是物理附接至飞行器,而是附接至便携式装置。PED 720包含如以上参考图5B所描述的大RCP库和RCP客户端,以及两个单独的无线网络平台。第一网络(例如,子WiFi或者蓝牙)利用PED 720与管理人员和机务人员的笔记本电脑/平板电脑连接。从那里,加密的流量通过PED 720传递至飞机通信信道(例如,WiFi)并且通常从那里到达地面中继站740。当然,这个链路在海洋上可能必须直达卫星750。GCSP 760设备可以处理这些决定。
GCSP 760处的PED 720与RCP中枢765之间的数据是非动态的并且可以被配置为使用根据图5A的实施方式的RCP库,然而PED 720与单独用户的装置之间的数据是动态的并且可以被配置为使用根据图2的实施方式的RCP客户端。因此,RCP库可以包括在PED 720上,但是在用户的机器中不是必需的。如果期望机上加密,则用户的机器可以使用根据图2的实施方式的RCP客户端。
最终,流量被下行链路至GCSP 760操作中心,大部分具有几个全球分布的位置。在一些实施方式中,RCP中枢765将位于可以进行最终解密的GCSP 760操作中心处。
可替换的***可以具有位于公司总部的RCP中枢765。在这种情况下,通过RCP中枢765传递的流量可以依然按照完全加密直到到达RCP中枢765的原样简单地通过任何通信***传递至总部。这些构造的RCP中枢765结构中的任一个可以接受加密的流量,将其传送至RCP中枢765并且将其发送出到任何授权的RCP中枢765端点。
使RCP中枢765共置在GCSP 760操作中心处的成本收益在于代替仅支撑一个公司的RCP中枢765,稍微增强的RCP中枢765可以同时支撑许多不同的公司。因此,使单个RCP中枢765由单个实体拥有并运行,该实体反过来通过信道伙伴关系将该服务销售给许多单独的公司。
图8是示出了使用本公开的一个或多个实施方式的监控和数据采集(SCADA)***802的框图。
监控和数据采集(SCADA)***802管理我们每天依赖的大部分基础设施操作。SCADA***管理无数基本网络(例如,交通信号灯814、地铁、水电***816、818、工业设备等),所有事情基本影响我们每天的生活。大部分基础设施***在一般位于中央操作中心802处的人机界面(HMI)的监督和控制下半自主运行。
将RCP中枢804放置在中央操作位置802处启动在整个企业的端到端安全通信,其中电脑黑客没有干扰操作或者解密信息,创建反量子安全***的能力。在***的分布端处是将数字遥测转换为用于监测和驱驶阀门、开关等的可编程逻辑控制器(PLC)812的机械作用命令的远程终端单元(RTU)810。
结合RTU 810安装RCP中枢806可以消除***安全问题并且为所有基于SCADA的***提供安全交易。RCP中枢806可以通过诸如卫星808、电话线、移动网络和WAN网络等多种信道与RTU 810通信。
在一些实施方式中,可以不包括RCP中枢806并且每个RTU可包括如以上参考图2或者图5a描述的RCP客户端(未示出)。在其他实施方式中,该***可包括RCP中枢(804和806)以及RTU 810中的RCP客户端
尽管本文中已经相对于某些示出的实施方式描述了本公开,但是本领域中的普通技术人员将认识并理解到本发明不受如此限制。相反地,在不偏离如下文中所要求保护的本发明的范围以及它们的合法等效物的情况下,可以对示出和描述的实施方式做出许多添加、删除和修改。此外,来自一个实施方式的特征可以与另一个实施方式的特征结合,而仍然包含在发明人所预期的本发明的范围内。

Claims (42)

1.一种用于执行密码流程的计算机实现方法,包括:
在计算***上存储一个或多个随机密码密码本(RCP);
在所述计算***上开发映射索引;
定义映射参数,以使用所述映射索引的元素;
按由所述映射参数和所述映射索引定义的预定的非顺序次序使用数据RCP中的每个元素一次,将密码本映射应用至所述数据RCP,以便开发密钥RCP;
将所述映射参数与所述数据RCP结合;
在结合之后使用所述密钥RCP和加密过程加密所述数据RCP,以产生后续数据RCP;以及
传输所述后续数据RCP。
2.根据权利要求1所述的计算机实现方法,进一步包括:
用由包括真随机数生成器(TRNG)的硬件模块生成的随机数,至少填充第一数据RCP;并且
使用所述第一数据RCP用于所述密码本映射。
3.根据权利要求1所述的计算机实现方法,其中,开发所述映射索引包括用由包括真随机数生成器(TRNG)的硬件模块生成的随机数填充所述映射索引。
4.根据权利要求1所述的计算机实现方法,其中,定义所述映射参数包括定义用于从所述映射索引选择元素的预定顺序。
5.根据权利要求1所述的计算机实现方法,其中,所述加密过程包括所述密钥RCP与所述数据RCP之间的按位异或。
6.根据权利要求1所述的计算机实现方法,进一步包括合并多个RCP客户端过程,其中,每个RCP客户端过程包括:
接收包括由存储在所述计算***上的客户端映射索引使用的客户端映射参数的加密的RCP;
使用当前密钥RCP和解密过程解密所述加密的RCP,以产生解密的RCP;
按由所述客户端映射参数和所述客户端映射索引定义的预定的非顺序次序使用所述解密的RCP中的每个元素一次,将客户端密码本映射应用至所述解密的RCP,以便开发后续密钥RCP;
将所述后续密钥RCP存储在密钥RCP池中;并且
将所述解密的RCP存储在从由所述密钥RCP池、数据RCP池和所述客户端映射索引组成的组中选择的至少一个位置中。
7.根据权利要求6所述的计算机实现方法,进一步包括:
使用来自所述数据RCP池的当前数据RCP与另一个加密过程加密数据结构,以产生加密的数据结构;并且
将所述加密的数据结构传输至另一个计算***。
8.根据权利要求6所述的计算机实现方法,进一步包括:
从另一个计算***接收加密的数据结构;并且
使用来自所述数据RCP池的当前数据RCP与另一个解密过程解密所述加密的数据结构,以产生解密的数据结构。
9.一种计算***,被配置为用于执行密码流程的专用计算机,所述计算***包括:
存储在所述计算***上的一个或多个随机密码密码本(RCP);
被配置用于存储计算指令的存储器;以及
处理器,可操作地耦接至所述存储器并且被配置用于实施所述计算指令以便使用所述一个或多个RCP和过程执行所述密码流程,所述过程包括:
开发映射索引;
定义映射参数,以使用所述映射索引的元素;
按由所述映射参数和所述映射索引定义的预定的非顺序次序使用数据RCP中的每个元素一次,将密码本映射应用至所述数据RCP,以便开发密钥RCP;
将所述映射参数与所述数据RCP结合;
在结合之后使用所述密钥RCP和加密过程加密所述数据RCP,以产生后续数据RCP;以及
传输所述后续数据RCP。
10.根据权利要求9所述的计算***,进一步包括真随机数生成器(TRNG),并且其中,所述处理器进一步被配置用于实施所述计算指令以执行包括以下各项的过程:
用由所述TRNG生成的随机数至少填充第一数据RCP;并且使用所述第一数据RCP用于所述密码本映射。
11.根据权利要求9所述的计算***,进一步包括真随机数生成器(TRNG),并且其中,所述处理器进一步被配置用于实施所述计算指令,其中,开发所述映射索引包括用由所述TRNG生成的随机数填充所述映射索引。
12.根据权利要求9所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,其中,定义所述映射参数包括定义用于从所述映射索引选择元素的预定顺序。
13.根据权利要求9所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令以便作为所述密钥RCP与所述数据RCP之间的按位异或来执行所述加密过程。
14.根据权利要求9所述的计算***,其中,所述处理器进一步被配置用于实施用于合并多个RCP的客户端过程的所述计算指令,其中,每个RCP客户端过程包括:
接收包括由存储在所述计算***上的客户端映射索引使用的客户端映射参数的加密的RCP;
使用当前密钥RCP和解密过程解密所述加密的RCP,以产生解密的RCP;
按由所述客户端映射参数和所述客户端映射索引定义的预定的非顺序次序使用所述解密的RCP中的每个元素一次,将客户端密码本映射应用至所述解密的RCP,以便开发后续密钥RCP;
将所述后续密钥RCP存储在密钥RCP池中;并且
将所述解密的RCP存储在从由所述密钥RCP池、数据RCP池和所述客户端映射索引组成的组中选择的至少一个位置中。
15.根据权利要求14所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
使用来自所述数据RCP池的当前数据RCP与另一个加密过程加密数据结构,以产生加密的数据结构;并且
将所述加密的数据结构传输至另一个计算***。
16.根据权利要求14所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
从另一个计算***接收加密的数据结构;并且
使用来自所述数据RCP池的当前数据RCP与另一个解密过程解密所述加密的数据结构,以产生解密的数据结构。
17.一种用于执行密码流程的计算机实现方法,包括:
在计算***上存储一个或多个随机密码密码本(RCP);
接收包括由存储在所述计算***上的映射索引使用的映射参数的加密的RCP;
使用当前密钥RCP和解密过程解密所述加密的RCP,以产生解密的RCP;
按由所述映射参数和所述映射索引定义的预定的非顺序次序使用所述解密的RCP中的每个元素一次,以将密码本映射应用至所述解密的RCP,以便开发后续密钥RCP;
将所述后续密钥RCP存储在密钥RCP池中;并且
将所述解密的RCP存储在从由所述密钥RCP池、数据RCP池和所述映射索引组成的组中选择的至少一个位置中。
18.根据权利要求17所述的计算机实现方法,其中,应用所述密码本映射包括:
将所述后续密钥RCP初始化为空;
响应于所述映射参数,从所述映射索引中选择RCP指针;
使用所述RCP指针从所述解密的RCP中选择RCP元素;
将所述RCP元素附加至所述后续密钥RCP;
响应于所述映射参数,在所述映射索引中定义新的位置;并且
通过使用所述映射索引中的所述新的位置并且重复选择所述RCP指针、使用所述RCP指针、并且在所述映射索引中定义所述新的位置的过程,继续所述密码本映射直到密钥RCP被完全填充。
19.根据权利要求17所述的计算机实现方法,进一步包括:
使用来自所述数据RCP池的当前数据RCP与加密过程加密数据结构,以产生加密的数据结构;并且
将所述加密的数据结构传输至另一个计算***。
20.根据权利要求19所述的计算机实现方法,进一步包括:
从所述计算***消除所述当前数据RCP;并且
从所述数据RCP池选择另一个数据RCP作为所述当前数据RCP的新版本。
21.根据权利要求17所述的计算机实现方法,进一步包括:
从另一个计算***接收加密的数据结构;并且
使用来自所述数据RCP池的当前数据RCP与另一个解密过程解密所述加密的数据结构以产生解密的数据结构。
22.根据权利要求21所述的计算机实现方法,进一步包括:
从所述计算***消除所述当前数据RCP;并且
从所述数据RCP池选择另一个数据RCP作为所述当前数据RCP的新版本。
23.根据权利要求17所述的计算机实现方法,其中,所述解密过程包括所述加密的RCP与所述当前密钥RCP之间的按位异或,以产生所述解密的RCP。
24.一种计算***,被配置为用于执行密码流程的专用计算机,所述计算***包括:
存储在所述计算***上的一个或多个随机密码密码本(RCP);
被配置用于存储计算指令的存储器;以及
处理器,可操作地耦接至所述存储器并且被配置用于实施所述计算指令以便使用所述一个或多个RCP和过程执行所述密码流程,所述过程包括:
接收包括由存储在所述计算***上的映射索引使用的映射参数的加密的RCP;
使用当前密钥RCP和解密过程解密所述加密的RCP,以产生解密的RCP;
按由所述映射参数和所述映射索引定义的预定的非顺序次序使用所述解密的RCP中的每个元素一次,将密码本映射应用至所述解密的RCP,以便开发后续密钥RCP;
将所述后续密钥RCP存储在密钥RCP池中;并且
将所述解密的RCP存储在从由所述密钥RCP池、数据RCP池和所述映射索引组成的组中选择的至少一个位置中。
25.根据权利要求24所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,其中,应用所述密码本映射包括:
将所述后续密钥RCP初始化为空;
响应于所述映射参数,从所述映射索引中选择RCP指针;
使用所述RCP指针从所述解密的RCP中选择RCP元素;
将所述RCP元素附加至所述后续密钥RCP;
响应于所述映射参数,在所述映射索引中定义新的位置;并且
通过使用所述映射索引中的所述新的位置并且重复选择所述RCP指针、使用所述RCP指针、并且在所述映射索引中定义所述新的位置的过程,继续所述密码本映射直到密钥RCP被完全填充。
26.根据权利要求24所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
使用来自所述数据RCP池的当前数据RCP与加密过程加密数据结构,以产生加密的数据结构;并且
将所述加密的数据结构传输至另一个计算***。
27.根据权利要求26所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
从所述计算***消除所述当前数据RCP;并且
从所述数据RCP池选择另一个数据RCP作为所述当前数据RCP的新版本。
28.根据权利要求24所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
从另一个计算***接收加密的数据结构;并且
使用来自所述数据RCP池的当前数据RCP与另一个解密过程解密所述加密的数据结构,以产生解密的数据结构。
29.根据权利要求28所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
从所述计算***消除所述当前数据RCP;并且
从所述数据RCP池选择另一个数据RCP作为所述当前数据RCP的新版本。
30.根据权利要求24所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令以便作为所述加密的RCP与所述当前密钥RCP之间的按位异或来执行所述解密过程,以产生所述解密的RCP。
31.一种用于执行密码流程的计算机实现方法,包括:
将预加载的RCP库存储在计算***上;
接收包括由所述预加载的RCP库使用的参数的加密的数据结构;
响应于所述参数,在所述预加载的RCP库中定义起始点以便选择RCP元素;并且
使用来自所述预加载的RCP库的以所述起始点开始的所述RCP元素以及解密过程解密所述加密的数据结构,以产生解密的数据结构。
32.根据权利要求31所述的计算机实现方法,进一步包括在解密完成之后,消除在解密所述加密的数据结构期间使用的所述RCP元素。
33.根据权利要求31所述的计算机实现方法,其中:
存储所述预加载的RCP库进一步包括存储多个数据RCP;
在所述预加载的RCP库中定义所述起始点进一步包括使用所述参数定义当前数据RCP中的起始点、定义结束数据RCP、以及定义所述结束数据RCP中的结束点;并且
使用所述RCP元素解密所述加密的数据结构使用从所述当前数据RCP中的所述起始点至所述结束数据RCP中的所述结束点的所述RCP元素。
34.根据权利要求31所述的计算机实现方法,进一步包括:
在所述预加载的RCP库中定义新的起始点,以选择新的RCP元素;
利用来自所述预加载的RCP库的以所述新的起始点开始的所述新的RCP元素以及加密过程加密新的数据结构,以产生新的加密的数据结构;并且
传输所述新的加密的数据结构。
35.根据权利要求34所述的计算机实现方法,进一步包括在加密完成之后,消除在加密所述新的数据结构期间使用的所述新的RCP元素。
36.根据权利要求34所述的计算机实现方法,其中:
存储所述预加载的RCP库包括存储多个数据RCP;
在所述预加载的RCP库中定义所述新的起始点进一步包括使用所述参数定义当前数据RCP中的新的起始点、定义结束数据RCP、以及定义所述结束数据RCP中的结束点;并且
利用所述新的RCP元素加密所述新的数据结构使用从所述当前数据RCP中的所述新的起始点至所述结束数据RCP中的所述结束点的所述新的RCP元素。
37.一种计算***,被配置为用于执行密码流程的专用计算机,所述计算***包括,包括:
所述计算***上的预加载的RCP库;
被配置用于存储计算指令的存储器;以及
处理器,可操作地耦接至所述存储器并且被配置用于实施所述计算指令以便使用所述预加载的RCP库和过程执行所述密码流程,所述过程包括:
接收包括由所述预加载的RCP库使用的参数的加密的数据结构;
响应于所述参数,在所述预加载的RCP库中定义起始点以选择RCP元素;并且
使用来自所述预加载的RCP库的以所述起始点开始的所述RCP元素以及解密过程解密所述加密的数据结构,以产生解密的数据结构。
38.根据权利要求37所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令以在解密完成之后,消除在解密所述加密的数据结构期间使用的所述RCP元素。
39.根据权利要求37所述的计算***,其中,所述预加载的RCP库包括多个数据RCP,并且其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
在所述预加载的RCP库中定义所述起始点,进一步包括:使用所述参数定义当前数据RCP中的起始点、定义中间的RCP、定义结束数据RCP、以及定义所述结束数据RCP中的结束点;并且
使用所述RCP元素解密所述加密的数据结构:使用从所述当前数据RCP中的所述起始点至所述结束数据RCP中的所述结束点的所述RCP元素。
40.根据权利要求37所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
在所述预加载的RCP库中定义新的起始点,以选择新的RCP元素;
利用来自所述预加载的RCP库的以所述新的起始点开始的所述新的RCP元素以及加密过程加密新的数据结构,以产生新的加密的数据结构;并且
传输所述新的加密的数据结构。
41.根据权利要求40所述的计算***,其中,所述处理器进一步被配置用于实施所述计算指令以在加密完成之后,消除在加密所述新的数据结构期间使用的所述新的RCP元素。
42.根据权利要求40所述的计算***,其中,所述预加载的RCP库包括多个数据RCP,并且其中,所述处理器进一步被配置用于实施所述计算指令,以用于:
在所述预加载的RCP库中定义所述新的起始点,进一步包括:使用所述参数定义当前数据RCP中的新的起始点、定义中间的RCP、定义结束数据RCP、以及定义所述结束数据RCP中的结束点;并且
利用所述新的RCP元素加密所述新的数据结构:使用从所述当前数据RCP中的所述新的起始点至所述结束数据RCP中的所述结束点的所述新的RCP元素。
CN201680036990.1A 2015-04-24 2016-04-20 随机密码密码本密码学 Active CN107787568B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562152816P 2015-04-24 2015-04-24
US62/152,816 2015-04-24
PCT/US2016/028504 WO2017011046A2 (en) 2015-04-24 2016-04-20 Random cipher pad cryptography

Publications (2)

Publication Number Publication Date
CN107787568A true CN107787568A (zh) 2018-03-09
CN107787568B CN107787568B (zh) 2021-09-07

Family

ID=57148148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680036990.1A Active CN107787568B (zh) 2015-04-24 2016-04-20 随机密码密码本密码学

Country Status (8)

Country Link
US (3) US10003457B2 (zh)
EP (1) EP3286870B8 (zh)
CN (1) CN107787568B (zh)
AU (1) AU2016294131B2 (zh)
CA (1) CA2983436A1 (zh)
HK (1) HK1249682A1 (zh)
IL (1) IL255135B (zh)
WO (1) WO2017011046A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109474909A (zh) * 2018-08-28 2019-03-15 北京交通大学 用于ctcs-3级列控***车地安全通信协议的密钥管理方法
CN109743592A (zh) * 2019-01-09 2019-05-10 安徽睿极智能科技有限公司 基于二维密码本的实时码流加密方法
CN111435934A (zh) * 2019-01-10 2020-07-21 恩智浦有限公司 用于超宽带测距中的数据帧传输的密钥导出方案

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016294131B2 (en) 2015-04-24 2020-02-27 7Tunnels, Inc. Random Cipher Pad cryptography
AU2017308060B2 (en) * 2016-08-12 2021-12-23 7Tunnels, Inc. Devices and methods for enabling portable secure communication using random cipher pad cryptography
EP3291480B1 (en) * 2016-09-05 2020-09-02 multitiv GmbH Secure data transmission
US10476663B1 (en) * 2017-01-09 2019-11-12 Amazon Technologies, Inc. Layered encryption of short-lived data
US11356254B1 (en) * 2017-01-09 2022-06-07 Amazon Technologies, Inc. Encryption using indexed data from large data pads
US10608813B1 (en) 2017-01-09 2020-03-31 Amazon Technologies, Inc. Layered encryption for long-lived data
US10466969B2 (en) * 2017-05-08 2019-11-05 Arizona Board Of Regents On Behalf Of Arizona State University Tunable true random number generator using programmable metallization cell(s)
CN111034115B (zh) * 2017-08-25 2023-10-20 7隧道公司 用于扩展真随机数池的表观大小的加密***和方法
WO2019078601A2 (ko) * 2017-10-17 2019-04-25 주식회사 마스터비디 순수난수 생성장치, 그리고 이에 적용되는 인증 방법, 컴퓨터 프로그램 및 기록매체
EP3740862A4 (en) * 2018-01-16 2021-10-27 7tunnels, Inc. CRYPTOGRAPHIC SYSTEMS AND PROCEDURES FOR MODIFYING POOLS BY REALLY RANDOM NUMBERS
US11853719B1 (en) * 2018-05-03 2023-12-26 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Random number generation systems and methods
WO2019224516A1 (en) * 2018-05-23 2019-11-28 Bae Systems Plc Authenticating an entity
US20200287710A1 (en) * 2019-03-04 2020-09-10 Introspective Power, Inc. Single stream one time pad with encryption with expanded entropy
US11128449B2 (en) * 2019-05-10 2021-09-21 Arm Limited Cipher system with continuously replenished reservoir of pseudorandom bits
US11626983B1 (en) 2019-09-10 2023-04-11 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11343270B1 (en) 2019-09-10 2022-05-24 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11240014B1 (en) 2019-09-10 2022-02-01 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11477016B1 (en) 2019-09-10 2022-10-18 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11838410B1 (en) 2020-01-30 2023-12-05 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11322050B1 (en) * 2020-01-30 2022-05-03 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11533175B1 (en) 2020-01-30 2022-12-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography on a smartcard
US11449799B1 (en) 2020-01-30 2022-09-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
KR102222080B1 (ko) * 2020-02-24 2021-03-04 한국전자통신연구원 양자 개체 인증 장치 및 방법
US20230082077A1 (en) * 2020-02-28 2023-03-16 7Tunnels Inc. Cryptographic systems and methods for maintenance of pools of random numbers
DE102020003072B3 (de) * 2020-05-22 2021-07-15 Daimler Ag Verfahren zur sicheren Nutzung von kryptografischem Material
US11675524B2 (en) 2020-08-17 2023-06-13 Crystal Group, Inc. Isolated hardware data sanitize system and method
CN114124367B (zh) * 2020-08-31 2023-03-24 Oppo广东移动通信有限公司 一种数据传输方法、装置及存储介质
CN112398878B (zh) * 2021-01-21 2021-04-16 北京电信易通信息技术股份有限公司 一种基于编码的流数据传输防泄密方法及***

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6359986B1 (en) * 1997-08-06 2002-03-19 Matsushita Electric Industrial Co., Ltd. Encryption system capable of specifying a type of an encrytion device that produced a distribution medium
WO2004105296A2 (en) * 2003-05-15 2004-12-02 Idaho Research Foundation, Inc. Scure communication
CN101639729A (zh) * 2008-03-28 2010-02-03 严鲁生 拼音汉字编码通讯密码
US20110252243A1 (en) * 2010-04-07 2011-10-13 Apple Inc. System and method for content protection based on a combination of a user pin and a device specific identifier
US20120250863A1 (en) * 2009-02-19 2012-10-04 Leonid Bukshpun Chaotic cipher system and method for secure communication
US20130223628A1 (en) * 2012-02-28 2013-08-29 Samsung Electronics Co., Ltd. Storage device and memory controller thereof
CN103618607A (zh) * 2013-11-29 2014-03-05 北京易国信科技发展有限公司 一种数据安全传输和密钥交换方法
CN104160652A (zh) * 2011-12-27 2014-11-19 英特尔公司 用于使用一次性密码的分布式离线登录的方法和***

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799090A (en) * 1995-09-25 1998-08-25 Angert; Joseph C. pad encryption method and software
CA2177622A1 (en) * 1996-05-29 1997-11-30 Thierry Moreau Cryptographic data integrity apparatus and method based on pseudo-random bit generators
DE60129682T2 (de) * 2000-03-29 2008-04-30 Vadium Technology Inc., Seattle Einmalige pad-verschlüsselung mit zentralschlüsseldienst und schlüsselfähigen zeichen
EP1808977A1 (en) * 2000-03-29 2007-07-18 Vadium Technology Inc. One-time-pad encryption with key ID and offset for starting point
US7197142B2 (en) * 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
US8059817B2 (en) * 2006-06-20 2011-11-15 Motorola Solutions, Inc. Method and apparatus for encrypted communications using IPsec keys
US7864952B2 (en) * 2006-06-28 2011-01-04 Voltage Security, Inc. Data processing systems with format-preserving encryption and decryption engines
US8332655B2 (en) 2009-01-30 2012-12-11 International Business Machines Corporation Method for order invariant correlated encrypting of data and SQL queries for maintaining data privacy and securely resolving customer defects
US20120063597A1 (en) 2010-09-15 2012-03-15 Uponus Technologies, Llc. Apparatus and associated methodology for managing content control keys
EP2697931B1 (en) 2011-04-15 2017-12-13 Quintessencelabs Pty Ltd Qkd key management system
EP2745212B1 (en) 2011-08-19 2020-12-30 Quintessencelabs Pty Ltd Virtual zeroisation system and method
AU2016294131B2 (en) 2015-04-24 2020-02-27 7Tunnels, Inc. Random Cipher Pad cryptography

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6359986B1 (en) * 1997-08-06 2002-03-19 Matsushita Electric Industrial Co., Ltd. Encryption system capable of specifying a type of an encrytion device that produced a distribution medium
WO2004105296A2 (en) * 2003-05-15 2004-12-02 Idaho Research Foundation, Inc. Scure communication
CN101639729A (zh) * 2008-03-28 2010-02-03 严鲁生 拼音汉字编码通讯密码
US20120250863A1 (en) * 2009-02-19 2012-10-04 Leonid Bukshpun Chaotic cipher system and method for secure communication
US20110252243A1 (en) * 2010-04-07 2011-10-13 Apple Inc. System and method for content protection based on a combination of a user pin and a device specific identifier
CN104160652A (zh) * 2011-12-27 2014-11-19 英特尔公司 用于使用一次性密码的分布式离线登录的方法和***
US20130223628A1 (en) * 2012-02-28 2013-08-29 Samsung Electronics Co., Ltd. Storage device and memory controller thereof
CN103618607A (zh) * 2013-11-29 2014-03-05 北京易国信科技发展有限公司 一种数据安全传输和密钥交换方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
G. GOWTHAM,E. SAMLINSON: "A secured trust creation in VANET environment using random password generator", 《2012 INTERNATIONAL CONFERENCE ON COMPUTING, ELECTRONICS AND ELECTRICAL TECHNOLOGIES (ICCEET)》 *
韩磊: "一种随机密码表库多表替换字符加密思想", 《科技传播》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109474909A (zh) * 2018-08-28 2019-03-15 北京交通大学 用于ctcs-3级列控***车地安全通信协议的密钥管理方法
CN109474909B (zh) * 2018-08-28 2020-07-24 北京交通大学 用于ctcs-3级列控***车地安全通信协议的密钥管理方法
CN109743592A (zh) * 2019-01-09 2019-05-10 安徽睿极智能科技有限公司 基于二维密码本的实时码流加密方法
CN109743592B (zh) * 2019-01-09 2021-07-23 安徽睿极智能科技有限公司 基于二维密码本的实时码流加密方法
CN111435934A (zh) * 2019-01-10 2020-07-21 恩智浦有限公司 用于超宽带测距中的数据帧传输的密钥导出方案
CN111435934B (zh) * 2019-01-10 2023-12-26 恩智浦有限公司 用于超宽带测距中的数据帧传输的密钥导出方案

Also Published As

Publication number Publication date
US20160315763A1 (en) 2016-10-27
AU2016294131B2 (en) 2020-02-27
US10637649B2 (en) 2020-04-28
IL255135A0 (en) 2017-12-31
HK1249682A1 (zh) 2018-11-02
IL255135B (en) 2021-02-28
EP3286870A2 (en) 2018-02-28
AU2016294131A1 (en) 2017-11-16
US20190058579A1 (en) 2019-02-21
WO2017011046A2 (en) 2017-01-19
US20200295918A1 (en) 2020-09-17
EP3286870B8 (en) 2022-11-16
EP3286870B1 (en) 2022-10-05
US11245515B2 (en) 2022-02-08
CN107787568B (zh) 2021-09-07
WO2017011046A3 (en) 2017-02-16
CA2983436A1 (en) 2017-01-19
EP3286870A4 (en) 2018-12-05
US10003457B2 (en) 2018-06-19

Similar Documents

Publication Publication Date Title
CN107787568A (zh) 随机密码密码本密码学
CN106209739B (zh) 云存储方法及***
US9001642B2 (en) Selective downlink data encryption system for satellites
CN106375390B (zh) 一种物联网中数据传输方法、***及其装置
CA3191453A1 (en) Transferring cryptocurrency from a remote limited access wallet
WO2019140464A1 (en) Internet of things devices for use with an encryption service
EP2573956B1 (en) Multi-operator system for accessing satellite resources
CN109565510A (zh) 使用随机加密密码本加密法进行安全通信的***和方法
EP2745212A1 (en) Virtual zeroisation system and method
CN105100115A (zh) 一种基于加密口令及数据拆分的隐私保护的数据存储方法
CN103248476B (zh) 数据加密密钥的管理方法、***及终端
CN105245328A (zh) 一种基于第三方的用户及文件的密钥产生管理方法
US11201729B2 (en) Devices and methods for enabling portable secure communication using random cipher pad cryptography by enabling communications to be passed to the device from a host, encrypted and/or decrypted, and passed back to the host
CN105871902A (zh) 数据加密及隔离***
CN111602113A (zh) 用于修改真随机数池的密码***和方法
CN102938762B (zh) 一种基于移动终端的文件安全管理***
CN102833077A (zh) 金融ic及金融社保ic卡远程发卡数据传输加解密方法
CN114726628A (zh) 无人机巡检***及其加密方法和无人机、地面终端
Yang A quantum secure direct communication protocol without quantum memories
CN104683355A (zh) 一种防抵赖的动态口令生成方法及动态口令验证***
CN109672525A (zh) 一种具有高效前向索引的可搜索公钥加密方法及***
KR20210014554A (ko) 비밀 채팅을 통해 메시지를 송수신하는 기법
GB2500753A (en) Downlink data encryption in a satellite
CN220475843U (zh) 一种大型活动中的活动区域安全管理***
CN118042456A (zh) 量子安全的基于北斗短报文的无人机控制***及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1249682

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant