CN109565510A - 使用随机加密密码本加密法进行安全通信的系统和方法 - Google Patents

使用随机加密密码本加密法进行安全通信的系统和方法 Download PDF

Info

Publication number
CN109565510A
CN109565510A CN201780048692.9A CN201780048692A CN109565510A CN 109565510 A CN109565510 A CN 109565510A CN 201780048692 A CN201780048692 A CN 201780048692A CN 109565510 A CN109565510 A CN 109565510A
Authority
CN
China
Prior art keywords
message
encryption
destination
rcp
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
CN201780048692.9A
Other languages
English (en)
Other versions
CN109565510B (zh
Inventor
凯文·R·麦卡锡
迈克尔·L·哈蒙
韦斯利·A·希尔德布兰特
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 CN109565510A publication Critical patent/CN109565510A/zh
Application granted granted Critical
Publication of CN109565510B publication Critical patent/CN109565510B/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
    • 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
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • 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/0852Quantum cryptography
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

公开了具有多种不同模式的系统和方法,用于用随机加密密码本(RCP)加密消息的双向数据传输。直接模式是以对等方式从一个端点到另一个端点。吞吐量模式可以被配置为端点之间的通信,其中加密数据服务器(CDS)管理端点之间的通信和附加加密。CDS进一步加密消息,使得在源端点和CDS之间存在对等加密,并且在CDS和目的地端点之间存在不同的对等加密。吞吐量模式还可以被配置为发送方和多个目的地之间的广播通信,每个目的地具有其自己的不同RCP加密。路由器到路由器模式可以被认为是对等传输的一种特定类型,其中每端的对等体是路由器、服务器、虚拟专用网络服务器和网关,而不是用户端点。

Description

使用随机加密密码本加密法进行安全通信的系统和方法
优先权声明
本申请要求2016年8月12日提交的美国临时专利申请序列号62/374330的“Systems and Methods for Secure Communication Using Random Cipher PadCryptography”的提交日期的权益,该申请的公开内容在此通过该引用全部并入本文中。
技术领域
本公开的实施方式一般涉及加密法,并且更具体地,涉及使用类似于一次性密码本的数据和结构的加密和解密。
背景技术
加密对于许多类型的通信都很重要,包括但不完全限于涉及财务数据、医疗数据和政府机密数据的通信。许多类型的加密都很难解密,但最终可能会被破解。其他类型的加密具有显著的漏洞,使得解密相对容易。传统的一次性密码本一般被认为是完全安全和不可破解的。然而,传统的一次性密码本具有与如何传送一次性密码本以使其保密相关的缺点。此外,对于传统的一次性密码本,密钥的长度等于要加密的数据的长度,这可能不适合低带宽应用,即使一次性密码本的安全传送是可能的。
附图说明
图1是示出用于使用随机加密密码本(RCP)来传送信息的加密系统的框图。
图2是示出使用RCP的对等消息加密的框图。
图3是示出通过数据服务器的RCP加密消息的通信的框图。
图4是包括密钥服务器并示出通过数据服务器的RCP加密消息的通信的框图。
图5是示出通过包括RCP加密的配对路由器的消息通信的框图。
图6是示出使用包括RCP加密的安全专用网络在客户端装置和服务器之间的消息通信的框图。
图7是示出包括用于消息加密的RCP服务器和RCP客户端的系统的框图。
图8示出了用于生成映射索引、使用映射索引将数据RCP映射到密钥RCP以及将数据RCP直接映射到密钥RCP的处理。
图9示出了用于在RCP服务器上创建新RCP、从客户端上的加密RCP生成新RCP、发送加密消息以及解密接收到的消息的处理。
图10是示出用于实践本公开的实施方式的计算系统的框图。
具体实施方式
在下面的详细描述中,参考附图,附图形成本文的一部分,并且在附图中通过说明的方式示出了其中可以实践本公开的具体示例实施方式。这些实施方式被足够详细地描述以使本领域技术人员能够实践本公开。然而,可以利用其他实施方式,并且可以在不背离本公开的范围的情况下进行结构、材料和工艺改变。本文中呈现的图示并不意味着是任何特定方法、系统、装置或结构的实际视图,而仅仅是用于描述本公开的实施方式的理想化表示。本文中呈现的附图不一定按比例绘制。为了方便读者,各种附图中的类似结构或部件可以保持相同或类似的编号;然而,编号上的相似性并不意味着结构或部件在尺寸、组成、配置或任何其它性质上必然相同。
将容易理解的是,如本文中总体描述和附图中所示的实施方式的部件可以以各种不同的配置来布置和设计。因此,以下对各种实施方式的描述并不旨在限制本公开的范围,而是仅代表各种实施方式。虽然可以在附图中呈现实施方式的各个方面,但是除非具体地指示,否则不一定按比例绘制附图。
此外,所示出和描述的特定实现仅是示例,并且不应被解释为实现本公开的唯一方式,除非在本文中另有说明。可以以框图形式示出元件、电路和功能,以便不以不必要的细节模糊本公开。相反,所示出和描述的特定实现仅是示例性的,并且不应被解释为实现本公开的唯一方式,除非在本文中另有说明。此外,块定义和在各个块之间的逻辑分区是特定实现的示例。对于本领域普通技术人员来说显而易见的是,本公开可以由许多其它分区解决方案来实践。在大多数情况下,已经省略了关于定时考虑等的细节,其中这些细节对于获得对本公开的完全理解不是必需的,并且在相关领域的普通技术人员的能力范围内。
本领域普通技术人员将理解,可以使用各种不同技术和技巧中的任何一种来表示信息和信号。例如,可以通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任意组合来表示贯穿本说明书的数据、指令、命令、信息、信号、比特、符号和码片。为了清楚地呈现和描述,一些附图可以将信号示为单个信号。本领域普通技术人员将理解,信号可以表示信号总线,其中总线可以具有各种位宽度,并且本公开可以在包括单个数据信号的任意数量的数据信号上实现。
结合本文所公开的实施方式描述的各种说明性逻辑块、模块和电路可以用通用处理器、专用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其设计成执行本文所描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,但可选地,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算装置的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器、或任何其它这样的配置。包括处理器的通用计算机被认为是专用计算机,而通用计算机被配置成执行与本公开的实施方式相关的计算指令(例如,软件代码)。
此外,注意,可以根据被描绘为流程图、流程框图、结构图或框图的处理来描述实施方式。尽管流程图可以将操作动作描述为顺序处理,但是这些动作中的许多可以以另一顺序、并行或基本上并发地执行。此外,动作的顺序可以重新安排。处理可以对应于方法、线程、函数、处理、子例程、子程序等。此外,本文公开的方法可以以硬件、软件或两者来实现。如果以软件实现,则功能可以作为计算机可读介质上的一个或多个指令或代码来存储或传输。计算机可读介质包括计算机存储介质和通信介质两者,通信介质包括便于将计算机程序从一个地方传送到另一个地方的任何介质。
应当理解,本文中使用诸如“第一”、“第二”等指定的对元件的任何引用都不限制这些元件的数量或顺序,除非明确说明了这种限制。相反,这些指定可以在本文中用作区分两个或多个元件或元件实例的方便方法。因此,对第一和第二元件的引用并不意味着在那里可以仅使用两个元件,或者第一元件必须以某种方式在第二元件之前。此外,除非另有说明,一组元件可以包括一个或多个元件。
本文中描述的元件可以包括同一元件的多个实例。这些元件可以由数字指示符(例如110)一般性地指示,并且具体地,由数字指示符后跟字母指示符(例如110A)或在数字指示符前跟“破折号”(例如110-1)指示。为了便于理解描述,大部分元件号指示符以引入元件或最充分讨论元件的附图的编号开始。因此,例如,图1上的元件标识符将大部分采用数字格式1xx,且图4上的元件将大部分采用数字格式4xx。
本文中可以包括标题以帮助定位详细描述的某些部分。不应认为这些标题限制了任何特定标题下所述概念的范围。此外,在任何特定标题中描述的概念在整个说明书的其它部分中通常适用。
如本文所使用的,关于给定参数、性质或条件的术语“基本上”是指并且包括在一定程度上本领域普通技术人员将理解给定参数、性质或条件满足小程度的差异,诸如,例如在可接受的制造公差内。举例来说,取决于基本上满足的特定参数、性质或条件,参数、性质或条件可以是至少90%满足、至少95%满足或甚至至少99%满足。
在整个说明书中对“一个实施方式(one embodiment)”、“一个实施方式(anembodiment)”或类似语言的引用意味着结合所指示的实施方式描述的特定特征、结构或特性包括在本公开的至少一个实施方式中。因此,“在一个实施方式中”,“在实施方式中”和整个该说明书中的类似语言可以,但不一定,都指同一个实施方式。
本文所描述的实施方式便于随机加密密码本(RCP)的利用,随机加密密码本可以在某种程度上类似于传统的一次性密码本,但是以新的和不同的方式使用。RCP不仅用于加密信息(例如,文档、媒体流和数据文件),而且还用于加密后续RCP,这些RCP反过来又可以由原始用户递归使用。
传统的一次性密码本加密通常被认为是不可破解的。类似地,只要为发起者和接收方设置递归使用RCP的方法,RCP就包括这些不可破解的属性。因此,只要生成RCP的一方继续发送由前面的RCP加密的后续RCP,并且所使用的RCP被销毁,它们就可以使用无穷无尽的RCP。
拦截传输通常不会帮助入侵者,因为RCP加密无法破解。在最坏的情况下,预定的接收方将不会收到预定给他的传输,并将与发送方联系,发现信息被盗或丢失。
在一些实施方式中,初始RCP交换安装是在电子环境“外部”完成的,或者以具有发送方和接收方的完全认证的高度安全的方式完成的。这会导致其中无法解密每个后续RCP,并且因此无法截获以供使用的情况。
该设置允许企业(例如,HMO)需要将医疗记录发送给数千名符合医疗保险可移植性和责任法案(HIPPA)的客户,确保客户或参与者的信息不被窃取。
另一示例是,它还确保两个政府机构(例如司法部和财政部)之间的信息传输在传输期间始终是安全的。
传统的一次性密码本目前不适合普遍使用,由其是企业使用,因为每个密码本是单个事件,并且发送方和接收方针对每个传输必须具有相同的密码本。相同的密码本是加密和解密所必需的。迄今为止,传统的发送方和接收方之间的一次性密码本是使用公钥加密(PKE)交换的,这是易破解的。使用PKE来“安全”地交换密码本并不安全,而且越来越容易受到攻击。为每一种新的用途手动(例如,通过邮件或快递)递送新的密码本是不切实际的、昂贵的和低效的;此外,将每个连续的密码本交到一个或多个接收方手中的方法会产生漏洞。
在单独或累积实施方式中呈现的以下方面呈现了可以使用RCP加密方法或处理的功能性机会。通常,RCP可以用于数据加密,并且单独用于加密加密处理本身的特征。换句话说:
1.原始RCP可以用于为电子传输加密一个新的、不相关的RCP,该RCP也是不可破解的。
2.新的不相关的RCP使用来自之前的RCP进行加密,这意味着即使被拦截,也无法对新RCP进行解密或使用。
3.原始用户可以生成并发送多个新RCP(以及它们加密或单独加密的文档或信息)。
换句话说,本公开的实施方式包括用于提供加密处理的设备和方法,该加密处理包括将当前RCP重新映射为用于安全地传递替换RCP的不相关随机变量。这些实施方式被配置为减少和/或消除攻击面(attack surfaces)。该递归处理意味着初始RCP和映射数据可以与原始软件安装一起安装,作为端点注册处理的一部分。初始RCP和映射数据可以被配置为使得它们包括服务器或其他装置上的匹配数据。为了确保系统的完整性,应该使用高安全性协议完成包括初始RCP的初始安装。
在描述具体实施方式之前,并且为了便于在本公开中描述,在本文中描述各种术语。在明示意义、字典意义和本文中描述的术语之间可能存在歧义的情况下,本领域技术人员将认识到本文中描述的术语将最符合对本公开的实施方式的更全面的理解。
“真随机数生成器”(TRNG)是一种硬件装置,并且如果需要,还可以使用相关联的软件,用于从不可预测的量子或非量子物理处理中生成真正的随机数。这些处理的量子示例包括核衰变、透过部分透明反射镜的光子,以及真空能量的波动。非量子示例包括热噪声、时钟漂移和RF噪声。
“一次性密码本”(OTP)是一种传统的随机密钥对,其中每个密钥对只使用一次,并且随后被销毁。对中的一个密钥用于加密消息,且对中的另一个密钥用于解密加密消息。通常,OTP是一种对称加密方法,并且密钥是相同的。
“随机加密密码本”(RCP)是根据本公开的实施方式的OTP的不同形式。术语RCP可以用作各种RCP的通用术语。RCP是真随机数的集合,例如,从一个或多个TRNG收集的随机数。“随机”一词的使用通过暗示密码的真正随机性来唤起OTP提供的保护。虽然RCP的大小在实例化之间可能不同,或者甚至在特定实例内也可能不同,但在许多情况下,RCP是以千字节或甚至更大的单位度量的。
“RCP池”是RCP的集合。RCP池中的每个RCP可以由该池中唯一的数字(例如,序列整数)标识。全局唯一标识符(GUID)可以用作标识符,其中每个GUID都包含唯一的128位数字,因此仔细构造该数字可以保证任何特定系统内的全局唯一性。因此,在一些实施方式中,可以用GUID标识每个RCP池。此外,虽然可以使用简单的序列标识符来标识RCP池内的每个RCP,但是可以使用GUID、RCP的散列或其他类型的唯一标识符来标识RCP池内的每个RCP。
“数据RCP”是用于加密和解密两个或多个端点之间的通信的RCP的一种。每个数据RCP仅使用一次。
“随机密钥”(RCK)是数据RCP、数据RCP的部分、两个或多个数据RCP的组合、或两个或多个数据RCP的部分的组合,使得RCK具有与要由RCK操作的消息的长度相对应的长度。
“密钥RCP”是用于加密和解密数据RCP以安全地以电子方式传输它的RCP的一种。每个密钥RCP仅使用一次。
“映射”是将数据RCP(一旦使用)转换为密钥RCP以安全传输后续数据RCP的处理。
“映射索引”是以随机顺序包括数据RCP中从1到单位(例如,字节、字等)数的整数的数字列表。映射索引可以被加密并被发送到特定通信信道的适当端点,并且可以被用作将数据RCP转换成密钥RCP的处理的一部分。
术语“加密的”、“加密数据”、“加密数据结构”和“加密消息”是指已经经过根据本公开的实施方式的加密处理的数据。作为非限制性示例,可以通过在明文消息和RCP之间执行逐位异或来生成加密数据。
术语“解密的”、“解密数据”、“解密数据结构”和“解密消息”是指先前加密并已返回其原始值的数据。作为非限制性示例,可以通过在加密消息和用于加密明文消息的相同RCP之间执行逐位异或来生成解密数据。
术语“未加密的”、“未加密数据”、“未加密数据结构”和“未加密消息”是指从未加密的数据。
术语“交换”是指以使用多个RCP加密数据的顺序不重要的方式应用多个RCP的特性。换句话说,只要使用相同的RCP集加密和解密,使用不同顺序的RCP进行加密和解密就会产生相同的最终结果。
术语“密码本”在本文中可以通常用于指代根据本公开的实施方式的RCP。相反,传统的一次性密码本被明确地称为传统的一次性密码本或一次性密码本,而不是简单地称为密码本。
实施方式概述
在详细描述每个附图之前,本部分描述某些实施方式的概述。本文中描述的装置和方法的实施方式允许当前使用的RCP被重用以加密和发送下一个RCP。由于这种情况下的数据是完全随机的,并且当前的RCP在使用后会被销毁,因此没有机会执行加密分析。
此外,在一些实施方式中,作为附加保护,在使用RCP时采样序列可以不是序列的。例如,许多随机化方法之一可能是在随机密码本地址处开始使用RCP,并且然后使用随机步长前进通过RCP。有关起始地址和步长的信息将与要解密的数据一起发送到解密装置。
RCP加密的一个特征是,如果使用异或操作来加密数据,则第二次应用异或(XOR)(使用相同的RCP数据)将解密数据。因此,加密和解密处理是相似的。然而,加密和解密不限于使用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生成发生在具有最大资源的计算机上,或者发生在发送方的计算机上或者发生在接收方的计算机上。可选地,RCP生成可以由第三方中间计算机或参考计算机(例如,RCP服务器710,参见图7)执行。
RCP生成可以在其自己的线程中运行,并且与加密/解密(客户端)线程的通信很少。在一些实施方式中,两个客户端线程维护多个RCP的本地池,当作出撤销当前RCP的决定时,它们可以快速切换到该本地池。当该池低于指定的数目时,RCP维护线程请求RCP生成器线程向两个客户端的RCP池发送另一个RCP对。客户端维护线程还可以维护RCP使用计数,该计数确定RCP何时应被废弃。
RCP生成器线程可以监视其池级别,导致真随机数生成器(TRNG)产生新RCP。在一些实施方式中,TRNG的质量是重要的。RCP的大小可以有意保持在尽可能小的范围内。保持RCP较小可以有助于避免不必要的RCP延迟。使用和销毁RCP的速度越快,系统就越安全。
虽然RCP大小在不同的实现中可能不同,或者甚至在发送方和接收方装置之间同一通信流的不同阶段也可能不同,但当前原型的RCP大小为100,003字节(大于100,000的最小素数)。素数大小可以有路径随机化的好处。
“大”文件可以定义为任何大于RCP大小的文件。平均而言,针对每{RCP size}字节的数据,RCP将被废弃。因此,一个1GB的文件将使用并废弃约10,000个RCP,并且同一文件将以10,000个段发送,这些段将在接收线程中重新组装。
相反,一个约1,000字节的小文件,其中没有其他文件活动,将不会替换RCP,直到它自然废弃。因此,用户可以指定在非活动期间保留部分使用的RCP的时间。
在解密期间,可以监视几个因素以保证消息完整性(验证、散列值、校验和和字节计数),当这些失败时,通过向发送方发送NAK(否定确认)信号来拒绝数据块。这会导致发送方重新格式化并重新发送邮件。如果一切正常,接收方向发送方发送ACK(确认)信号,然后发送方格式化并发送下一个块。
在一些实施方式中,在执行加密处理的计算机处理器或处理装置内实现本文中描述的加密特征中的一些或全部。根据在本文中描述的特定加密技术发生的数据转换使得处理装置能够作为特殊目的的处理装置,该特殊目的的处理装置能够具有否则使用传统编程或逻辑处理不可获得的新功能。此外,这种加密处理的有效处理需要在计算机处理系统内实现。此外,用于存储与本文中描述的加密技术相关联的数据的电子存储设备和用于执行本文中描述的加密技术的计算机处理装置之间的交互实现了比通过其他非计算机化装置可能实现的效率大得多的效率。
实施细节
图1是示出用于使用随机加密密码本(RCP)来传送信息的加密系统100的框图。本公开的实施方式提供用于RCP加密消息的双向数据传输的多种不同模式。
直接模式140是从一个单端点110A(也称为源系统110A)到另一个端点110B(也称为目的地系统110)。此模式在本文中也可以称为点对点模式和对等模式。
吞吐量模式150可以被配置为端点(110A和110B)之间的通信,其中服务器310(也称为加密数据服务器310)管理端点(110A和110B)之间的通信和附加加密。吞吐量模式还可以被配置为发送方和多个目的地之间的广播通信,每个目的地具有其自己的不同RCP加密。
路由器到路由器(R2R)模式可以被认为是一种特定类型的对等传输,其中每一端的对等体是路由器、服务器、虚拟专用网络(VPN)服务器和网关,而不是用户端点。R2R模式对于通过一个或多个参与者的批量传输可能有用,所有参与者都连接到任一端的同一路由器。R2R模式加密从一台路由器到另一台路由器的业务,WiFi连接和到路由器的直接连接可能不安全,因此R2R模式可能更适合于每个物理路由器位置的窃听都受到良好控制的环境,而路由器之间的通信则使用RCP加密进行管理,以创建RCP加密VPN。下面结合图5的讨论更全面地讨论R2R模式。
对于直接传输140和吞吐量传输150两者,发送用户创建或选择112要传输的内容,将消息传输到RCP加密应用程序120,其中使用包括真随机数的RCP进行RCP加密122。
直接传输140通过简单地选择124已经与源系统110A具有配对关系的目的地系统110B并按发送来实现。目的地系统110B将消息接收到目的地端上的RCP加密应用程序120中,并使用匹配的RCP解密126该消息。然后解密消息可以在目的地系统110B上显示114或进一步处理。使用过的RCP在使用时即被销毁,并且永远不得再使用。
吞吐量传输150以与直接传输140相同的方式开始。然而,在吞吐量传输150中,源系统110A仅与加密数据服务器310具有RCP配对关系,加密数据服务器310与各种授权端点保持多个RCP配对关系,并因此充当数据服务器集线器315。源系统110A上的RCP加密应用程序120使用与加密数据服务器310上的RCP匹配的RCP来加密122消息,然后加密数据服务器310使用针对每个目的地系统110B的新的不同RCP来执行已经加密消息的吞吐量加密320,将不同加密消息155发送到目的地系统110B上以进行解密。每个目的地系统110B将消息接收到RCP加密应用程序120中,并且使用与加密数据服务器310上的匹配RCP配对的RCP解密126该消息。然后解密消息可以在每个目的地系统110B上显示114或进一步处理。每个传输只有两个端点,并且每个消息的每个字符都使用一个RCP进行唯一和单独的加密,该RCP将被销毁,永远不再使用。
更详细地,用户在源装置110A(例如,在计算机、平板计算机或手持计算机上)上创建消息业务,并将消息上载到在源系统110A上运行的RCP加密应用程序120。RCP加密应用程序120包括已经从密钥服务器410加载到应用程序上的一个或多个RCP。密钥服务器410包括用于生成RCP的TRNG硬件。针对源系统110A生成的RCP也将在对等传输模式下被递送到目的地系统110B。在吞吐量模式的情况下,针对源系统110A生成的RCP可以被维护在密钥服务器410上或者被递送到加密数据服务器310。下面结合图3和图4讨论RCP的这两个位置的附加细节。
在消息在源系统110A上被加密之后,发送用户选择一个或多个作为注册客户端(例如,具有递送给它们的RCP和RCP加密应用软件120的客户端)的接收方124。
如果源系统110A使用对等模式,则将加密消息直接发送140到目的地系统110B。下面结合图2进一步讨论对等模式。
如果源系统110A使用吞吐量模式,则将加密消息150连同可嵌入加密消息中的接收方列表一起发送到加密数据服务器310。加密数据服务器310使用来自源系统110A的接收方列表来进一步加密消息并将其发送到适当的目的地系统110B。下面结合图3和图4进一步讨论吞吐量模式。
如图1右侧所示,无论从另一对等体还是从加密数据服务器310接收加密消息,运行在目的地系统110B上的RCP加密应用程序120都接收加密消息,并使用与源系统110B或加密数据服务器310上的RCP相对应的RCP来解密消息,并且可以将明文消息传递到在目的地装置上运行的任何适当应用程序以呈现给用户。例如:如果明文消息是图像,则可以将明文消息传递给图像查看器应用程序;如果明文消息是文本,则可以将明文消息传递到字处理应用程序;如果明文消息是音频记录,则可以将明文消息传递到音频播放器应用程序。
图2是示出使用RCP的对等消息加密的框图。对等模式可以被配置为软件或固件,或者被集成到硬件中,无缝地适合于现有的系统基础设施和技术产品。该系统构造了由一系列完全不可预测和不可再现的真随机数组成的随机加密密码本(RCP),这些真随机数可以由量子力学不确定性生成,并由量子力学定律保证。
这些RCP以匹配对的形式提供给配对的端点,这些端点可以是动态加密的,或者是物理分布的。下面参照图7至图9讨论动态分发和RCP加密处理的一个示例。
在单个用户将加密数据放入230存储器270中的情况下,可以仅使用单个RCP而从未定义匹配的RCP。每次检索和解密存储的数据时,RCP都会被销毁,并使用一个新RCP进行后续加密。然而,应注意,在一些实施方式中,加密存储也可以用作间接通信手段。换句话说,用户1可以将加密消息存储230在可传输存储装置270上或云存储270中,例如下拉框中。然后,用户2可以从可传输存储装置或云存储检索加密消息,并使用相应的RCP进行解密。
在对等模式中,发送用户创建或选择122用于传输的内容,并将消息加载到源系统110A上的RCP加密应用程序120,其中使用由真随机数组成的RCP进行加密124。
直接传输232通过简单地选择已经与源系统110A具有配对关系的目的地系统110B并按下发送来实现。目的地系统110B将消息接收到目的地系统110B上的RCP加密应用程序120中,并使用匹配的RCP解密126该消息。然后解密消息然可以在目的地系统110B上显示114或进一步处理。在大多数实施方式中,使用过的RCP在使用时被销毁,并且永远不会被重用。
在一些实施方式中,TRNG硬件250可以是用于向配对对对等体中的每一个提供匹配RCP(240A和240B)的独立装置。在其他实施方式中,TRNG硬件250可以是用于向各种配对用户装置提供RCP的数据服务器(未示出)的一部分。
图3是示出通过加密数据服务器310的RCP加密消息的通信的框图。在吞吐量模式中,加密数据服务器310成为可信任和授权网络的中央服务器。通过加密数据服务器310的消息业务从未进入未加密状态。每个端点,无论是源系统110A还是目的地系统(110B、110C、110D),与加密数据服务器310具有配对关系,使得加密数据服务器310包括与其配对的每个端点相同的RCP或RCP池。因此,作为图3中的一个具体示例,加密数据服务器310包括与源系统110A中的RCP1匹配的RCP1。加密数据服务器310还包括:与目的地系统110B中的RCP2匹配的RCP2、与目的地系统110C中的RCP3匹配的RCP3,以及与目的地系统110D中的RCPn匹配的RCPn。用于在源系统110A和加密数据服务器310之间加密的RCP也可以被称为源RCP。用于在目的地系统110和加密数据服务器310之间加密的RCP也可以被称为目的地RCP。
如图3左侧所示,源系统110A用RCP1加密120A明文消息,并将加密消息304A连同指示目的地系统110接收加密消息的信息以及可能已经使用RCP的哪些部分的元数据一起发送到加密数据服务器310。
加密数据服务器310接收加密消息304A并确定哪个目的地系统110将接收该消息。然后,对于每个目的地系统110,加密数据服务器310上的吞吐量加密320使用与该目的地系统110配对的RCP单独地进一步加密加密消息304A。这种进一步的加密创建了一个中间加密消息。一旦消息被进一步加密,则通过将RCP1应用于每个中间加密消息来移除RCP1中的原始加密。因此,该消息在此处理中的任何时刻都必须加密。逐位XOR操作的交换性质确保在将RCP1应用于每个中间加密消息的该处理之后,加密消息仅用特定目的地系统110的目的地RCP加密。此外,由于逐位XOR操作的交换性质,使用源RCP和目的地RCP的这两种加密可以以任何顺序或作为相同处理的一部分来执行。
然后,加密数据服务器310将目的地加密消息(304B、304C、304D)中的每一个分别发送到它们各自的目的地系统(110B、110C、110D)。这些目的地加密消息(304B、304C、304D)还可以包括指示目的地RCP的哪些部分在吞吐量加密320的中间加密中被使用的元数据。每个目的地系统110用其RCP解密120该消息,该RCP与该目的地系统110的加密数据服务器310上的RCP相匹配。
因此,在图3中,消息最初在源系统110A处用RCP1加密。在处理325B处,吞吐量加密320进一步用目的地系统110B的RCP2加密加密消息304A,然后将RCP1应用于中间加密消息以部分解密该消息。在处理325C处,吞吐量加密320进一步用目的地系统110C的RCP3加密加密消息304A,然后将RCP1应用于中间加密消息以部分解密该消息。在处理325D处,吞吐量加密320进一步用目的地系统110C的RCPn加密加密消息304A,然后将RCP1应用于中间加密消息以部分解密该消息。此时,每个目的地加密消息(304B、304C、304D)被发送到其各自的目的地系统(110B、110C、110D),在那里用该目的地系统110的RCP对其进行完全解密。
下面给出源系统110A(即,端点A)向目的地系统110B(即,端点B)和目的地系统110C(即,端点C)发送消息的这种吞吐量模式的示例。在该示例中,使用8位消息和三个8位RCK。记住,RCK是RCP的一部分,它的长度与要操作的消息的长度相同。原始明文消息和三个RCK中的每一个被定义为:
1100 1001=明文
0101 0111真随机数A=RCK(A)
1100 0101真随机数B=RCK(B)
1001 1100真随机数C=RCK(C)
表1说明了该处理的每个步骤。第1列表示步骤号。第2列表示针对发送到目的地B的处理的每个步骤其所存在的字节。第3列表示针对发送到目的地C的处理的每个步骤其所存在的字节。第4列定义使用哪个RCK或执行哪个加密操作。第5列指示RCK位于何处或执行加密操作的位置。表1:串行应用程序:RCK(Src),RCK(Dest),RCK(Src),RCK(Dest)
在第1行,源端点A上的原始明文显示在第2列和第3列中。在第2行,源端点A上的RCK(a)一般定义为RCK(Src),并在第2列和第3列中显示为相同的字节。在第3行,通过明文和RCK(Src)的逐位XOR来创建第一密文CT1。第1行至第3行表示驻留在源端点A上的数据或在源端点A上执行的操作。第3行上的加密字节以粗体显示,表示它们是传输到安全数据服务器的字节。
到目前为止,尽管第2列和第3列都已示出,但只有一条明文消息、一条RCK(Src)、一次加密操作执行和一条加密消息被发送,而不管消息可能去往多少个目的地。在第4行至第9行,操作分散,并且第2列和第3列显示了分别针对目的地端点B和目的地端点C中的每一个执行的RCK和操作。
第4行表示针对目的地端点B和目的地端点C中的每一个的数据服务器上的目的地RCK(RCK(Dest))。因此,RCK(Dest)一般是指目的地端点B的RCK(B)和目的地端点C的RCK(C)。在第5行,通过CT1和RCK(Dst)的逐位XOR创建第二密文CT2。因此,在这一点上,CT2对于目的地端点B和C是不同的。第6行表示源RCK(RCK(Src))在数据服务器上,其与源端点A上的RCK(Src)相同。
在第7行,通过CT2和RCK(Src)的逐位XOR创建第三密文CT3。RCK(Src)的这个应用程序通过从RCK(Src)移除原始加密来部分解密消息,并将CT3作为仅用RCK(Dest)加密消息。第7行上的加密字节以粗体显示,表示它们是传输到目的地端点的字节。
第8行表示针对目的地端点B和目的地端点C中的每一个,RCK(Dest)在目的地端点上。因此,目的地端点B上的RCK(B)与数据服务器上的RCK(B)相同,且目的地端点C上的RCK(C)与数据服务器上的RCK(C)相同。
在第9行,通过CT3和RCK(Dest)的逐位XOR在目的地端点B和目的地端点C中的每一个处恢复原始明文消息。换句话说,在目的地B处,明文消息通过CT3和RCK(B)的逐位XOR恢复,且在目的地C处,明文消息通过CT3和RCK(C)的逐位XOR恢复。
注意,从最初的加密开始,直到最终接收方解密消息为止,消息业务始终不会进入未加密状态。吞吐量加密有效地将原始RCK更改为新选择的真正随机RCK,同时销毁所用的所有RCK。通过只使用RCP中的真随机数一次,就没有攻击模式。
图4是包括密钥服务器410的框图,并且示出了通过加密数据服务器310的RCP加密消息的通信。图4类似于图3,除了通过利用逐位XOR操作的交换性质以不同的顺序执行RCK的应用程序。
两个独立运行的服务器创建图4的吞吐量处理。加密数据服务器310接收加密消息402A,从密钥服务器410请求新的随机密码密钥(RCK),进一步加密加密消息402A,并将其作为目的地加密消息(402B、402C)发送到一个或多个目的地系统(110B、110C)。记住,RCK是用于加密给定传输的一个或多个RCP的一部分。RCP指的是存储的未使用的真随机数。
因此,吞吐量是使用两个独立的服务器实现的,一个服务器处理消息业务,且另一个服务器加密处理RCP管理。在通过将原始发送方RCK与目的地RCK的发送方RCK合并为单个新RCK来创建新RCK时,会发生几个动作。首先,销毁密钥服务器410上的两个RCK,只留下新的组合RCK。这种新的组合RCK永远不能返回到其原始的单独部分。当新的组合RCK应用于加密消息时,原始源RCK将被目的地RCK替换而被抵消。当最初发送消息时,在源系统110A上销毁源RCK,并且当创建组合RCK时,在密钥服务器410上销毁源RCK。此外,当创建组合RCK时,销毁在密钥服务器410上使用的任何目的地RCK。此方案将唯一可能的解密留给目的地系统110中的每一个处的唯一剩余功能性RCK。此外,在组合RCK从密钥服务器410提供的实施方式中,加密数据服务器310不需要拥有解密原始消息所需的密钥。
更详细地,在处理120A中,源系统110A用RCKA加密消息,以创建加密消息RA。用于创建RCKA的任何RCP在源系统110A上被销毁。
吞吐量加密320中的处理430接收用RCKA加密的消息RA,并且还从所包括的元数据确定目的地B和C打算接收该消息。加密消息RCKA包括标识源系统110A、任何目的地系统(110B、110C)、消息长度的元数据,并且可以包括标识符以指示任何RCP的哪一部分被用于定义在加密中使用的RCK。然后,处理430从密钥服务器410请求用于每个目的地系统110的组合RCK。该请求将包括用于标识源系统110A、任何目的地系统(110B、110C)、消息长度的信息,以及可能的标识符,以指示任何RCP的哪一部分被用于定义在加密中使用的RCKA。然后密钥服务器410在RCKA和RCKB的XOR上创建组合RCK AB,并在RCKA和RCKC的XOR上创建组合RCK AC。在创建组合RCK之后,密钥服务器410销毁用于创建组合RCK的任何RCP,其将包括与源系统110A相关联的RCP和与目的地系统(110B、110C)相关联的RCP。然后密钥服务器410将组合RCK AB和组合RCK AC发送回加密数据服务器310。每个组合RCK包括指示适当的目的地系统110、消息长度的元数据,并且可以包括标识符,以指示密钥服务器410上的任何目的地RCP的哪个部分被用于创建组合RCK。组合RCK也可以称为中间RCK。
处理440进一步用RCK AB加密消息RA以创建目的地加密消息RB,并进一步用RCKAC加密消息RA以创建目的地加密消息RC。然后,密钥服务器410将这些目的地加密消息(RB,RC)发送到它们对应的目的地系统(110B,110C)。每个目的地加密消息(RB,RC)包括针对目的地系统(110B,110C)、消息长度的元数据,以及标识符,以指示密钥服务器410上的任何目的地RCP的哪个部分被用于创建组合RCK。
在目的地系统110B上,处理120B接收目的地加密消息RB,使用元数据在存储在目的地系统110B上的RCP内定义RCKB,并用RCKB解密消息RB。用于定义RCKB的任何RCP都将被销毁。类似地,在目的地系统110C上,处理120C接收目的地加密消息RC,使用元数据在存储在目的地系统110C上的RCP内定义RCKC,并用RCKC解密消息RC。用于定义RCKC的任何RCP都将被销毁。
下面给出源系统110A(即,端点A)向目的地系统110B(即,端点B)和目的地系统110C(即,端点C)发送消息的包括进一步细节的示例。此示例(如表2所示)使用与上面示例相同的明文消息和RCK来说明即使RCK以不同的方式组合,也可以获得相同的结果。
在本例中,使用8位消息和三个8位RCK。记住,RCK是RCP的一部分,它的长度与要操作的消息的长度相同。与上面的示例一样,原始明文消息和三个RCK中的每一个定义为:
1100 1001=明文
0101 0111真随机数A=RCK(A)
1100 0101真随机数B=RCK(B)
此外,在密钥服务器410 RCK(AB)和RCK(BC)上创建的组合RCK被定义为:
0101 0111 RCK(A)
1100 0101 RCK(B)
1001 0010 RCK(AB)=RCK(A)XOR RCK(B)
0101 0111 RCK(A)
1001 1100 RCK(C)
1100 1011 RCK(AC)=RCK(A)XOR RCK(C)
表2:应用组合密钥:RCK(Src)、RCK(Comb)、RCK(Dest)
在第1行,源端点A上的原始明文显示在第2列和第3列中。在第2行,源端点A上的RCK(A)一般定义为RCK(Src),并在第2列和第3列中显示为相同的字节。在第3行,通过明文和RCK(Src)的逐位XOR来创建第一密文CT1。第1行至第3行表示驻留在源端点上的数据或在源端点上执行的操作。第3行上的加密字节以粗体显示,以表示它们是传输到安全数据服务器的字节。
到目前为止,尽管第2列和第3列都已示出,但只有一条明文消息、一条RCK(Src)、一次加密操作执行和一条加密消息被发送,而不管消息可能去往多少个目的地。在第4行至第7行,操作分散,并且第2列和第3列显示了分别针对每个目的地端点A和目的地端点B执行的RCK和操作。
第4行表示组合RCK(RCK(Comb))。当在数据服务器处接收到加密消息时,它包括指示源端点和数据端点的元数据,以及用于定义RCP的哪些部分将用于针对源端点、目的地端点A和目的地端点B中的每一个定义用于该消息的RCK的信息。该元数据从加密数据服务器310传递到密钥服务器410。密钥服务器410维护作为在源端点和目的地端点中的每一个处的RCP的副本的RCP。因此,在该示例中,密钥服务器410使用元数据从RCP池A中选择RCK(A),从RCP池B中选择RCK(B),并且从RCP池B中选择RCK(C)。密钥服务器410还使用元数据将RCK(A)和RCK(B)组合成RCK(AB),并且将RCK(A)和RCK(C)组合成RCK(AC)。然后,密钥服务器410将组合RCK(AB)和RCK(AC)发送回密钥服务器410,并且销毁密钥服务器410上的各个RCK(RCK(A)、RCK(B)和RCK(C))以及密钥服务器410上的组合RCK(AB)和RCK(AC)。
这些组合RCK一般定义为RCK(Comb)。因此,加密数据服务器310上的RCK(Comb)一般是指目的地端点B的RCK(AB)和目的地端点C的RCK(AC)。在第5行,数据服务器通过CT1和RCK(Comb)的逐位XOR创建第二密文CT2。因此,在这一点上,CT2针对目的地端点B和C是不同的。第5行上的加密字节以粗体显示,以指示它们是被发送到目的地端点B和C的字节。在发送之后,RCK(AB)和RCK(AC)被销毁。
第6行表示针对目的地端点B和目的地端点C中的每一个,RCK(Dest)在目的地端点上。因此,目的地端点B上的RCK(B)与密钥服务器410上的RCK(B)相同,并且目的地端点C上的RCK(C)与密钥服务器410上的RCK(C)相同。
在第7行,通过CT2和RCK(dst)的逐位XOR在目的地端点B和目的地端点C中的每一个处恢复原始明文消息。换句话说,在目的地B处,明文消息通过CT2和RCK(B)的逐位XOR恢复,且在目的地C处,明文消息通过CT2和RCK(C)的逐位XOR恢复。
注意,从最初的加密开始,直到最终接收方解密消息为止,消息业务始终不会进入未加密状态。吞吐量加密可以有效地将原始RCK更改为新选择的真正随机RCK,同时还可以销毁所使用的所有RCK。通过只使用RCP中的真随机数一次,就没有攻击模式。此外,数据服务器永远无法访问任何端点的原始RCP或RCK,它只保存用于当前消息的组合RCK。这些组合RCK在使用后被销毁。相反,密钥服务器永远无法访问任何明文或密文形式的消息。
图5是示出通过包括RCP加密的一个或多个路由器、服务器或其组合的消息的通信的框图。为了便于讨论,图5中的系统可以称为路由器到路由器(R2R)。然而,应当理解,该系统可以使用路由器、服务器、网关或其他合适的装置,用于与多个客户端通信、加密/解密客户端消息业务以及通过双向RCP加密通道530发送/接收加密消息。为了强调这种灵活性,这些系统在图5中被示出为RCP加密网关(520A、520B),但在描述中可以被称为路由器。
实施方式使用路由器到路由器硬件和/或软件作为在两(2)个分布式位置的多个用户之间交换消息业务的所选应用的专用解决方案。类似地,在一端或两端使用服务器的实施方式包括硬件和/或软件,作为在一个或两个分布式位置处使用服务器资源的所选应用的专用解决方案。当业务进入或离开时,在每台路由器上应用加密。路由器成为单端点,彼此独占配对,并由任一端的许多路由器共享。该系统可能更适合于两端都包含在安全环境中的操作,因为发送方与其对应路由器之间的所有业务可能是明文的,并且如果被截获,则可能遭受利用。
R2R实施方式可以用于在严格控制的情况下的组协作。在路由器(520A,520B)处使用包含动态地或物理地安装的真实随机数的RCP来唯一地和单独地加密每个消息的每个字符。每一个RCP都在消耗时被销毁,永远不再使用。R2R是协作和良好控制环境的简化选择,在任一端处都有几个到多个参与者。
如图5所示,具有TRNG硬件560的服务器560向每个RCP加密网关(520A、520B)分发配对的RCP。因此,路由器(520A、520B)可以被认为类似于下面结合图7至图9所讨论的端点。换句话说,路由器(520A、520B)执行其与受控环境内的各种用户端点的正常通信功能以及RCP加密功能。因此,在一些实施方式中,到路由器(520A、520B)的该用户端点(510、550)业务可以是未加密的。然而,启用RCP的路由器(520A、520B)使用包含来自任一端上的各种用户端点中的任何一个的消息的RCP加密消息彼此通信。
更详细地,并且作为从左向右流动的业务的特定示例,用户组1 510包括一个或多个发送客户端,其向RCP加密网关520A发送未加密消息512。安装在RCP加密网关520A上的RCP加密应用程序用存储在RCP加密网关520A上的RCP加密消息,并通过双向RCP加密通道530发送加密消息。
在接收侧,安装在RCP加密网关520B上的RCP加密应用程序利用存储在RCP加密网关520B上的与RCP加密网关520A上的RCP相对应的RCP来解密消息。然后,这些解密消息542被路由到用户组2 550中的适当接收客户端。
图6是示出使用包括RCP加密的安全专用网络在客户端装置610和服务器640之间进行消息通信的框图。图6可以被认为是图5中更一般的系统的具体实现。在图6中,客户端个人装置610向便携式网络网关620发送和接收未加密消息612。便携式网络网关620使用RCP对这些消息进行加密和解密。消息的加密形式通过安全专用通道630传送,安全专用通道630可以被配置为用于虚拟专用网络(VPN)的RCP加密通道。在企业侧,防火墙642可以包括在安全专用通道630和RCP加固服务器640之间。
RCP加固服务器640使用与便携式网络网关620上使用的RCP相对应的RCP对消息进行加密和解密,然后将未加密消息644发送到企业服务器650,企业服务器650可以根据需要将消息分发到装置和/或服务,诸如,例如电子邮件652、文件存储器654和外部web访问656。
便携式网络网关620可以被配置为小型便携式装置,该小型便携式设备被配置为与用户客户端个人装置610通信,该用户客户端个人设备610可以是例如蜂窝电话、平板电脑、膝上型计算机、计算机或其他合适的装置。客户端个人装置610和便携式网络网关620之间的通信可以是任何合适的协议和连接,诸如,例如Wi-Fi、以太网局域网(LAN)、蓝牙、ZigBee和通用串行总线。
便携式网络网关620在通过任何合适的连接(诸如,例如Wi-Fi或LAN)将业务传送到因特网之前对其进行加密,从而打开返回到企业网络的安全专用通道630。在执行加密时,在每一端使用的RCP在其被使用后被销毁。
为了分发RCP,RCP加固服务器640可以配置有TRNG(未示出)以生成RCP,或者可以耦合到TRNG以将RPC放置在RCP加固服务器640上。便携式网络网关620可以耦合到RCP加固服务器640以将对应的RCP下载到便携式网络网关620上。可选地,便携式网络网关620可以耦合到TRNG以将传送到RCP加固服务器640的相同RCP下载到便携式网络网关620上。
图7是示出包括RCP服务器710和用于消息加密的两个RCP客户端(760A和760B)的系统的框图。图7用作RCP服务器和RCP客户端如何交互的一个示例以给出附加细节。RCP服务器、TRNG硬件装置和RCP客户端的其他变型以及它们之间的交互可以用于本公开的各种实施方式中。
RCP服务器710可以包括各种处理,这些处理可以在RCP服务器710上的单独线程中运行。熵源720可以用于生成随机数并管理主RCP池724。一个或多个RCP客户端对线程730(例如,图7中示出的RCP客户端对A-B线程730)可以用于生成密钥RCP和数据RCP。可以包括一个或多个资产库存线程750,以管理各种RCP客户端对的RCP,并管理各种RCP客户端对的匹配元数据752。
为了便于描述,图7是整个系统的简化描述。本领域技术人员将认识到,在根据本公开的系统中可以存在许多RCP客户端。此外,许多不同的RCP客户端可能希望通信。在本公开的系统中,在RCP客户端的配对以及在RCP服务器710和每个RCP客户端760之间的配对之间发生通信。例如,可能有四个RCP客户端:客户端A、客户端B、客户端C和客户端D。在这样的系统中,RCP服务器710可能需要管理各种客户端对的数据RCP和密钥RCP。为了简洁,本文仅讨论RCP客户端A 760A和RCP客户端B 760B之间的A-B配对。然而,作为非限制性示例,可以存在其它客户端配对,诸如A-C、A-D、B-C、B-D和C-D。所有这些各种配对将由RCP服务器710管理,并且每个单独的配对可以具有在RCP服务器710上运行的其自己的RCP客户端对线程。
在图7的示例中,RCP服务器710在RCP服务器710和RCP客户端A 760A之间的S-A密钥/元数据路径712上传送RCP和RCP元数据752。类似地,RCP服务器710在RCP服务器710和RCP客户端B 760B之间的S-B密钥/元数据路径714上传送RCP和RCP元数据。RCP客户端A760A和RCP客户端B 760B通过通信路径716来回发送加密数据。通信路径(712、714和716)可以使用任何合适的通信接口和协议,诸如,例如蓝牙无线信号、802.1a/b/g/n型无线信号、蜂窝电话信号、TCP/IP、FTP和HTTP。
熵源720包括主RCP池724,主RCP池724保存通用RCP的集合,以供各种RCP客户端对线程使用,以构建密钥RCP 738和数据RCP 732并将其发送到RCP客户端对(760A、760B)。池管理器728管理来自主RCP池724的池请求以保持主RCP池724相对满。例如,如果主RCP池724低于可用RCP的预定阈值,则主RCP池724可以向池管理器728发送对附加RCP的请求。在一些实施方式中,请求可以来自其他源,诸如例如,客户端对A-B线程730中的密钥RCP池744、RCP客户端对(760A760B)(它们在数据RCP或密钥RCP上运行不足)、或者资产库存线程750。
真随机数生成器(TRNG)722是硬件装置,并且如果需要,还可以是相关的软件,用于从不可预测的量子或非量子物理处理中产生真正的随机数。这些处理的量子示例包括核衰变、透过部分透明反射镜的光子,以及真空能量的波动。非量子示例包括热噪声、时钟漂移和RF噪声。TRNG 722将随机数传送到主RCP池724以用随机数填充RCP。TRNG 722还可将随机数递送至映射生成器726以用于构建映射索引727,如以下更全面地说明的。
转向客户端对A-B线程730(和未示出的任何其他客户端对线程),主RCP池724将RCP递送到数据RCP 732。主RCP池724还将相同的RCP递送到映射生成器726,在映射生成器726中,RCP被映射到密钥RCP。映射的密钥RCP 738被递送到密钥RCP池744。此外,用于定义来自密钥RCP池744的哪个密钥RCP将被使用的唯一密钥RCP标识符742被发送到合成模块734。合成模块734将数据RCP 732作为消息主体,并添加唯一密钥RCP标识符742作为报头。下文将更全面地解释这一处理的细节。
加密处理736使用来自密钥RCP池744的当前密钥RCP 746来加密合成数据RCP732。加密处理736在图7中被示为简单的逐位XOR。然而,其他实施方式可以包括任何合适的对称加密处理。在加密之后,所得到的RCP被发送到RCP客户端A 760A和RCP客户端B 760B。
RCP客户端A 760A和RCP客户端B 760B以基本相似的方式操作并且包括相同的元件。因此,RCP客户端760的描述将指代除了需要的地方之外没有指示符“A”或“B”的通用元件。在解密处理762处接收RCP密码。解密处理762使用当前密钥RCP 770来解密RCP并将其发送到分解模块764。分解模块764分离主体部分并将其发送到一个或多个数据RCP池772。在一些实施方式中,维护用于发送数据和接收数据的单独池。为了使RCP客户端760正确地加密和解密消息,RCP客户端760保持同步。此外,一些RCP客户端760能够同时传送全双工发送和接收加密消息。因此,为了促进这种复杂业务,每个RCP客户端760可以维护发送数据RCP池772和接收数据RCP池772。在这样的实施方式中,一个RCP客户端760上的发送数据RCP池772中的数据RCP将与接收数据RCP池772中的数据RCP匹配,反之亦然。这些各种RCP和RCP池在RCP客户端760之间的一致性可以由发送到各种RCP客户端760的资产库存750线程和匹配元数据752来管理。
分解模块764还将解密的RCP(主体和报头两者)发送到映射模块766。映射模块766执行与RCP服务器710中的映射生成器726所使用的处理类似的处理,以将数据RCP转换为密钥RCP。此处理由报头中的变量决定,并且下面将对此进行更全面的说明。所得到的密钥RCP被发送到密钥RCP池768以供将来使用。映射模块766还可以使用来自分解模块764的解密的RCP来生成新的映射索引767以替换当前映射索引767或修改当前映射索引767。
为了在RCP客户端760之间进行安全通信,从适当的数据RCP池772中提取当前数据RCP 774。例如,客户端A 760A使用当前发送数据RCP 774A和加密处理776A来加密客户端消息778A。该加密消息被发送到客户端B。客户端B使用当前接收数据RCP 774B和解密处理776B来生成解密的客户端消息778B。如前所述,在该示例中,加密处理776A和解密处理776B被示出为简单的逐位XOR,并且因此,可以是两个客户端上的相同处理。在使用不同类型的对称加密的实施方式中,加密处理和解密处理可以不同。
在相反的方向上,客户端B 760B使用当前发送数据RCP 774B和加密处理776B来加密客户端消息778B。加密消息被发送到客户端A。客户端A使用当前接收数据RCP 774A和解密处理776A来生成解密的客户端消息778A。在两个方向上,数据RCP只使用一次,并在使用后销毁。
系统交互
现在,更完整的系统交互讨论将添加关于RCP管理和RCP服务器710与RCP客户端对(760A 760B)之间的通信的附加细节。该概念是向客户端760提供匹配的数据RCP,它们可以自由地进入该数据RCP来进行标准对称加密。如前所述,为了避免某些冲突问题,一些实施方式可以保持用于发送和接收数据的单独的数据RCP。一个客户端的发送数据RCP与另一个客户端的接收数据RCP配对。
可以在RCP服务器710和每个客户端760之间交换元数据,而与客户端配对无关。即使在建立配对之前,此元数据交换也可能需要其他RCP池。此链接的使用相当有限,但在一些实施方式中可能需要。例如,如果在客户端配对之前没有通信,客户端将不知道如何请求客户端配对。
下面将讨论引导到客户端配对,然后到客户端对启动,然后到客户端通信。
在客户端安装时,每个客户端760加载足够的RCP数据以建立与RCP服务器710的配对,不需要未加密的通信。不需要预定义的映射参数。这意味着应当加载当前密钥RCP 770,并且密钥RCP池768应当包含一个项。额外的RCP是因为RCP服务器710将发送具有报头的RCP,其大于仅RCP。数据RCP解密762的输出可以使用报头中的元数据重定向到任何RCP池(接收772、发送772、密钥768)或映射索引767。
服务器启动&初始化
熵源720开始着手填充主RCP池724。该线程使用TRNG 722针对每个RCP的每个元件生成随机数,并开始构建主RCP池724。当主RCP池724接近满时,池管理器728监视主RCP池724以节流RCP的创建。
用户登录
在RCP服务器710上启动监听器线程(未示出)以监视各个客户端760的各个用户登录。启动RCP服务器710上的用户线程(未示出),该用户线程处理客户端760上的各个用户与RCP服务器710之间的通信。RCP服务器710发送指向用于服务器/客户端链路的密钥RCP池768的新RCP。RCP服务器710循环,创建新的密钥RCP,直到达到服务器/客户端链路(712、714)的密钥RCP池768中的密钥RCP的期望级别。此链路用于所有预配对通信以及与单个客户端相关联的任何通信,而不是配对通信。
注意,此服务器/客户端链接是图7中未示出的线程。它类似于客户端对A-B线程730,但是用于维护RCP管理的配对以及RCP服务器710和单个客户端760之间的安全通信。
用户配对请求
客户端760可以请求与任何其他登录客户端760配对。从请求开始,RCP服务器710启动客户端对A-B线程730。此外,在来自RCP服务器710的指示下,每个客户端760启动用于该特定客户端配对的其用户对线程。虽然在图7中未示出,但是客户端760可以与多个其他客户端760通信,并且将为与它通信的每个客户端760维护客户端对线程。
RCP服务器710发送指向两个客户端(760A、760B)上的密钥RCP池(768A、768B)的新RCP。RCP报头中的元数据包括随机选择的映射参数,该映射参数被定向为播种数据RCP池(772A、772B)。重复此处理,直到达到密钥RCP池(768A、768B)中的RCP的期望级别。
RCP服务器710针对两个客户端发送定向到数据RCP池(772A、772B)的新RCP,新RCP中的元数据包括随机选择的定向到数据RCP池(772A、772B)的映射参数。重复该处理,直到达到数据RCP池(772A、772B)中的RCP的期望水平。
RCP服务器710启动资产库存线程750,其使用元数据来强制客户端RCP池(密钥768、发送772和接收772)和映射参数缓冲器(未示出)匹配。客户端760使用任何合适的通信接口和协议来初始化用户对通信链路716。
在RCP服务器710的指导下,映射参数被存储在与每个数据RCP池772相关联的缓冲器中。接收到的每个数据RCP都会有新的参数,但不一定与该池相关联。目标由资产库存线程750决定。可以以先进先出(FIFO)方式选择参数。如果遇到某些错误,可以想象映射参数可能运行得很低,在这种情况下,资产库存线程750可以指示将优先级给予补给。同样的一般性评论也适用于密钥RCP池768。此设置中存在大量带宽不对称。RCP服务器710和客户端760之间的大部分带宽在RCP移动中消耗,而所有其他通信只是少量的元数据。
用户对通信
客户端760之间的通信可以是全双工的。(这意味着如果数字协议允许,两个用户可以同时发送而不会发生冲突。)假设两个客户端760同步,并且客户端A 760A正在向客户端B 760B发送客户端消息778A,则当客户端A 760A已经耗尽当前发送数据RCP 774A时,其简单地从发送数据RCP池772A拾取下一个发送数据RCP 774A,并且继续直到完成当前客户端消息778A或者发送块满为止。
当客户端B 760B接收到该块时,其执行相同的操作,但是从接收数据RCP池772B获得下一个接收数据RCP 774B。如果发生任何同步丢失,可能会被块报头中的GUID或其他RCP标识符拾取。
将数据RCP映射到密钥RCP
图8示出了用于生成映射索引、使用映射索引将数据RCP映射到密钥RCP以及将数据RCP直接映射到密钥RCP的处理。
图9示出了用于在RCP服务器710上创建新RCP、从客户端上的加密RCP生成新RCP、发送加密消息以及解密接收到的消息的处理。
将结合图7一起讨论这些图,以充分讨论映射处理的示例性实施方式。通常,映射处理以预定的非序列顺序使用数据RCP的每个元件一次将密码本映射应用于数据RCP,以产生密钥RCP。
通常,数据RCP具有总密钥大小N(例如,以字节为单位)。映射索引可以具有大小M>=N(以指针的数目来度量)。映射索引应被选择为具有作为素数的总索引大小M,并且映射索引中的指针的大小应被选择为使得指针可以表示任何数字0到N-1。
只要偶尔替换映射索引,就可以使用映射索引将数据RCP充分随机化为密钥RCP。如果多次使用映射索引,即使使用随机寻址方法来选择映射索引的元件,也可能在数据RCP和密钥RCP之间的相关性中出现模式。通过使映射索引的大小为素数并使用许多不同随机寻址方法中的一种,密码本映射处理可以针对数据RCP到密钥RCP的每个映射采取通过映射索引的不同路径。
由于映射索引替换可能比移动RCP消耗更多的带宽,因此可以通过使用随机寻址方法来采取通过映射索引的不同路径来延长需要替换之前的映射索引的寿命。作为一个非限制性示例,加密数据RCP可以包括通过映射索引的随机开始位置和随机步长。
图8包括用于构建映射索引的处理800。在处理802中,为映射索引中的所有可用时隙创建列表。在处理802中,指针值也被初始化为0。
在处理804中,从TRNG 722(图7)获得随机数。此随机数用于在映射索引中选择时隙。因此,对于此处理,TRNG 722可以经配置以产生0与M-1之间的随机数。
在处理806中,当前指针值(第一次通过循环为0)被存储在由来自TRNG 722的随机数选择的时隙中。
在处理808中,从可用时隙的列表中移除当前选择的时隙。
在处理810中,执行判决以确定是否已经填充了映射索引中的所有时隙。如果是,则处理800结束。如果不是,则处理804递增指针,并且处理800循环回到处理804,以用当前指针值填充另一随机选择的时隙。
图8还包括用于使用映射索引将数据RCP映射到密钥RCP的处理830。对于该映射处理,定义了一种随机寻址方法,用于确定通过映射索引的随机路径。
作为一个非限制性示例,可以提供初始位置和步长以形成用于遍历密钥RCP的所有位置的处理。因此,可以选择与正在逐步通过的映射索引的大小互质的步长。这可以通过为映射索引选择素数大小,或者通过仔细选择与映射索引的大小互质的步长(例如,素数本身的步长)来实现。
对于本公开的实施方式,可以定义用于映射索引的许多其他随机寻址方法,只要用于执行寻址方法的映射参数可以在两个节点之间传递,这两个节点需要通过映射索引遵循相同的路径,用于数据RCP到密钥RCP的任何特定映射。
在处理832中,初始化空密钥RCP。此外,映射参数用于将映射索引中的偏移定义为开始处理830的初始位置。
在处理834中,从偏移值所指向的位置中选择来自映射索引的RCP指针。
在处理840中,选择来自RCP指针值所指向的位置处的数据RCP的字节。
在处理842中,检索到的字节被附加到密钥RCP的下一个位置。
在处理844中,执行测试以确定密钥RCP是否已满。如果是,则处理结束。
如果密钥RCP未满,则处理846使用映射参数来定义到映射索引中的新偏移。在获得新偏移之后,处理830循环回到处理834并重复直到密钥RCP被完全填充。
映射处理830以及其他合适的映射处理可以用在下面用图9的描述说明的处理900和920中。这些映射处理在本文中也可以称为密码本映射。此外,虽然数据RCP和密钥RCP被描述为使得每个位置包括单个字节,但是可以使用其它大小,诸如,例如16位字、32位字和64位字。
图9示出了用于在RCP服务器710上创建新RCP、从客户端上的加密RCP生成新RCP、发送加密消息以及解密接收到的消息的处理。
处理900是用于在RCP服务器710上创建新RCP的处理。在处理902处,执行根据处理830的密码本映射,或用于定义通过映射索引的路径的其他适当处理,以从数据RCP获得密钥RCP,新密钥RCP可以存储在RCP池中。
在处理904中,数据RCP与从RCP池检索的当前密钥RCP进行XOR,以获得新加密数据RCP。如前所述,XOR是可以使用的对称加密的一个示例。其他实施方式可以使用不同类型的对称加密。
在处理908中,可以将唯一密钥RCP标识符添加到新加密数据RCP。添加是一个非限制性示例。密钥RCP标识符可以被放置在加密数据RCP内的其他位置,只要密钥RCP标识符可以被发送方和接收方两者用于在密钥RCP池中定义相同的密钥RCP。
在处理910中,包括密钥RCP标识符的加密数据RCP被发送到RCP客户端对(760A760B)。
处理920是用于从客户端760上的加密RCP生成新RCP的处理。在RCP客户端对(760A760B)的每个客户端上执行该处理920。
在处理922中,客户端760接收包括密钥RCP标识符的加密数据RCP,并且从加密数据RCP提取密钥RCP标识符。
在处理924中,密钥RCP标识符用于选择当前密钥RCP,并且当前密钥RCP与数据RCP进行XOR以获得新解密数据RCP。如前所述,XOR是可以使用的对称加密的一个示例。其他实施方式可以使用不同类型的对称加密。
在处理926中,可以执行根据处理830的密码本映射或用于定义通过映射索引的路径的其它适当处理,以从数据RCP获得密钥RCP。新密钥RCP可以存储在RCP池中。
在处理928中,新解密数据RCP被存储在数据RCP池772(发送或接收)、密钥RCP池768(当建立密钥RCP的储备时)或映射索引767(当由来自RCP服务器710的资产库存线程750指示时)中的一个中。
处理940是用于加密客户端消息并发送加密消息的处理。在处理942中,从发送数据RCP池772获得数据RCP 774。在不启用全双工通信的一些实施方式中,可以存在单个数据RCP池772而不是发送数据RCP池772和接收数据RCP池772。
在处理944中,未加密的客户端消息778与数据RCP 774进行XOR 776以获得加密消息。如前所述,XOR是可以使用的对称加密的一个示例。其他实施方式可以使用不同类型的对称加密。
在处理946中,将加密消息发送到参与该客户端对的另一客户端。
处理960是用于接收加密消息并解密该消息的处理。在处理962中,从参与该客户端对的另一客户端接收加密消息。
在处理964中,从接收数据RCP池772获得数据RCP 774。在不启用全双工通信的一些实施方式中,可以存在单个数据RCP池772而不是发送数据RCP池772和接收数据RCP池772。
在处理966中,加密的客户端消息与数据RCP 774进行XOR 776以获得未加密的客户端消息778。如前所述,XOR是可以使用的对称加密的一个示例。其他实施方式可以使用不同类型的对称加密。
图10示出了用于实践本公开的实施方式的计算系统1000。作为非限制性示例,计算系统1000可以是用户型计算机、文件服务器、计算服务器、笔记本计算机、平板电脑、手持装置、移动装置、或用于执行软件的其他类似计算机系统。计算机、计算系统和服务器可以在本文中可互换地使用,以指示用于实践本公开的实施方式的系统。计算系统1000被配置为执行包含计算指令的软件程序,并且包括一个或多个处理器1010、存储系统1020、存储器1030、用户界面元件1040和一个或多个通信元件1050。计算系统1000的一些实施方式可以包括一个或多个随机数生成器1060,如上面更全面地解释的。
一个或多个处理器1010可以被配置为执行包括用于实施本公开的实施方式的计算指令的各种操作系统和应用程序。
存储器1020可以用于保存计算指令、数据结构和用于执行包括执行本公开的实施方式的各种任务的其他信息。作为示例而非限制,存储器1020可以包括同步随机存取存储器(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、闪存等。
存储器1020可以包括配置成存储信息的其它类型的存储器装置,包括易失性存储装置或非易失性存储装置。其他类型的存储器1020的示例包括纳米RAM或(NRAM)、基于纳米晶体线的存储器、基于氧化硅的亚10纳米工艺存储器、石墨烯存储器、氧化硅-氮化物-氧化物-硅(SONOS)、电阻随机存取存储器(RRAM)、可编程金属化单元(PMC)、导电桥RAM(CBRAM)、磁阻RAM(MRAM)、相变RAM(PCRAM)、相变存储器或其他固态存储介质。
存储器1030可以用于存储在计算系统1000中使用的相对大量的非易失性信息,并且可以被配置为一个或多个存储装置。作为示例而非限制,这些存储装置可以包括计算机可读介质(CRM)。该CRM可以包括但不限于磁和光存储装置,诸如磁盘驱动器、磁带、光存储驱动器(诸如CD(压缩盘)、DVD(数字多功能盘或数字视频盘))和其他等效存储装置。
与计算系统1000相关的信息可以呈现给具有一个或多个用户界面元件1040的用户,并且从具有一个或多个用户界面元件1040的用户接收该信息。作为非限制性示例,用户界面元件1040可以包括诸如显示器、键盘、鼠标、操纵杆、触觉装置、麦克风、扬声器、照相机和触摸屏的元件。计算系统上的显示器可以经配置以呈现具有关于本发明的实施方式的信息的图形用户界面(GUI)。
通信元件1050可以经配置以与其它装置或通信网络通信。作为非限制性示例,通信元件1050可以包括用于在有线和无线通信介质上通信的元件,诸如例如,串行端口、并行端口、以太网连接、通用串行总线(USB)连接、IEEE 1394(“火线”)连接、闪电连接、霹雳连接、蓝牙无线连接、802.1a/b/g/n型无线连接、蜂窝电话连接、TCP/IP、FTP、HTTP和其他合适的通信接口和协议。
本文所示的软件处理旨在说明可以由本文所示的系统执行的代表性处理。除非另有说明,描述处理动作的顺序并不旨在被解释为限制,并且被描述为顺序地发生的动作可以以不同的顺序发生,或者在一个或多个并行处理流中发生。本领域普通技术人员将理解,除了流程图中概述的步骤和处理之外,还可以发生许多步骤和处理。此外,该处理可以在任何合适的硬件、软件、固件或其组合中实现。
作为非限制性示例,用于执行处理的计算指令可以存储在存储器1040上、传送到存储器1020以供执行,并且由处理器1010执行。当处理器1010执行被配置为执行处理的计算指令时,处理器1010构成用于执行处理的结构,并且当被如此配置时,处理器1010可以被认为是专用计算机。此外,处理的一些或所有部分可以由硬件执行,该硬件被具体地配置用于实施处理。
本说明书中描述的许多功能单元可以被标记为模块、线程或编程代码的其他分离,以便更具体地强调它们的实现独立性。模块可以以一种或另一种形式以硬件至少部分地实现。例如,模块可以实现为包括定制VLSI电路或门阵列、现成半导体(诸如逻辑芯片、晶体管或其他分立部件)的硬件电路。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等可编程硬件装置中实现。
模块还可以使用存储在存储器1020中的物理存储装置1030(例如,计算机可读存储介质)上的软件或其组合来实现,以便由各种类型的处理器执行。
所识别的可执行代码模块可以例如包括一个或多个计算机指令的物理或逻辑块,该计算机指令可以例如被组织为线程、对象、处理或函数。然而,所识别的模块的可执行文件不需要物理地定位在一起,而是可以包括存储在不同位置的不同指令,当逻辑地连接在一起时,这些指令包括模块并实现模块的所述目的。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在几个不同的代码段上、不同的程序之间以及跨几个存储器1030或存储系统1020装置之间。类似地,本文可以在模块内标识和示出操作数据,并且可以以任何适当的形式体现和组织在任何适当类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分布在不同的位置上,包括分布在不同的存储装置上,并且可以至少部分地仅作为电子信号存在于系统或网络上。在以软件实现模块或模块的部分的情况下,软件部分存储在一个或多个物理装置上,该一个或多个物理装置在本文中被称为计算机可读介质。
在一些实施方式中,软件部分以非瞬时状态存储,使得软件部分或其表示在同一物理位置中持续一段时间。此外,在一些实施方式中,软件部分存储在一个或多个非瞬时存储装置上,非瞬时存储装置包括能够存储表示软件部分的非瞬时状态和/或信号的硬件元件,即使非瞬时存储装置的其它部分能够改变和/或传输信号。非瞬时存储的一个示例装置包括只读存储器(ROM),其可以在一段时间内存储代表软件部分的信号和/或状态。然而,存储信号和/或状态的能力并不因发送与所存储的信号和/或状态相同或代表所存储的信号和/或状态的信号的进一步功能而降低。例如,处理器可以访问ROM以获得表示所存储的信号和/或状态的信号,以便执行相应的软件指令。
虽然本文已经相对于某些所示实施方式描述了本公开,但是本领域普通技术人员将认识到并理解,本发明不限于此。相反,在不背离下文所要求保护的本发明的范围及其法律等同物的情况下,可以对所示和所述实施方式进行许多添加、删除和修改。此外,来自一个实施方式的特征可以与另一个实施方式的特征组合,同时仍然包括在发明人所设想的本发明的范围内。

Claims (21)

1.一种用于执行加密的计算机实现的方法,包括:
用源随机加密密钥(RCK)对消息进行加密以产生加密消息,其中,所述源随机加密密钥的长度与所述消息的消息长度相同;并且
确定所述加密消息的目的地系统;
进一步用与所述目的地系统相关联的组合随机加密密钥对所述加密消息进行加密,以产生目的地加密消息,其中,所述组合随机加密密钥的长度与所述消息长度相同;
使用目的地随机加密密钥对所述目的地加密消息进行解密以恢复所述消息,其中,所述目的地随机加密密钥的长度与所述消息长度相同。
2.根据权利要求1所述的计算机实现的方法,其中,进一步对所述加密消息进行加密包括:
执行所述加密消息和所述目的地随机加密密钥之间的XOR操作以产生中间加密消息;以及
执行所述中间加密消息和所述源随机加密密钥之间的XOR操作以产生所述目的地加密消息。
3.根据权利要求1所述的计算机实现的方法,其中,进一步对所述加密消息进行加密包括:
执行所述源随机加密密钥和所述目的地随机加密密钥之间的XOR操作以产生中间随机加密密钥;以及
执行所述加密消息和所述中间随机加密密钥之间的XOR操作以产生所述目的地加密消息。
4.根据权利要求1所述的计算机实现的方法,进一步包括使用真随机数生成器来生成所述源随机加密密钥和所述目的地随机加密密钥。
5.根据权利要求1所述的计算机实现的方法,进一步包括使用量子随机数生成器来生成所述源随机加密密钥和所述目的地随机加密密钥。
6.根据权利要求1所述的计算机实现的方法,进一步包括:
确定所述加密消息的第二目的地系统;
进一步用与所述第二目的地系统相关联的第二组合随机加密密钥来对所述加密消息进行加密以产生第二目的地加密消息,其中,所述第二组合随机加密密钥的长度与所述消息长度相同;
使用第二目的地随机加密密钥对所述第二目的地加密消息进行解密以恢复所述消息,其中,所述第二目的地随机加密密钥的长度与所述消息长度相同。
7.一种加密系统,包括:
源系统,包括:
存储在所述源系统上的一个或多个源随机加密密码本(RCP);以及
处理电路,所述处理电路被配置为使用所述一个或多个源随机加密密码本对消息进行加密以产生加密消息;以及
加密数据服务器,包括:
存储在所述加密数据服务器上的所述一个或多个源随机加密密码本;
存储在所述加密数据服务器上的一个或多个目的地随机加密密码本;以及
处理电路,所述处理电路被配置用于:
接收所述加密消息;
进一步用所述一个或多个目的地随机加密密码本对所述加密消息进行加密,以产生中间加密消息;以及
使用所述一个或多个源随机加密密码本对所述中间加密消息进行部分解密,以产生目的地加密消息;以及
目的地系统,包括:
存储在所述目的地系统上的所述一个或多个目的地随机加密密码本;以及
处理电路,所述处理电路被配置用于:
接收所述目的地加密消息;以及
使用所述一个或多个目的地随机加密密码本对所述目的地加密消息进行解密以恢复所述消息。
8.根据权利要求7所述的加密系统,进一步包括用于所述加密消息的第二目的地系统,并且其中:
所述加密数据服务器进一步包括存储在所述加密数据服务器上的一个或多个第二目的地随机加密密码本,并且所述加密数据服务器上的所述处理电路进一步被配置用于:
进一步用所述一个或多个第二目的地随机加密密码本对所述加密消息进行加密以产生第二中间加密消息;
使用所述一个或多个源随机加密密码本对所述第二中间加密消息进行部分解密,以产生第二目的地加密消息;以及
所述第二目的地系统包括:
存储在所述第二目的地系统上的所述一个或多个第二目的地随机加密密码本;以及
处理电路,被配置用于:
接收所述第二目的地加密消息;以及
使用所述一个或多个第二目的地随机加密密码本对所述第二目的地加密消息进行解密以恢复所述消息。
9.根据权利要求7所述的加密系统,其中,所述加密数据服务器进一步被配置成将所述一个或多个源随机加密密码本安全地分发到所述源系统,并将所述一个或多个目的地随机加密密码本安全地分发到所述目的地系统。
10.根据权利要求7所述的加密系统,进一步包括真随机数生成器,所述真随机数生成器被配置为生成所述一个或多个源随机加密密码本和所述一个或多个目的地随机加密密码本作为真随机数的集合。
11.根据权利要求10所述的加密系统,其中,所述真随机数生成器包括量子随机数生成器。
12.一种加密系统,包括:
源系统,包括:
存储在所述源系统上的一个或多个源随机加密密码本(RCP);以及
处理电路,被配置为使用所述一个或多个源随机加密密码本对消息进行加密以产生加密消息;以及
加密数据服务器,包括:处理电路,被配置为:
接收所述加密消息;
识别所述加密消息的目的地系统;
通过识别所述源系统、所述目的地系统和消息长度来请求组合随机加密密钥;以及
进一步用所述组合随机加密密钥来对所述加密消息进行加密,以产生目的地加密消息;
密钥服务器,包括:
存储在所述密钥服务器上的所述一个或多个源随机加密密码本;
存储在所述密钥服务器上的一个或多个目的地随机加密密码本;以及
处理电路,被配置用于:
响应于来自所述加密数据服务器的请求,通过执行将所述一个或多个源随机加密密码本与所述一个或多个目的地随机加密密码本组合的操作来产生所述组合随机加密密钥;以及
将所述组合随机加密密钥发送到所述加密数据服务器;所述目的地系统,包括:
存储在所述目的地系统上的所述一个或多个目的地随机加密密码本;以及
处理电路,被配置用于:
接收所述目的地加密消息;以及
使用所述一个或多个目的地随机加密密码本对所述目的地加密消息进行解密以恢复所述消息。
13.根据权利要求12所述的加密系统,进一步包括用于所述加密消息的第二目的地系统,并且其中:
所述加密数据服务器上的所述处理电路进一步被配置用于:
识别所述第二目的地系统;并且
通过识别所述源系统、所述第二目的地系统以及所述消息长度来请求第二组合随机加密密钥;并且
进一步用所述第二组合随机加密密钥来对所述加密消息进行加密,以产生第二目的地加密消息;
所述密钥服务器进一步包括存储在所述密钥服务器上的一个或多个第二目的地随机加密密码本,并且所述密钥服务器上的所述处理电路进一步被配置用于:
响应于来自所述服务器的请求,通过执行将所述一个或多个源随机加密密码本与所述一个或多个第二目的地随机加密密码本组合的操作来产生所述第二组合随机加密密钥;并且
向所述服务器发送所述第二组合随机加密密钥;
所述第二目的地系统包括:
存储在所述第二目的地系统上的所述一个或多个第二目的地随机加密密码本;以及
处理电路,被配置用于:
接收所述第二目的地加密消息;以及
使用所述一个或多个第二目的地随机加密密码本对所述第二目的地加密消息进行解密以恢复所述消息。
14.根据权利要求12所述的加密系统,其中,所述密钥服务器进一步包括真随机数生成器,用于生成所述一个或多个源随机加密密码本和所述一个或多个目的地随机加密密码本作为真随机数的集合。
15.根据权利要求12所述的加密系统,其中,所述密钥服务器进一步被配置为将所述一个或多个源随机加密密码本安全地分发到所述源系统,并将所述一个或多个目的地随机加密密码本安全地分发到所述目的地系统。
16.一种加密系统,包括:
第一计算系统,包括:
存储在所述第一计算系统上的一个或多个随机加密密码本的第一副本;以及
处理电路,被配置为:
从发送客户端接收未加密消息;以及
利用一操作将所述未加密消息与所述一个或多个随机加密密码本的所述第一副本组合,以产生加密消息;并且
发送所述加密消息;
第二计算系统,包括:
存储在所述第二计算系统上的一个或多个随机加密密码本的第二副本;以及
处理电路,被配置为:
从所述第一计算系统接收所述加密消息;
利用一操作将所述加密消息与所述一个或多个随机加密密码本的所述第二副本组合,以产生解密消息;以及
将所述解密消息转发给接收客户端。
17.根据权利要求16所述的加密系统,其中:
所述第一计算系统包括路由器,并且所述第一计算系统的所述处理电路进一步被配置用于:
接收和路由来自多个发送客户端的多个未加密消息;
对所述多个未加密消息进行加密以生成多个加密消息;以及
发送所述多个加密消息;以及
所述第二计算系统包括另一路由器,并且所述第二计算系统的所述处理电路进一步被配置用于接收所述多个加密消息,对所述多个加密消息进行解密,并将所述解密消息路由到多个接收客户端。
18.根据权利要求17所述的加密系统,进一步包括密钥服务器,所述密钥服务器被配置为将所述一个或多个随机加密密码本的所述第一副本安全地分发到所述第一计算系统,并将所述一个或多个随机加密密码本的所述第二副本安全地分发到所述第二计算系统。
19.根据权利要求18所述的加密系统,其中,所述密钥服务器进一步包括真随机数生成器,所述真随机数生成器被配置为生成所述一个或多个随机加密密码本作为真随机数的集合。
20.根据权利要求16所述的加密系统,其中:
所述第一计算系统包括便携式网络网关,并且所述第一计算系统的所述处理电路进一步被配置用于:
从多个发送客户端接收多个未加密消息;
对所述多个未加密消息进行加密以生成多个加密消息;以及
通过安全专用通道发送所述多个加密消息;并且
所述第二计算系统包括加密数据服务器,并且所述第二计算系统的所述处理电路进一步被配置用于:
通过所述安全专用通道接收所述多个加密消息;
对所述多个加密消息进行解密;以及
将多个解密消息发送到企业服务器。
21.根据权利要求20所述的加密系统,其中,所述第二计算系统进一步被配置为将所述一个或多个随机加密密码本作为所述一个或多个随机加密密码本的所述第一副本安全地分发到所述第一计算系统。
CN201780048692.9A 2016-08-12 2017-08-11 使用随机加密密码本加密法进行安全通信的系统和方法 Active CN109565510B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662374330P 2016-08-12 2016-08-12
US62/374,330 2016-08-12
PCT/US2017/046520 WO2018089070A2 (en) 2016-08-12 2017-08-11 Systems and methods for secure communication using random cipher pad cryptography

Publications (2)

Publication Number Publication Date
CN109565510A true CN109565510A (zh) 2019-04-02
CN109565510B CN109565510B (zh) 2021-10-08

Family

ID=62109960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780048692.9A Active CN109565510B (zh) 2016-08-12 2017-08-11 使用随机加密密码本加密法进行安全通信的系统和方法

Country Status (7)

Country Link
US (1) US11082211B2 (zh)
EP (1) EP3497876A4 (zh)
CN (1) CN109565510B (zh)
AU (1) AU2017358604B2 (zh)
CA (1) CA3031407A1 (zh)
IL (1) IL264776B (zh)
WO (1) WO2018089070A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507347A (zh) * 2020-10-27 2021-03-16 中国科学院信息工程研究所 面向分布式密码破解框架的破解作业描述信息生成方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11082211B2 (en) 2016-08-12 2021-08-03 7Tunnels, Inc. Systems and methods for secure communication using random cipher pad cryptography
EP3291480B1 (en) * 2016-09-05 2020-09-02 multitiv GmbH Secure data transmission
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)
IL272504B2 (en) * 2017-08-25 2024-05-01 7Tunnels Inc Cryptographic systems and methods for expanding the apparent size of real random number stores
EP4199479A1 (en) 2017-08-28 2023-06-21 Bright Data Ltd. Improving content fetching by selecting tunnel devices grouped according to geographic location
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
LT3780547T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
US11411922B2 (en) 2019-04-02 2022-08-09 Bright Data Ltd. System and method for managing non-direct URL fetching service
US11341254B2 (en) 2019-06-24 2022-05-24 Quantum Properties Technology Llc Method and system for securing data using random bits
US11108550B1 (en) * 2019-06-24 2021-08-31 Daniel M. Esbensen Method and system for highly secured network communication using quantum technologies
US11562081B2 (en) 2019-06-24 2023-01-24 Quantum Properties Technology Llc Method and system for controlling access to secure data using custodial key data
US10984138B1 (en) * 2019-06-24 2021-04-20 Daniel M. Esbensen Method and system for providing highly secured transportable data
US11537728B1 (en) 2020-01-26 2022-12-27 Quantum Properties Technology Llc Method and system for securing data using random bits and encoded key data
DE102020003072B3 (de) * 2020-05-22 2021-07-15 Daimler Ag Verfahren zur sicheren Nutzung von kryptografischem Material
WO2024073843A1 (en) * 2022-10-03 2024-04-11 QDS Holdings Inc. Systems and methods for establishing a secure digital network environment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103415008A (zh) * 2013-07-24 2013-11-27 牟大同 一种加密通信方法和加密通信系统
US20140337615A1 (en) * 2013-05-07 2014-11-13 Terrance A. Tomkow One-time pad communications network
US20140344394A1 (en) * 2007-10-09 2014-11-20 Cleversafe, Inc. Revision Deletion Markers
CN104506504A (zh) * 2014-12-16 2015-04-08 成都驰通数码系统有限公司 一种无卡终端涉密信息的安全机制及安全装置
CN104836656A (zh) * 2015-05-08 2015-08-12 厦门大学 一种视频文件的存储和传输方法
CN104917610A (zh) * 2015-06-15 2015-09-16 上海交通大学 基于量子真随机数的通信中继服务器安全系统及方法
CN105635114A (zh) * 2015-12-18 2016-06-01 恒宝股份有限公司 一种口令校验方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024574B2 (en) * 2004-01-22 2011-09-20 International Business Machines Corporation Unidirectional message masking and validation system and method
US20150244520A1 (en) * 2014-02-21 2015-08-27 Safe Frontier Llc One-time-pad data encryption with media server
US10171238B2 (en) * 2014-04-09 2019-01-01 The Boeing Company Secure data transmission using quantum communication
US11082211B2 (en) 2016-08-12 2021-08-03 7Tunnels, Inc. Systems and methods for secure communication using random cipher pad cryptography

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140344394A1 (en) * 2007-10-09 2014-11-20 Cleversafe, Inc. Revision Deletion Markers
US20140337615A1 (en) * 2013-05-07 2014-11-13 Terrance A. Tomkow One-time pad communications network
CN103415008A (zh) * 2013-07-24 2013-11-27 牟大同 一种加密通信方法和加密通信系统
CN104506504A (zh) * 2014-12-16 2015-04-08 成都驰通数码系统有限公司 一种无卡终端涉密信息的安全机制及安全装置
CN104836656A (zh) * 2015-05-08 2015-08-12 厦门大学 一种视频文件的存储和传输方法
CN104917610A (zh) * 2015-06-15 2015-09-16 上海交通大学 基于量子真随机数的通信中继服务器安全系统及方法
CN105635114A (zh) * 2015-12-18 2016-06-01 恒宝股份有限公司 一种口令校验方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507347A (zh) * 2020-10-27 2021-03-16 中国科学院信息工程研究所 面向分布式密码破解框架的破解作业描述信息生成方法
CN112507347B (zh) * 2020-10-27 2022-06-24 中国科学院信息工程研究所 面向分布式密码破解框架的破解作业描述信息生成方法

Also Published As

Publication number Publication date
WO2018089070A2 (en) 2018-05-17
CA3031407A1 (en) 2018-05-17
IL264776B (en) 2022-06-01
AU2017358604B2 (en) 2021-11-04
CN109565510B (zh) 2021-10-08
WO2018089070A8 (en) 2018-09-13
EP3497876A4 (en) 2020-04-01
US20190182034A1 (en) 2019-06-13
AU2017358604A1 (en) 2019-01-31
US11082211B2 (en) 2021-08-03
WO2018089070A3 (en) 2018-06-07
EP3497876A2 (en) 2019-06-19

Similar Documents

Publication Publication Date Title
CN109565510A (zh) 使用随机加密密码本加密法进行安全通信的系统和方法
CN108809652A (zh) 一种基于秘密共享的区块链加密账本
US20190207758A1 (en) Generation of keys of variable length from cryptographic tables
US20110145576A1 (en) Secure method of data transmission and encryption and decryption system allowing such transmission
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
AU2017308060B2 (en) Devices and methods for enabling portable secure communication using random cipher pad cryptography
WO2012172080A1 (en) Generation of cryptographic keys
CN111034115B (zh) 用于扩展真随机数池的表观大小的加密系统和方法
CN107113164A (zh) 加密数据的重复删除
CN111602113A (zh) 用于修改真随机数池的密码系统和方法
Liu et al. Analysis and improvement of large payload bidirectional quantum secure direct communication without information leakage
US20200045026A1 (en) Centralized Data Management and SaaS with End-to-End Encryption
Goswami et al. Design of a quantum one-way trapdoor function
US20230082077A1 (en) Cryptographic systems and methods for maintenance of pools of random numbers
Sarode et al. A comparative analysis of RSA and MD5 algorithms
JP6386684B1 (ja) コンテンツ保護装置、コンテンツ保護方法、コンテンツ保護プログラム、コンテンツ保護装置を含むデバイス、デバイスを組み込んだ情報処理装置
Kulibaba et al. Linked System of Data Organization and Management
US20230083850A1 (en) Cryptographic systems and methods for development of pools of random numbers
Lan et al. Research on Network Security Strategy Model
Miller Special relativity helps keep a secret for 24 hours
KALYANI et al. Improving Privacy and Security of Data Sharing in Cloud Storage using Key Aggregate Cryptosystem
Jain et al. Secure Data Transmission with Steganography
Santhi et al. A Novel Threshold Based Multi-Authority Access Control System in Cloud Storage Environment
Sharma et al. Multimedia Data Security Enhancing DES &UTF8 Parameterizing Time Constraint
CN109194676A (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: 1263099

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant