CN110073634B - 数据转换***及方法 - Google Patents
数据转换***及方法 Download PDFInfo
- Publication number
- CN110073634B CN110073634B CN201780046538.8A CN201780046538A CN110073634B CN 110073634 B CN110073634 B CN 110073634B CN 201780046538 A CN201780046538 A CN 201780046538A CN 110073634 B CN110073634 B CN 110073634B
- Authority
- CN
- China
- Prior art keywords
- data
- bit stream
- bits
- random
- xor
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 295
- 238000006243 chemical reaction Methods 0.000 title description 44
- 230000006854 communication Effects 0.000 claims abstract description 109
- 238000004891 communication Methods 0.000 claims abstract description 105
- 230000006870 function Effects 0.000 description 258
- 230000008569 process Effects 0.000 description 182
- 238000013507 mapping Methods 0.000 description 135
- 238000004422 calculation algorithm Methods 0.000 description 60
- 230000002441 reversible effect Effects 0.000 description 56
- 230000005540 biological transmission Effects 0.000 description 53
- 239000013598 vector Substances 0.000 description 48
- 238000010586 diagram Methods 0.000 description 42
- 238000009826 distribution Methods 0.000 description 38
- 238000012986 modification Methods 0.000 description 20
- 230000004048 modification Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 16
- 230000002087 whitening effect Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 12
- 238000012856 packing Methods 0.000 description 11
- 238000013501 data transformation Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 230000017105 transposition Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 101000832077 Xenopus laevis Dapper 1-A Proteins 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- BFSVOASYOCHEOV-UHFFFAOYSA-N 2-diethylaminoethanol Chemical compound CCN(CC)CCO BFSVOASYOCHEOV-UHFFFAOYSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 239000008267 milk Substances 0.000 description 2
- 210000004080 milk Anatomy 0.000 description 2
- 235000013336 milk Nutrition 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 240000007651 Rubus glaucus Species 0.000 description 1
- 235000011034 Rubus glaucus Nutrition 0.000 description 1
- 235000009122 Rubus idaeus Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003137 locomotive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0075—Transmission of coding parameters to receiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/043—Masking or blinding of tables, e.g. lookup, substitution or mapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
- Complex Calculations (AREA)
Abstract
在各种实施例中,揭示一种耦合到处理器的计算机可读存储器媒体。所述存储器媒体经配置以存储指令,所述指令致使所述处理器:检索种子值;接收数字位流;使用所述种子值作为到伪随机数发生器PRNG的种子来生成随机位流,其中所述随机位流含有至少与所述数字位流一样多的位;置乱所述随机位流的位以创建随机位缓冲器;通过对所述数字位流及所述随机位缓冲器应用第一异或XOR生成经混淆数字位流,其中所述经混淆数字位流具有与所述数字位流相同数目个位;及将所述经混淆数字位流提供到通信接口。
Description
相关申请案的交叉参考
本申请案主张以下美国专利申请案的优先权权益:2016年6月6日申请的第62/346,451号美国临时专利申请案、2016年6月24日申请的第62/354,615号美国临时专利申请案、2016年8月18日申请的第62/376,876号美国临时专利申请案、2016年9月29日申请的第62/401,609号美国临时专利申请案及2016年12月22日申请的第62/438,443号美国临时专利申请案,其中每一者的全部内容以引用方式并入本文中。
技术领域
本发明大体上涉及通信***领域,特定来说,涉及经设计以混淆数据以使数据免受网络攻击的数据通信***。
背景技术
保护数据使其免于他人窥探一直是因特网开发的重要部分。举例来说,隐藏信息(例如跨网络传输的信用***或登录信息)有助于向终端用户提供安全感、向商人提供确定性感觉及向***处理公司提供安全感。已开发帮助减轻泄漏隐藏信息的风险的各种数据混淆技术。
除需要一般混淆技术来保护信息传送外,需要关于“智能装置”之间的信息传送的专门技术。在全部都可本地地或通过因特网交换信息的微控制器的每年出货量超过100亿个的情况下,实现了大量多种多样的所谓“智能装置”。这些装置全部都可经由因特网存取且所得网络通常称为物联网(IoT)。举例来说,可为IoT装置的大型装置可为冰箱,其可连接到因特网及保持跟踪其中的物品使得当业主的牛奶不足时,冰箱自动给家里订购更多牛奶。另一方面,较小装置,如作为业主的警报***的一部分的用于检测门或窗是否被打开的传感器,可连接到因特网且警告业主门或窗已打开。另一IoT装置可为起搏器,其可与因特网通信且向医生以供关于患者的心脏的运作情况的反馈,且甚至允许医生从远程位置控制起搏器的设置。
允许将装置连接在一起的所有方式的能力还提出挑战及风险。举例来说,在起搏器的案例中,认证及安全性是极为重要的,使得只有经过授权的人才可对起搏器的设置进行修改。另外,因为较小的IoT装置趋于基于电池电力运行且因为其大小通常意味着电路板必须是小的且因此不能存储大量信息,所以节省能量以及使在IoT装置上运行的算法紧凑非常重要。典型的IoT装置需要局部低电力无线连接以及因特网连接。对于多数此类应用及解决方案来说,需要网关经由一些形式的本地基础设计或使用蜂窝连接将传感器连接到因特网。
用于IoT装置的当前认证及安全算法,如高级加密标准(AES),需要大量处理能力且因此缩减装置的有用寿命。此外,由于对实施AES的电力及空间要求,许多装置根本就不实施安全及认证功能。此外,使用AES 128,例如,需要算法在16字节块中工作,但由于IoT应用中的有效负载较小,所以填补到16字节界限比较浪费。此外,小尺寸的IoT装置通常意味着其缺少使AES实施加速的硬件指令集。最终,实施例如AES的算法需要许多CPU循环,这直接影响可用电池寿命。需要一种准许IoT装置的认证及安全性的方法,其是占用面积小、用电少及具有强认证及安全性的算法的部分。
发明内容
本发明提供用于克服领域中的缺点的***及方法。举例来说,揭示的***及方法提供更强混淆、更快处理时间、更低电力消耗及定制。
本发明的一个实施例涉及一种计算机可读存储器媒体,其通过包含数据部分及标头部分及通过使用至少两种不同的混淆技术混淆传入数字位流。第一混淆技术混淆传输数字位流,且第二混淆技术用于混淆标头部分中的信息,所述标头部分中的信息包含关于如何使用第一混淆技术混淆数据部分的信息。
本发明的另一实施例涉及从策略服务器获得与混淆技术有关的信息。
本发明的又另一实施例涉及用额外位填补数字位流以进一步混淆传输。
本发明的又另一实施例涉及一种用于在低电力IoT控制器与网关装置之间传送数据的方法,所述方法包括:从低电力IoT控制器的内部存储器检索秘密;基于所述秘密生成表分发密钥;从所述网关装置接收第一经编码帧,其中所述第一经编码帧包括第一数据表;使用所述表分发密钥且检索所述第一数据表解码所述第一经编码数据帧;使用所述第一数据表编码第二经编码数据帧;将所述第二经编码数据帧传输到所述网关装置;修改所述第一数据表以创建第二数据表;从所述网关装置接收第三经编码数据帧,其中所述第三经编码数据帧使用所述第二数据表编码;及尝试使用所述第二数据表解码所述第三经编码数据帧。
根据本发明的又另一实施例,提供一种可操作地耦合到处理器的非暂时性计算机可读存储器媒体。所述计算机媒体及所述存储器可为可进一步包含通信接口的通信装置的组件。所述存储器媒体经配置以存储指令。所述指令经配置以实施本文揭示的方法。所述指令可致使所述处理器:检索种子值;接收数字位流;及使用所述种子值作为到伪随机数发生器(PRNG)的种子来生成随机位流。所述随机位流可含有至少与所述数字位流一样多的位。所述指令还可致使所述处理器:置乱所述随机位流的位以创建随机位缓冲器;例如通过对所述数字位流及所述随机位缓冲器应用第一异或(XOR)生成经混淆数字位流。所述经混淆数字位流具有与所述数字位流相同数目个位。另外,所述指令可致使所述处理器:将所述经混淆数字位流提供到通信接口用于例如传输。所述随机位流可包含2的幂次方个字节,例如,2个字节、4个字节、8个字节、16个字节、32个字节等。可通过首先初始化随机位缓冲器、遍历所述随机位流中的所述位及识别设置了所述随机位流中的哪些位来完成所述随机位流的所述位的置乱。可计算经设置的所述随机位流中的每一位的目的位位置,并接着设置所述随机位缓冲器中的对应位。所述随机位缓冲器的初始化可包含将全部所述位设置为相同值。根据一些实施例,所述随机位缓冲器的所有位经初始化为零。可使用表查找完成计算所述目的位。
在又另一实施例中,所述指令进一步经配置以致使所述处理接收第二数字位流及通过用所述第二数字位流及所述随机位缓冲器执行第二XOR生成第二经混淆数字位流。在一个实例中,仅所述随机位缓冲器中未用于所述第一XOR中的位用于所述第二XOR中。所述指令进一步可致使所述处理器在所述第二经混淆数字位流具有与所述第二数字位流相同数目个位的情况下将所述第二经混淆数字位流提供到所述通信接口。如果所述第二XOR达到所述随机位缓冲器的末尾(但并非所述第二数字位流的所有位都已经进行XOR),所述指令就可进一步从所述PRNG生成第二随机位流,置乱所述第二随机位流的位以重新填充所述随机位缓冲器,及通过对所述第二数字位流及所述随机位缓冲器应用第三XOR继续生成所述第二经混淆数字位流。所述第三XOR的前几个位是所述随机位缓冲器的第一位及所述第二数字位流中用于所述第二XOR中的最后位之后的所述位。所述指令可进一步经配置以致使所述处理器使用查找表识别要交换哪些位来置乱所述随机位流的所述位,通过基于所述随机位流中的多个位交换所述查找表中的多个值生成经置乱查找表,及使用所述经置乱查找表识别要交换哪些位来置乱所述第二随机位流的所述位。在一些实施例中,生成所述经置乱查找表是由交换所述查找表中的素数值(例如,17)所致。在其它实施例中,当交换表中的值时,维持表的最后交换项使得当接着置乱表时交换将以表中的下一项开始。
根据本发明的另外实施例,提供另外方法、非暂时性计算机可读存储器媒体及通信装置。通信装置可包含通信接口、处理器及可操作地耦合到所述处理器的非暂时性计算机可读存储器媒体。所述存储器媒体可存储指令,所述指令经配置以致使所述处理器:生成随机数;接收数字位流;使用至少所述数字位流计算循环冗余校验(CRC)值;及使用所述随机数作为到PRNG的种子生成随机位流。所述随机位流可含有与所述数字位流及所述CRC值中的经组合数目个位相同数目个位。所述指令可进一步致使所述处理器:在所述数字位流及所述CRC值的序连的情况下,通过序连(1)随机数及(2)所述随机位流的异或(XOR)生成有效负载帧;置乱所述有效负载帧的所述位以创建经混淆有效负载帧;及将所述经混淆有效负载帧提供到所述通信接口。所述随机数也可用于CRC值的计算中。所述随机数可为真随机数。可通过首先初始化随机位缓冲器、遍历所述随机位流中的所述位及识别设置了随机位流中的哪些位来完成所述随机位流的所述位的置乱。可计算经设置的所述随机位流中的每一位的目的位位置,并接着设置所述随机位缓冲器中的对应位。所述随机位缓冲器的初始化可包含将全部所述位设置为相同值。根据一些实施例,所述随机位缓冲器的所有位经初始化为零。可使用表查找完成计算所述目的位。
附图说明
图1A说明用于将数据从一或多个发送器传输到一或多个接收器的数据通信***的一个实施例的框图。
图1B说明用于存储经混淆数据的数据存储***的一个实施例的框图。
图2说明数据通信***的一或多个发送器的数据转换模块的一个实施例的框图。
图3说明数据通信***的一或多个发送器的数据转换模块的另一实施例的框图。
图4说明数据通信***的一或多个接收器的数据转换模块的一个实施例的框图。
图5说明数据通信***的一或多个接收器的数据转换模块的另一实施例的框图。
图6A说明混淆将由发送器传输的数据的标头信息的一个实施例的框图。
图6B说明反混淆由接收器接收到的数据的标头信息的一个实施例的框图。
图7说明用于标头数据的可由发送器的数据转换模块应用的位交换算法。
图8说明由发送器的数据转换模块将图7的算法应用到标头数据的位交换实例。
图9说明可由接收器的数据转换模块应用的位交换的解扰。
图10说明可由标头数据管理器提供到标头混淆模块的标头信息的实例结构。
图11A说明用于编码标头信息的过程的流程图。
图11B说明用于解码标头信息的过程的流程图。
图11C说明根据另一实施例的编码标头信息的过程的流程图。
图11D说明根据另一实施例的用于解码标头信息的过程的流程图。
图12A说明混淆将由发送器传输的输入数据的一个实施例的框图。
图12B说明反混淆由接收器接收到的数据的输入数据的一个实施例的框图。
图13说明可用于输入数据混淆的前向映射及反向映射函数。
图14说明基于选取前向映射经由有索引排序创建反向映射。
图15说明用于使用从具有输入数据的一部分的单个帧取样的数据的数据驱动函数的前向映射及反向映射函数。
图16A说明基于图15中展示的数据驱动映射使用可变偏移编码输入数据实例。
图16B说明用于图16A中展示的编码的编码表及解码表。
图16C说明使用图16B的解码表解码图16A的输入数据实例。
图16D说明基于第一随机生成的值编码输入数据实例。
图16E说明使用第二随机生成的值编码输入数据实例。
图17A说明基于图15中展示的数据驱动映射使用非对称表编码输入数据实例。
图17B说明用于图17A中展示的编码的编码表及解码表。
图17C说明解码图17A的输入数据实例。
图18说明基于选取前向映射创建反向映射,其中非对称表用于前向映射中。
图19说明可用前向映射函数实施的误差校正函数。
图20A说明经由图19的误差校正函数校正损坏的数据流。
图20B说明经由图19的误差校正函数的位误差检测。
图21A说明用于混淆输入数据的白化函数。
图21B说明图21A的白化函数的额外细节。
图22A说明根据一个实施例的通过将位***到位序列中混淆输入数据的转置函数。
图22B说明根据另一实施例的通过将位***到位序列中混淆输入数据的转置函数。
图23A说明根据另一实施例的通过将位***到位序列中混淆输入数据的转置函数。
图23B说明根据另一实施例的通过将位***到位序列中混淆输入数据的转置函数。
图24A说明根据另一实施例的通过将位***到位序列中混淆输入数据的转置函数。
图24B说明根据另一实施例的通过将位***到位序列中混淆输入数据的转置函数。
图25说明根据另一实施例的通过将位***到位序列中混淆输入数据的转置函数。
图26说明使用前缀前向映射及前缀反向映射进一步混淆输入数据。
图27A说明用于编码输入数据的过程的流程图。
图27B说明用于解码输入数据的过程的流程图。
图28A说明在发送器处序连及加扰标头数据及输入数据的一个实施例的框图。
图28B说明解扰在接收器处接收到的经混淆数据的一个实施例的框图。
图29说明用于将两个数据集加扰在一起的加扰映射函数。
图30说明用于将两个数据集加扰在一起的卷积加扰映射函数。
图31说明根据一个实施例的包含可用于将两个数据集加扰在一起的随机生成的值的加扰表。
图32说明根据另一实施例的包含可用于将两个数据集加扰在一起的随机生成的值的加扰表。
图33说明根据另一实施例的包含可用于将两个数据集加扰在一起的随机生成的值的加扰表。
图34说明根据一个实施例的包含可用于解扰接收到的数据集的随机生成的值的解扰表。
图35说明发送器与接收器之间的通信,及经配置以提供一或多个密钥或其它参数用于数据混淆及数据反混淆的策略服务器。
图36说明可用于加扰标头数据与输入数据的加扰函数。
图37是可用于实施本文描述的***及方法的计算***的框图。
图38说明在环境中的多个装置之间建立通信协议的***的框图。
图39说明用于在两个装置之间实施密钥分发协议的过程的流程图。
图40说明密钥分发表生成过程,所述密钥分发表用于将数据表分发到多个装置。
图41说明用于混淆帧中的数据以在多个控制器与网关之间实施通信协议的独立算法。
图42说明将传输的实例帧。
图43说明图41的置乱算法的详细置乱过程。
图44说明用于反混淆数据表中的数据以在多个控制器与网关之间实施通信协议的独立置乱算法。
图45说明用于混淆帧中的数据以在多个控制器与网关之间实施通信协议的顺序算法。
图46说明图45的顺序算法的详细表修改过程。
图47说明其中数据反混淆可经实施以用于固定站与移动装置之间的通信的环境中的多个固定站及移动装置。
图48是可在固定站与移动装置之间传输的实例包,所述包使用本文描述的***及方法混淆。
图49是说明固定站与移动装置之间的密钥供应的框图。
图50是网络存取控制***的框图。
图51是用于在网络中的两个节点之间建立会话的过程的流程图。
图52A是说明供应用于通过网络存取服务器在网络中通信的节点的过程的框图。
图52B是用于供应用于通过网络存取服务器在网络中通信的节点的过程的流程图。
图53是说明在网络中的节点之间建立基础设施即服务(IaaS)会话的过程的框图。
图54是说明在网络中的节点之间建立平台即服务(PaaS)会话的过程的框图。
图55是说明在网络中的节点之间建立软件即服务(SaaS)会话的过程的框图。
图56是说明如何将会话分发于网络中的多个节点之间的框图。
图57是包含***到网络存取控制***中以增强***中的通信的多个线缆中的块(BITW)节点的网络存取控制***的框图。
图58是说明车辆子***的引擎控制器与ECU之间的通信过程的框图。
图59A说明可由引擎控制器提供到车辆子***的ECU的供应消息。
图59B说明可在接收到图59A的供应消息之后生成的ECU的供应消息。
图59C说明可在接收到图59B的供应消息之后生成的引擎控制器的消息。
图59D说明在图59A到C的供应过程之后生成的引擎控制器的消息。
图60说明可由引擎控制器生成以与ECU重新同步的重新同步消息。
图61说明用于准备供传输的消息的表链接方法。
图62A说明引擎控制器可创建及发送以认证ECU的消息。
图62B说明引擎控制器可创建及发送以认证ECU的消息。
图63A是用于编译文件及将所述文件从用户装置分发到引擎控制器的过程。
图63B说明用于编译图63A的文件的过程。
图63C说明用于加密图63A的文件的每一块的过程。
图63D说明加密图63A的文件的每一块的标头的过程。
图63E说明加扰图63A的文件的块的标头及有效负载的步骤。
图64是用户装置与引擎控制器之间的安全传输过程。
图65是解码及组装由用户装置传输到引擎控制器的文件的过程。
具体实施方式
大体上参考图式,描述用于数字位流的数据混淆的***及方法。本文描述的***及方法可用于编码及解码数据包以保护数据。注意:数字位流在本发明中可称为位流、数据流、数据包或数据;且本发明中各种术语的使用不受限制。
进一步参考图式,描述用于管理多个装置之间的经混淆通信的***及方法。多个装置之间的通信协议可经由密钥供应建立,且本文描述的混淆技术可用于保护通信。
参考图1A,展示数据通信***的实施例。所述数据通信***大体上包含一或多个发送器100及一或多个接收器150,其中一或多个发送器100将一或多个数据传输提供到一或多个接收器150。在图1A的实施例中,展示仅一个发送器100及接收器150;然而,本文描述的***及方法可经实施用于多个发送器及/或接收器而不背离本发明的范围。
如上文描述,数据传输140中的数据经混淆以使数据传输免受网络攻击。在由发送器100准备供传输的数据期间,数据转换模块102经由一或多个函数及映射混淆数据。数据转换模块102混淆待传输的数据(在本发明中称为“输入数据”)及待传输的数据包的OCTS标头信息(即,出现在待传输的数据包的有效负载区段中的数据)两者。应注意:在本发明中术语“标头”及“标头数据”的使用指代OCTS标头信息而非例如TCP/IP的通信协议(其中例如路由信息的信息将被存储)中的包的标头。数据转换模块102包含管理器104,其经配置以控制混淆数据的过程(例如,确定要使用哪些函数及映射及其次序)及提供可允许接收器反混淆(例如,解扰)所述数据的信息。进一步展示数据转换模块102包含用于混淆数据的三个模块。数据转换模块102包含混淆输入数据的输入数据混淆模块108、混淆数据包的标头数据的标头数据混淆模块110及将来自模块108、110的经混淆数据合并在一起的数据合并模块112。数据转换模块102可包含多个表106以供在混淆期间使用(例如,作为密钥,如后续图式中描述)。
一旦经混淆数据被传输且由接收器150接收,接收器150的数据转换模块152就反转在发送器100的数据转换模块102处执行的混淆过程。数据转换模块152包含管理器154,其经配置以控制反混淆数据的过程。进一步展示数据转换模块152包含用于反混淆数据的三个模块。数据转换模块152包含将接收到的数据***成标头数据部分及输入数据部分的数据***模块158、反混淆输入数据部分的输入数据反混淆模块160及反混淆标头数据部分的标头数据反混淆162。数据转换模块152可包含多个表156以供在反混淆期间使用,如后续图式中描述。
数据转换模块102、152的三个模块可经配置以被独立地驱动。换句话来说,每一模块可根据其自身函数、表等混淆其数据。这有助于防止未经授权的代理商获得原始未经编码数据,这是因为所有三个独立模块将必须由未经授权的代理商“打破”,以便由未经授权的代理商恢复原始未经编码数据。此外,确定三个独立模块中的一者如何混淆数据将不提供关于如何确定另两个模块的混淆的提示。
在图1A的实施例中,展示数据转换模块102、152在发送器100及接收器150中的每一者内(例如,数据转换模块102、152在发送器装置或接收器装置内)。在各种示范性实施例中,数据通信***的任何类型配置是可能的(例如,发送器100可将待混淆的数据发送到远程数据转换模块,接收器150可从远程数据转换模块接收经反混淆数据等)。在一些实施例中,可在不同计算装置中实施数据转换模块的各种功能。应理解,所有此类变体希望落于本发明的范围内。
本发明描述可用于混淆及反混淆数据的前向映射及反向映射函数。前向映射函数可通常经应用以替换新的位模式代替输入位模式,而反向映射函数反转所述替换。在一些实施例中,发送器100可存储或含有前向映射,且接收器150可存储或含有反向映射。所属领域的技术人员应理解,发送器仅需含有前向映射,且接收器仅需含有反向映射。另外,所属领域的技术人员应认识到,给定映射中的仅一者,可容易地导出另一映射,因此,仅需要将单个映射提供到发送器及接收器两者。
参考图1B,展示数据存储***180的实施例。在图1A的实施例中,描述待从发送器传输到接收器的位数据流(例如,“动态数据”)的数据混淆过程。然而,数据混淆过程也可或替代地被应用到待存储的数据(例如,“静态数据”)。在图1B的实施例中,数据存储***180可接收待存储于***的存储器(例如,数据库182)中的数据包。数据存储***180可包含图1A中所描述的输入数据混淆模块108、标头数据混淆模块110及数据合并模块112以用于在存储之前混淆数据。此外,数据存储***180可包含数据***模块158、输入数据反混淆模块160及标头数据反混淆模块162以用于在从数据库182检索之后解码数据。数据存储***180可包含用于管理编码数据及解码经检索数据的过程的一或多个管理器。虽然本发明主要描述用于待传输的数据的数据混淆过程,但应理解,本文的***及方法可经应用用于待本地存储的数据而不背离本发明的范围。此外,虽然本发明主要描述数据库,但存储装置无需呈数据库格式。所属领域的技术人员应认识到,可使用任何形式的存储装置,无论其是否含有数据库模式。举例来说,经混淆数据可被存储于独立文件中、作为文件***的部分、存储在可装卸媒体上等。所属领域的技术人员还应认识到,***可将混淆及反混淆组件散布在不同机器或甚至不同网络上,且那些不同机器及网络可由不同实体控制。
现参考图2到3,更详细展示发送器100的数据转换模块102。数据转换模块102包含经配置以接收待传输的输入数据的数据输入缓冲器114。数据输入缓冲器114接受传入数据、如果必要的话格式化所述数据(例如,将所述数据格式化到适当大小)及将所述数据传递到输入数据混淆模块108以进行编码。数据输入缓冲器114可进一步将数据提供到管理器104及从管理器104接收数据。
管理器104可用作输入数据控制函数,其建立将用于待发送的数据包的混淆的配置。管理器104创建使接收器150能够在接收到数据包时解码所述数据包的标识符(例如,一或多个配置或子配置)。管理器104进一步处置输入数据控制命令,例如指示应改变将用于数据的混淆中的一或多个表的命令、指示应发送或应答交握请求的命令或设置及控制混淆过程所必需的其它命令。管理器104可将标识符及输入数据控制命令提供到标头混淆模块110作为标头信息的部分。管理器104可进一步包含或使用随机数发生器(RNG)116。在一些实施例中,RNG 116可为伪RNG(PRNG)。RNG 116可用于创建标识符以便确定输入数据在输入数据混淆模块108处混淆期间要使用哪些表及/或函数。PRNG还可用于生成伪随机数流,其可由输入数据混淆模块108用于混淆函数,例如与数据进行异或(XOR)。
管理器104可具有各种复杂程度。在一个实施例中,管理器104可经实施为硬编码通过。换句话来说,管理器104可不做出决策或不具有任何选项,且可仅接收输入及自动生成输出(即、接收数据、将数据***到RNG 116及输出所得随机化数据)。在其它实施例中,管理器104可更复杂,从而接收可用于确定如何随机生成值、如何配置数据转换模块102用于混淆过程等等的多个函数及参数。管理器104可从多个服务器或其它源或从数据转换模块102内的单个源接收函数及参数。管理器104可能能够基于在管理器处接收到的数据量增加混淆的复杂度。
输入数据混淆模块108可包含可适用于供混淆的数据的多个函数124。输入数据混淆模块108可包含任何数目个函数124(即,由模块108使用的函数的数目、类型及次序可为固定的或可基于由管理器104随机选取的值或标识符及其它设置或性质改变)。举例来说,由输入数据混淆模块108使用的函数124可基于用户对传输的数据的要求、数据类型、数据涉及的应用及/或数据传输可用的资源选取。
标头混淆模块110包含用于混淆标头信息的多个函数。举例来说,标头混淆模块110包含经配置以交换标头数据内的位的一或多个加扰函数118。此外,标头混淆模块110可包含经配置以替换新的位模式代替待传输的数据包中的输入数据位的一或多个前向映射函数120。展示数据转换模块102包含经配置以将输入提供到标头混淆模块110的各种函数的标头信息管理器126。
在输入数据由输入数据混淆模块108混淆且标头数据由标头混淆模块110混淆之后,数据合并模块112将两个数据集合并在一起。数据合并模块112包含加扰模块128及序连模块130,加扰模块128及序连模块130用于加扰来自两个数据集的位及将所述两个数据集序连在一起。经合并数据被提供到经编码数据输出缓冲器132以供传输到接收器150。
更具体地参考图3,更详细展示数据转换模块102的功能性。实线表示用于待混淆及待传输到接收器150的数据的数据路径。数据在数据输入缓冲器114处接收且被提供到输入数据混淆模块108以供编码。此外,展示由标头混淆模块110提供到数据合并模块112的经编码标头信息。虚线表示数据控制路径;用于确定如何混淆数据的信息(例如,要使用哪些函数、要使用哪些表等)。点状虚线表示标头信息管理器126与标头混淆模块110的各种函数之间的控制路径。
现参考图4到5,更详细展示接收器150的数据转换模块152。一般来说,数据转换模块152的各种组件是数据转换模块102的组件的反转(即,使用与用于混淆数据相同的一般过程反混淆数据)。数据转换模块152包含经配置以接收经编码数据及将数据提供到数据***模块158的经编码数据输入缓冲器164。数据***模块158经由解扰模块166(解扰由加扰函数118加扰的位)及***模块168(分离标头数据与输入数据)***数据。数据***模块158从标头信息管理器154接收输入以确定数据***过程的相关信息(例如,以识别包含关于在数据的混淆期间使用了哪些表的信息的数据的部分)。
在一个实施例中,接收器150可接收经编码且以可由接收器辨识的格式格式化的数据包。举例来说,包可用OCTS编码。如果接收到的包并非OCTS包,接收器就无需进一步处理数据包。然而,在数据***模块158处可能需要对包进行一定处理以确定数据包是否是OCTS。数据***模块158(或接收器150的另一模块)可包含确定包是否是OCTS包的验证模块169。验证模块169可例如校验一或多个字段(例如,下文所描述的速览字段及校验和字段)以排除包是否是OCTS包。如果数据包是OCTS包,数据***模块158就可对其执行进一步处理,以允许解扰及解码所述包。
***数据被提供到管理器178。标头数据及原始消息两者在此点处仍是混淆的。管理器178确定由输入数据混淆模块108针对接收到的数据包使用了混淆的哪一配置。管理器178可进一步包含PRNG 182。在一个实施例中,PRNG 182可为类似于图2的RNG 116的伪随机数发生器。举例来说,如果RNG 116是PRNG,如果相同种子值用于RNG 116及PRNG 182中,来自RNG 116及PRNG 182的输出就将相同。经混淆标头数据被转发到标头反混淆模块162。标头反混淆模块162包含一或多个解扰函数170及一或多个反向映射函数174以反混淆标头数据,如后续图式中描述。标头反混淆模块162将与由数据转换模块102用于混淆数据的函数类型及数目有关的配置信息返回到管理器178。所述信息与经混淆输入数据一起被转发到输入数据反混淆模块160。基于由管理器178确定的配置信息,输入数据反混淆模块160可应用一或多个函数176(其可与应用到发送器100处的输入数据的函数124有关)反混淆数据。输入数据反混淆模块的结果被存储,并接着使其可用于数据输出缓冲器180中。
大体上参考图2及4,展示RNG 116、PRNG 182实施于管理器中。在其它实施例中,RNG函数可经实施于数据转换模块102、152的其它模块中的任何者中。如果发送器100使用真随机数发生器(而非PRNG),RNG的输出就应被发送到接收器150,这是因为接收器需要接收输出以便反混淆数据。如果发送器100使用PRNG,接收器150就可能能够用PRNG生成相同值(给定到PRNG的输入)。
更具体地参考图5,更详细展示数据转换模块152的功能性。类似于图3,实线表示用于待由数据转换模块反混淆的输入数据及标头数据的数据路径。数据在经编码数据输入缓冲器164处接收且被提供到数据***模块158,数据***模块158又将数据提供到上文所描述的两个反混淆模块160、162。虚线表示数据路径控制路径;用于确定如何反混淆数据的信息(例如,使用哪些函数、使用哪些表等)。点状虚线表示标头信息管理器154与标头反混淆模块162的各种函数之间的标头控制路径。
大体上参考图6A到11,更详细描述标头混淆过程的一个实施例。更特定来说,更详细描述标头混淆模块110及发送器100的数据转换模块102的活动及标头反混淆模块162及接收器150的数据转换模块152的活动。首先,应注意:标头信息在***的操作中可服务于许多目的。举例来说,标头信息可用作用于在发送器100与接收器150之间传递控制信息的信息路径。标头信息还可用于识别希望用于特定接收器的数据包且因此拒绝希望用于其它接收器的包。以此方式,标头信息可用于增加条目到指派的特定安全网络中。标头信息还可用于确定是否保证包并非是根据本发明的方面编码的包。此确定可在接收器150中有用,这是因为确定包并非是根据本发明的方面编码允许接收器150完全绕过解码步骤;这防止浪费计算循环。另外,标头信息可含有启用经编码输入数据的反混淆所必需的信息。一般来说,标头信息相较于包的大小相对较小。举例来说,在一个实施例中,标头信息小于20个字节,而包可含有1500个字节。
标头混淆模块110通常混淆标头信息以否定除预定接收者外的任何人使用或查看数据的能力。标头混淆模块110可使用不同于用于输入数据的混淆或数据合并的函数的一组唯一函数以增加整体混淆过程的复杂度。替代地,标头混淆模块110可使用与数据转换模块的其它模块相同的混淆函数。标头混淆模块110可使用例如一或多个替换或映射函数(例如,用第二位模式替换第一位模式)、一或多个白化函数及/或一或多个转置函数。在后续图式中更详细描述这些函数。
现参考图6A,展示发送器100的标头混淆模块110的框图。标头混淆模块110的输出经设计以便在发送器被迫使重新传输或发送相同消息的情况下不重复输出。换句话来说,标头混淆模块110的每一输出应是唯一的,无论标头信息是否相同。
在图6A的实施例中,说明两种类型的混淆函数。标头混淆模块110包含标头信息位加扰函数206及标头信息前向映射器212。在其它实施例中,标头混淆模块110可包含任何数目个唯一函数。
标头信息位加扰函数206通常经配置以交换固定数目个位内的位。举例来说,标头信息位加扰函数206可交换十六位字内的位,具有将十六个位内的任何单个位移动到字内的任何其它位置的能力,且具有用于执行反函数(例如,在接收器处)或将每一位返回到其原始位置的能力。可使用交换几群组位的函数,其中群组大小及交换的位的位置两者都由交换的级别及位置定义。大体上参考图7到9,说明十六位字的一个此实例函数。虽然在图7到9中展示具有十六个位的实例,但应理解,在各种实施例中,交换函数可适用于任何数目个位。
在图7的实施例中,展示十六位字的交换函数,其中字的每一元素索引[0,15]。所述函数定义三个级别数,从而产生级别0交换、级别1交换、级别2交换及级别3交换。在级别3处,位被分组到21=2个群组中,每一群组8个位;在级别2处,位被分组到22=4个群组中,每一群组4个位,如此等等。也具有十六个位长度的加扰密钥224(图8到9中展示)可被预先交换、在初始化过程期间交换或由RNG 116生成。加扰密钥224的十六个位确定如何加扰输入字的位。
举例来说,如图7中展示,将级别3交换展示为由加扰字的位0驱动。如果加扰密钥224的位0是1,就执行两个群组位[0,7]与[8,15]之间的交换。如果加扰密钥224的位0是0,就不可执行交换。将级别2交换展示为由加扰密钥224的位1及2驱动。如果加扰密钥224的位1是1,就执行两个群组[0,3]与[4,7]之间的交换;如果加扰密钥224的位2是1,就执行两个群组[8,11]与[12,15]之间的交换。通过所展示的每一级别及位重复此过程。参考图8,生成由函数206接收到的输入字220的经加扰字222。每一突出显示的区域说明基于加扰密钥224的位具有值1交换发生的地方。举例来说,由于位0是1,所以在位[0,7]与[8,15]之间执行交换。交换函数以级别3开始且逐渐向下到级别0。注意:如图7到9中展示,仅十四个交换是必需的,且所以忽略加扰密钥224的位15。
参考图9,展示位字220的解扰(在标头反混淆模块162处执行,如下文参考图6B描述)。加扰位字220的过程可反转,即,首先以位14开始(如图7中展示,忽略位15)及通过位0应用级别0交换,这可应用级别0交换。
再次参考图6A,标头信息前向映射器212(及图6B的反向映射器258)用于标头混淆过程中。一般来说,‘前向映射’及‘反向映射’被提供为用于标头混淆过程的映射函数的向量对。前向映射提供用于编码标头的函数,且反向映射提供用于解码标头的函数。前向映射函数用新的值替换标头值的部分或全部。反向映射用于将经编码值返回到其原始值。
匹配前向映射器212与反向映射器258。使用的映射可为基本映射(例如,单个值到固定新值的预设映射)、依据单个变量驱动的数据驱动映射或依据多个变量驱动的数据驱动映射。映射的复杂程度可基于所要保护程度增加。参考图13到14更详细描述映射。
由管理器104传递到标头混淆模块110的信息(且因此,图6A中展示的函数206、208)可包含一或多个表标识符及/或控制信息,其识别数据路径中当前使用以编码数据的配置及表。所述信息可取决于特定OCTS(优化代码表信令)配置。用于通信过程管理的信息也可经包含作为控制信息的部分。由管理器104传递到标头混淆模块110的信息可进一步包含来自RNG 116的输出或从使用的RNG序列的输出导出的输入。由管理器104传递到标头混淆模块110的信息可进一步包含帧长度(当其可为变量时,识别帧长度的大小)或由标头混淆模块110编码标头数据所需的任何其它信息。还参考图10,展示识别可由管理器104提供到标头混淆模块110的一些信息的表。所述信息可进一步包含校验和或速览输入,用于验证供传输的数据(即,确保接收到的帧希望用于数据转换模块,以将标头消息验证为准确且被定址的等)。图10中展示的字段经提供作为可包含于标头信息中的实例字段。更一般来说,标头信息包含解码消息必需的信息且可包含信息,例如表ID、识别由发送器使用的映射表的配置字段、***配置信息、一或多个随机抽取值(而非仅加扰字)、数据大小字段(其指示混淆的数据量)及/或任选帧长度(其可用于识别虚设数据,如下文描述)。标头混淆模块110可使用不同技术混淆标头数据的每一字段。上文揭示内容并不意味着限制可在标头中传递的信息类型,且所属领域的技术人员应认识到,必要时其它信息可包含于标头中以将信息提供到解码器以确保消息被正确地解码。
更特定地参考速览字段,所述字段可用于迅速确定传输的数据包是否不是由本文揭示的各种实施例编码的类型。举例来说,速览字段可用于确定数据包是否具有OCTS。此允许使用OCTS编码的包与未用OCTS编码的包共存于网络上。对于接收到的每一包,网络装置可使用速览字段确定包是否不是OCTS包。如果不是,进一步OCTS处理就不是必需的且以处置包的常规方式处置包。然而,如果速览字段指示包可能为OCTS经编码包,进一步处理就是必需的。在一个实施例中,速览字段可使用XOR函数生成。举例来说,速览字段可为标头的两个其它部分的XOR函数的结果,例如表标识符中的两者。对于速度及效率,速览字段本身无需被混淆且可为标头的经混淆部分的XOR函数的结果。以此方式,一旦接收及识别速览字段及将为到XOR的输入的字段的位置,就可迅速执行单个XOR及单个比较以确定包是否可能需要进一步处理。接收数据包的接收器可校验速览字段以确定数据包是否呈适当格式(例如,OCTS配置)。在各种实施例中,除XOR函数外的其它函数可用于创建速览字段。
更特定地参考校验和字段,所述字段可在标头混淆期间混淆。校验和字段可通常用于检测传输、存储期间的误差或排除所述包是使用本发明的技术编码的包。校验和字段可基于在发送器100处混淆的全部数据或数据的某一子集使用用于装箱校验和的众所周知的方法中的任何者创建。举例来说,校验和可通过使用待传输的所有数据(除速览字段外)计算。校验和函数应能够计算数据集的校验和,其中:混淆函数在数据路径混淆函数中是唯一的,输入变量的数目不同,所使用的函数由随机变量确定,且每一元素经历由混淆函数驱动的至少一次变换。接收器可计算关于接收到的数据包的经反混淆标头数据的其自身校验和以查看其是否匹配传递的校验和。在各种实施例中,发送器可使用任何其它类型的误差检测方法以在标头中提供信息,其允许接收器确定在传输期间是否存在误差或提供的信息是否是恶意的。举例来说,接收器可校验以查看数据大小是否在可准许界限内,其可指示传输期间的误差或使接收器对比接收到的数据缓冲器更大的数据缓冲器执行分析的恶意尝试。
标头信息中的每一字段可包含特定且定义数目个位。所述位可经定义使得接收器可在数据反混淆期间识别标头信息。举例来说,数据ID可为7个位,加扰字4个位,速览字段16个位,校验和16个位等。应理解,只要标头可由接收器识别,标头就可以任何方式格式化,且可包含任何数目个字段的任何数目个位。
标头信息位加扰函数206及标头信息前向映射器212从标头信息管理器126检索标头信息及PRNG值。标头数据及PRNG值可定义要使用的映射函数类型(例如,要使用一或多个前向映射函数208中的哪些者),且可进一步包含可由接收器使用以识别经混淆数据的标头部分的识别信息。如图6A中展示,一或多个前向映射函数208可经选择及提供到标头信息位加扰函数206以用于混淆数据;函数的选择可为基于从标头信息管理器126检索的信息。
仍参考图6A,在标头信息由标头信息位加扰函数206加扰之后,标头信息前向映射器212经配置以映射经混淆标头数据。前向映射器212可与表查找一样简单或可采用使用滚动偏移的数据驱动映射。前向映射器212经提供为第二独立混淆函数,独立于位加扰函数206。在数据通过映射混淆之后,数据可作为经编码标头信息214提供到数据转换模块的另一模块(以与输入数据组合)。
现参考图6B,更详细展示接收器150的活动,且更特定来说,更详细展示标头反混淆模块162的活动。如上文描述,标头反混淆模块162可通常反转由发送器100的标头混淆模块110执行的数据混淆。经编码标头信息214从发送器100接收且提供到数据***模块254以将经编码数据***成经编码标头信息及经编码输入数据。标头信息管理器256可接收经编码标头信息及确定一或多个函数或方法,其与相关联于所述函数或方法的参数一起用于混淆数据。标头反混淆模块162包含反转应用到标头数据的映射函数的标头信息反向映射器258及反转应用到标头数据的位加扰函数的标头信息位解扰函数260。
现参考图11A,根据示范性实施例展示用于编码标头信息的过程300的流程图。过程300可由例如标头混淆模块110执行。过程300包含接收标头信息(302)及PRNG值(304)。接收到的标头信息可仅包含与待编码及传输到接收器的数据包相关的信息。PRNG值可包含基于标头数据值伪随机地生成的值。过程300可进一步包含将数据添加到标头信息以使能够由接收器解码数据信息(306)。
过程300进一步包含使用PRNG值确定用于混淆标头信息的一或多个参数(308)。如上文描述,标头可识别位或字节交换函数、映射函数要使用哪些查找表、要使用哪一映射或加扰类型、要映射或加扰哪些标头元素及类似物。在识别如何混淆标头信息之后,识别的一或多个函数用于混淆标头信息(310)。举例来说,还参考图7到9,可用于混淆数据的函数的一个实例是位交换函数。在各种实施例中,函数可由数据转换模块识别,或函数中的一或多者可为特定客户或应用的唯一函数集(例如,特定客户使用特定类型的混淆函数,从而允许个人或客户端将其自身个性化保护添加到数据集)。标头数据本身可使用单个函数混淆,但在标头的不同部分是使用不同函数混淆的情况下其也可使用多个函数混淆。另外,标头的一些部分可保持未被混淆,或在某些应用中,其可能根本没有必要混淆标头。
过程300进一步包含使用前向映射函数(312)以进一步混淆标头数据。举例来说,前向映射函数可为在框308处识别的函数。接着,经混淆标头信息被提供到另一模块以供加扰及序连输入数据(314)。如上文描述,输入数据及标头数据在两个不同模块处单独地混淆,并接着在第三模块处组合及加扰。
现参考图11B,展示根据示范性实施例的用于解码标头信息的过程350的流程图。过程350可由例如标头反混淆模块162执行。过程350包含从发送器接收经编码数据包(352)及将数据包***成标头部分及输入数据部分(354)。举例来说,框354通常包含通过***及解扰经编码数据包识别标头信息的步骤。过程350进一步包含验证标头信息(356)。再次参考图10,标头信息的验证可通常包含校验校验和值、查看速览字段以确定接收器是否是预定接收者等。
过程350进一步包含识别用于编码数据包的一或多个混淆函数(358)。举例来说,接收器150的管理器178可检阅仍混淆的标头信息及从PRNG获得随机数。管理器178可经由标头信息确定由发送器100的PRNG使用的种子值及将相同种子值用于其PRNG。此可允许标头反混淆模块170复制由发送器100使用的函数以混淆数据。过程350进一步包含解扰及反向映射标头信息(360)。一旦标头信息被反混淆,标头中的信息就可用于反混淆输入数据(在后续图式中更详细描述)。
大体上参考图11C到D,在技术上更详细展示编码及解码标头信息的过程。图11C说明用于编码标头信息的一个实施例。过程包含标头信息与PRNG序列的XOR(370)。PRNG序列是由数据转换模块的管理器伪随机生成的数据序列。过程进一步包含计算校验和(371)及映射校验和(372)。框371到372可通常包含计算待传输的所有标头数据的校验和及混淆校验和字段以供传输。过程进一步包含数据表标识符及数据大小字段的位加扰函数(373)及字段的映射(374)。过程进一步包含映射每一随机抽取(375)。举例来说,框375包含映射word1及word2字段,如图10中展示。过程进一步包含计算速览字段(376),如上文描述。过程进一步包含序连标头数据与其它经混淆数据及将两个数据集加扰在一起(377)。
图11D说明用于解码标头信息的一个实施例。一般来说,解码过程可仅为编码过程的反转。过程包含解扰及分离标头数据与其它经混淆数据(380)。过程进一步包含校验速览字段以验证标头是否是OCTS标头(381)(或数据的接收器期望接收的另一标头类型)。一旦验证标头,反向映射就经应用到每一随机抽取(382)及各种数据字段(383)。过程进一步包含解扰数据表标识符及数据大小字段(384)。接着,过程包含反向映射校验和(385)及使用校验和验证标头数据是无误差的(386)。
大体上参考图12A到25,更详细描述输入数据混淆过程的一个实施例。更特定来说,更详细描述输入数据混淆模块108及发送器100的数据转换模块102的活动及输入数据反混淆模块160及接收器150的数据转换模块152的活动。输入数据通常是希望由发送器100传输到接收器150的数据。输入数据可为经配置以由发送器100编码的任何大小或类型。输入数据混淆模块通常混淆输入数据以否定除预定接收者外的任何人使用或查看数据的能力。输入数据混淆模块可使用不同于用于标头数据的混淆或数据合并的函数的一组唯一函数或使用与用于标头数据混淆及/或数据合并的函数相同的一组唯一函数。
现参考图12A,展示发送器100的输入数据混淆模块108的框图。输入数据混淆模块108通常包含一组函数,其可由输入数据管理器402选取以最佳匹配对待发送的数据及可用于数据的传输的资源的要求。输入数据管理器402经配置以确定要使用哪些函数混淆数据及初始化及更新数据混淆过程。输入数据管理器402可包含RNG(例如,图2中所描述的RNG116),其可用于随机选择函数及用于函数的一或多个参数。如果使用了RNG,生成的选择就需要被传递到接收器,而可使用PRNG使得发送器及接收器可使用相同种子生成相同伪随机数。另外,PRNG可用于生成一系列位以用于XOR函数或位替换或位转置函数中。
输入数据混淆模块108可实施任何数目个函数。举例来说,如图12A中展示,第一混淆函数404、第二混淆函数406、高达第n混淆函数408可连续应用到输入数据。输入数据管理器402可将输入提供到每一函数以控制函数的一或多个参数。可使用的数据混淆函数或策略的一些实例包含替换或映射(例如,用第二位模式替换输入数据中的第一位模式)、白化(例如,将经编码数据流的统计变换成均匀分布的概率函数)及转置(例如,交换输入数据的两个或两个以上元素)。应理解,虽然本发明提供此类函数的各种实例,但在其它实施例中,这些函数的任何类型的变体或其它混淆函数可结合本文描述的***及方法使用。
现参考图12B,更详细展示接收器150的活动,且更特定来说,更详细展示输入数据反混淆模块160的活动。输入数据反混淆模块160可通常反转由发送器100的输入数据混淆模块108执行的输入数据混淆。标头反混淆模块162,如上文描述,可从接收到的经编码数据识别经编码标头信息及经编码输入数据。管理器420可接收经编码输入数据部分及确定用于最初编码数据的一或多个函数及用于函数的参数。在其它实施例中,管理器420可为更被动模块,一旦其接收到经编码输入数据部分,就仅进行函数调用。接着,输入数据反混淆模块160可使用与由发送器100使用以编码数据的函数相关的输入反混淆函数422、424、426等(其是由发送器100使用以编码数据的函数的逆)解码数据。输入数据反混淆模块160输出经解码输入数据428以供由接收器150使用。
大体上参考图13到20B,更详细展示映射函数的各种实例。映射函数可适用于输入数据(或标头数据)以便混淆数据。应理解,本发明中提供的实例是仅通过实例,且其它映射函数或替换方法可用于混淆数据,且可使用映射函数或替换方法的任何组合。
参考图13,说明基本映射函数。图13说明用于编码输入数据的前向映射表及用于解码输入数据的反向映射表。前向映射表可由输入数据混淆模块108使用(作为混淆函数404、406或408),而反向映射表可由输入数据反混淆模块160使用。图13的前向映射及反向映射可表现为如下向量对:
‘前向映射’={010 100 011 101 001 111 000 110};
‘反向映射’={110 100 000 010 001 011 111 101}。
在图13的实例中,使用输入值作为前向映射向量中的索引找到输入值的经编码值。举例来说,前向映射中的索引4中的元素是1(在基10中是1,在基2中是001),意味着最初定位于原始数据中的索引4中的元素现在在经编码数据中的索引1中。对于经由反向映射解码,索引1被映射到4,意味着定位于经编码数据中的索引1中的元素被返回到索引4。换句话来说,编码(4)=1且解码(1)=4。前向映射及反向映射可互换,即,前向映射及反向映射可经翻转且用作相反映射。
前向映射可使用例如经配置以重新排序向量元素的置乱函数创建。在一个实施例中,置乱函数由RNG或PRNG驱动,如上文描述。n元素向量中的每一元素被映射到特定索引的概率是1/n,其中每一元素被映射到不同索引。参考图14,说明可由置乱函数生成的有索引排序。在置乱前向映射中所展示的输入数据(即,内容列)中的元素之后,递增次序排序经应用到输入数据(即,内容列),其中索引列元素从属于内容列。接着,通过交换两个列中的元素从有索引排序生成反向映射,如展示。基本映射函数可包含映射验证过程(即,验证所有元素的解码(编码(x)=x)。图13到14中展示的实施例说明在具有n个位及2n个元素的基2中导出的实例。在其它实施例中,可导出任何基ch中的索引值及输入数据值的表使得可能元素的数目是chn。
在各种实施例中,前向映射及反向映射可离线地构造且经呈现到数据转换模块102作为全表,或可基于来自管理器104的输入生成。举例来说,前向映射及反向映射可离线地生成但可能需要额外开销以将全映射提供到数据转换模块102,同时提供用于编码的额外混淆复杂度。
置乱函数可具有足够的深度以使搜索及入侵置乱过程变得困难。举例来说,对于8位映射,8位映射中的元素数目是28或256。因此,8位映射的表空间是256!,=1.3122E+254。给定置乱置乱,此大表空间是可实现的。举例来说,置乱的过程可跨数个数据中心分发,其中一个数据中心重新置乱第二数据中心的经置乱表。
在各种实施例中,映射函数中包含的表可包含4、8或16位个字。此类大小可有效利用待编码的16位字。然而,在其它实施例中,本文的方法可应用于任何位大小。从混淆视角,攻击者通过仅观测经编码数据传输确定表大小可为困难的。另外,基于来自管理器104的输入,每一传输可使用不同大小的位字编码。
现参考图15,描述数据驱动混淆策略。实施由输入数据、RNG或另一源驱动的编码函数可增加混淆函数的混淆复杂度。数据驱动编码函数可从单个帧取样使得每一帧可独立,或可从先前帧取样。
具有数据驱动映射函数的一种方式是将索引偏移到每一表条目。举例来说,单个值偏移可基于输入数据选择且应用到映射函数中的值。在图15中,偏移值=3被应用到前向及反向映射中的索引4。表示应用到映射的偏移的方程式为以下:
offset_value=3,x=4。
依据编码索引+offset_value的模和执行offset_encode。
offset_encode(4)=编码((4+3)%8)=编码(7)=6,其中x%y表示模y中的x的值。
offset_decode经评估为offset_decode(6)=(解码(6)+8-offset)%vector_element_count。
在此情况中,offset_decode是offset_decode(6)=(解码(6)+8-偏移)%8=(7+8-3)%8=12%8=4。
在一些实施例中,代替使用整个帧的固定偏移,偏移可为帧的多个变量的函数。给定值x的偏移可如下:
编码(x)=‘前向映射’[(x+偏移)%(sizeof(‘前向映射’)],其中:
偏移=(元素索引*随机抽取)%(sizeof(‘前向映射’),且x%y表示模y中x的值。
此函数在逐元素及逐帧基础上提供每一全帧的每一元素的唯一偏移。一旦确定偏移,编码及解码函数就可类似于图13到15中展示的函数。注意:许多技术可用于生成偏移项。在一些实施例中,非线性偏移函数可用于创建偏移项。举一实例,可使用上文实例方程式中所展示的模函数。通过使用非线性偏移函数,可创建不具有唯一反向映射的前向映射,从而增加混淆。
在图16A到E中展示使偏移作为多个变量的函数的一个实例。如图16A中展示,为编码消息(“hello”),ascii经编码消息被创建且被扩展到其二进制编码。所述消息被阻挡于用于三位数据驱动映射的三个位块中。展示三个位块被转换成基10,建立每一块的索引计数且计算每一者的偏移。经由以下方程式计算偏移:偏移=(随机抽取*索引)%Table_size(其中%表示模函数)。计算值(x+偏移)%Table_size,且编码表(在图16B中展示)用于找到值编码[(x+偏移)%Table_size]。
对于由接收器解码,解码表(使用编码表生成且在图16B中展示)可用于找到每一解码[消息元素]。每三位块的索引计数在接收器处建立,且再次计算偏移(偏移=(随机抽取*索引)%Table_size)。计算值x=(解码[消息元素]+Table_size–偏移)%Table_size,且所述值x被转换回到其三位二进制表示,接着,被转换回到ascii。图16C的表说明解码使用数据驱动映射函数在图16A中编码的数据的实例。
图16D到E的表说明本文描述的映射函数的混淆特征。两个表说明其中所有零位都用于编码的消息。在图16D的表中,随机抽取值29经接收用于编码;在图16E的表中,随机抽取值是19。由于不同随机抽取值,计算原始消息的不同偏移,从而产生不同经编码输出,尽管原始消息是相同的。
在一些实施方案中,非对称表可用前向映射及反向映射函数实施。非对称表可用于n个输入位到m个输出位的映射函数,其中n>m(例如,一对多映射)。以下是实例两位输入、三位输出映射:
‘前向映射’={010 100 011 101 001 111 000 110};
‘反向映射’={11 10 00 01 00 01 11 10}。
参考图17A到C,展示使用非对称表编码及解码消息的端到端说明。在图17A中,展示ascii消息扩展到其二进制编码且***到两个位块中(且被转换成基10)。每一索引被计算为(2*输入+(x%2))。接着,编码表用于找到编码[索引],从而产生经编码数据。展示所得经编码数据***到三位序列中,每一此序列对应于原始数据中的两位序列。图17B说明生成的给定值的编码表及解码表。
对于解码,在图17C中展示,解码表用于找到每一解码[消息元素]。每一经编码值经解码且接着被转换回到其两位二进制表示,接着转换回到ascii。解码表经生成以确保解码函数映射到用于编码数据的编码函数。解码表可由例如外部服务器(例如,策略服务器,如下文描述)生成。注意:需要仅用于编码的在此方法中用于驱动数据驱动编码的外部数据,与图16A到E的数据驱动映射相比较,其需要知道用于编码及解码函数的外部驱动数据。
参考图18,展示两个额外非对称表以说明编码及解码表生成的实例。在实例中,在置乱内容列之后,对内容列执行递增次序排序,其中输入及索引列从属于内容列。接着,反向映射通过重新命名列从有索引排序生成。内容列变为索引列,且输入列变为内容列。在每一实例中,所得表(反向映射)是原始编码表(前向映射)的解码表。
由于输入是输入的仅两个位,所以仅存在可被映射成三位、八元素输出的四个唯一元素。在此实施例中,此使能够将每一输入元素映射到两个输出。在案例1中,此可通过在每一输入元素出现时重复其实施(例如,00、00、01、01等)。在案例2中,此可通过重复输入元素的整个序列实施(例如,00、01、10、11接着回到00)。在各种实施例中,可以类似方式使用输入位的任何类型的序列。
在数学术语中,对于案例1,在图18中从输入到索引的数据驱动变换是索引=(输入*2+(x%2)),其中x是数据驱动输入,且一般来说,索引=输入*2m-n+(x%2m-n)。
非对称表可具有与其相关联的开销,这是由于输入位的数目通常小于经编码位的数目。开销被测量为开销=(输出位-输入位)/输入位,以百分比测量。举例来说,对于8个输入位及10个输出位,开销是25%。开销百分比范围可基于输入位及输出位的数目从0%到50%不等。
如图17A到18中描述,非对称表用于基于其一对多(n对m)编码及解析多对一(m对n)解码的难度混淆输入数据。代替地,替代方法是将m-n个位用于误差控制编码。可使用的误差控制代码的两个实例是BCH代码及LDPC代码。虽然本发明描述使用BCH代码,但应理解,可使用任何类型的误差编码方案。
误差控制编码可使用OCTS(优化代码表信令)表实施,其中表生成基于二进制BCH代码。将BCH代码描述为(n,k,t)代码,其中n是块长度(以位为单位),k是信息位的数目,且t是可校正的有误差位的数目。n块长度设置OCTS表的大小,其具有长度2n(即,如果n=7,在OCTS表中就存在128个条目;如果n=15,就存在32768个条目)。
图19说明用于BCH编码的部分编码/解码表。注意:非对称表的更早实例仅编码两个位,但生成全三位输出表。BCH编码生成全7位输出,但生成仅16元素表而非全128元素表。图20A说明使用图19的非对称表校正被损坏数据流。
LDPC代码实施方案可为类似的;其经执行为计算而非作为表查找。误差校正能力可由接收器使用以估计接收到的有误差位的数目。过程,如图20B中说明,将通过编码经误差校正经解码消息及差分化此局部估计与接收到的位创建原始消息的局部估计。只要误差数目在误差校正的极限内,估计就是准确的。在未经校正误差的案例中,如果估计用于决定是否改变代码速率以减小误差计数,估计就可为高但仍是有用的。
再次参考图12A,可经实施以混淆数据的另一实例函数可为白化函数。白化函数可用于将任何经编码数据流的统计变换成均匀分布的概率函数,从而白化统计测量。用于白化的一种技术是创建伪随机选取位序列,其长度等于待混淆的流,及创建随机选取位及待白化的数据的按位XOR。用于白化输出的另一技术可使用一对多映射通过保持跟踪用于表示用于编码的每一符号的位完成。如果使用许多映射中的一者编码符号可产生看似不太均匀的位流,就可代替地选取替代映射中的一者。
现参考图21A到B,展示白化函数的实例实施方案。图21A展示如何生成白化混淆数据,且图21B展示如何将白化混淆数据应用到数据输入以混淆数据输入。在一个实施例中,历史缓冲器的初始负载从标头信息导出。初始负载可包含全部标头信息或标头信息的子集。初始负载可经加载于与出现在标头中的位相同的序列中或可被加扰(即,无需到历史缓冲器中的初始负载与标头信息之间的精确相关性)。此外,初始负载可从未经混淆标头信息导出,此可通过需要在可应用白化函数之前反混淆标头信息增加安全性。在图21A到B中展示的实例中,初始负载包含来自标头信息的64个位(DEEA DBC5 BAC1 1AA1)。缓冲器可进一步包含从一或多个标头数据性质(例如,当天时间)导出的其它值。
PRNG在管理器104处初始化,且在解码器管理器154处复制,使得每一PRNG生成相同值序列(在图21A到B中称为PRNG_draw)。接收器能够基于标头中提供的信息确定用于发送器处的PRNG的种子值。如图21B中展示,标头数据的一部分(例如,随机抽取(“RD”)数据)可用作到PRNG的输入。换句话来说,来自标头数据的位可驱动随机数生成过程。在另一实施例中,多个随机抽取可用于单个PRNG以生成更长位序列。在又另一实施例中,多个PRNG可结合用于每一PRNG的相同种子使用。在又另一实施例中,多个PRNG可各自结合不同种子使用。
白化函数通过取得历史缓冲器中的第一块(DEEA)及PRNG_draw的第一块(A019)及应用XOR函数开始。在本实例中,结果是7EF3。在其它实施例中,除每一缓冲器中的第一块外的块可一起进行XOR;本实施例为简单起见说明使用每一者中的第一块。接着,所得值7EF3与数据序列进行XOR。
最新生成的值(7EF3)添加到历史缓冲器的末尾,而其它值向上移动且第一值DEEA被移除。所属领域的技术人员应认识到,历史缓冲器同样也可经实施为循环缓冲器,其中最新生成的值取代最近使用的值,且指示将使用的下一值的指针仅经更新以指向缓冲器中的下一值。此外,来自使用的PRNG_draw的值(A019)被移除。接着,过程重复,其中第一值(现在是1AA1及BC76)一起进行XOR。此过程重复直到PRNG_draw中的所有值都已经使用。
在各种实施例中,过程每次可经执行用于除16个位外的任何数据大小,如上文展示。过程可经执行用于32位块、12位块等。最后,如果剩余奇数个位(当每次使用16个位时剩余小于16个位),就可在逐位基础上处理数据。
解码器使用相同种子值(在图21A到B的实例中,从标头获得的经映射RD)生成相同伪随机值序列。在解码器处生成的此伪随机值序列使用另一XOR函数与接收到的数据合并,从而揭示原始数据流。
再次参考图12A,可经实施以混淆数据的另一实例函数可为转置函数(在本发明中也称为打包函数)。此函数可在破坏ascii经编码文本的模式的情况下使用,其中每一字母数字字符的第一位是0。举一实例,在图22A到B中,展示用于打包第八个位的第二源的两个实例。第一实例是将编码的消息的最后字节,且第二实例是经带入以用作帧计数以用于发送器与接收器之间的通信的字节。可使用打包数据的其它源,例如PRNG。
在图22A到B的基本实例中,一般过程是将ascii编码的位0到6移动到经打包消息的位0到6中,及将ascii编码的位56移动到经打包消息的位位置7中。换句话来说,取得ascii编码的前7个位,接着,***来自第七个字节的第一位。此过程重复,从而从ascii编码(初级源)拉取下七个位且接着从第七个字节(次级源)拉取下一位。
展示命名形式(a,b,c),其中编码的基本单位的长度(a+b)个位,且a个位从初级源带入,且b个位从次级源带入。注意:在图22A到25中展示的实施例中,在所有实例中,a+b等于8;在其它实施例中,其它位长度可结合本文描述的算法使用。举例来说,a及b的值可任意选取。标识符c定义经打包一或多个位的开始位位置(其中在此实例中,0作为基本索引)。c值应在(0,…,a+b-1)的范围内。在图22A到B中,a=7,b=1且c=7。如展示,展示字母‘e’在第七位置中,从而指示表示字母‘e’的位将用于转置函数中。第一位‘e’移动到消息中的第一字母的第七位置(由于a=7),第二位‘e’移动到消息中的第二字母的第七位置,如此等等。未转置的每一位仅向下移动一点以为经转置位留出空间。
在图23A到B中,展示其中第八位被打包于除索引7外的位置中的实例。在图23A的实施例中,经打包位仅置于索引4中(由于c=4)。换句话来说,将转置的字母‘e’的位移动到每一字节中的第四位置。在图23B中,经打包位存储于顺序索引位置中(c=0,接着1,接着2,如此等等)。换句话来说,将转置到每一字节的字母‘e’的一个位置于字节中的不同定义位置中。将此模式展示为顺序的;在其它实施例中,可以任何方式使所述模式随机化。
在图24A到B中,展示其中从第一或初级源拉取不同数目个位的实例。在图24A的实施例中,6个位从初级源带入,且因此,2个位从次级位带入。换句话来说,与其它实例相比,使用来自‘y’片段的位,也使用‘e’片段中的位。展示两个位被转置到每一字节中。在图24B中,对于8个位的每一序列,5、6或7个位从初级源带入(即,从一个序列到下一序列,带入的位的数目是可变的)。举例来说,两个位带入到第一字节中,一个位带入到第二字节中,两个位带入到第三字节中,如此等等。注意:在此实例中跨整个数据包转置的位的总数目应等于从其检索位的最后两个字节中的位的数目。图25说明用于指定打包功能性(从而改变值c,其定义经转置位***到每一字节内的地方)的额外自由度。图25将函数说明为流函数,其中值c随时间变化。
下列表说明在并排基础上使用(a,b,c)格式,使用流格式。表的左侧说明(a,b,c)格式,其中每一行指定识别特定打包函数的连续(a,b,c)值。还展示右侧打包流排程区。其被解译如下:在第一行中,从初级源拉取0个位及存储于输出缓冲器中,及从次级源拉取2个位及将所述位序连到输出缓冲器中。所有行继续此直到耗尽打包流排程。在中心列中识别从(a,b,c)格式转换到打包流排程的映射函数。
下面的表说明针对额外复杂度添加数据驱动函数的实施方案。对于此实施方案,经(a,b,c)格式化的打包的全集可依据打包函数本身外部的变量修改。
在此实例中,数据驱动打包变化保持在块内,使得更高级资源管理不受动态低级数据驱动变化影响。举例来说,在下面的表中,四个(a,b,c)值的群组被视作块,且块中a的和是24,且块中b的和是8,从而与面向字节的管理良好对准。
用于实施数据驱动打包的候选策略是设置下列为下面展示的基表,及依据所述基实施变化。推导可如下:
-设计四个条目的块,表示为基表。此表经设计使得数据驱动表的(a,b)对是来自集((7,1),(6,2),(5,3))。此通过将所有基表(a,b)对设置为(6,2)及通过(+1,-1)、(0,0)或(-1,+1)修改所述对完成。
-设计将由数据驱动打包表外部生成的三位二进制字驱动的打包表的八个变体。
-设计使得跨块a的和保持24,且跨块b的和保持8。
-设计使得每一(a,b)对和为8。在此特定案例中,此减小1到a或b的变化必须通过-1分别到b或a的变化完成。
-设计使得c值在(0,a+b-1)的范围内。
下列表使用这些约束创建。
作为独立策略,打包函数将位***到经编码流中但不改变位的次序。因此,上述策略可与转置数据的次序的函数配对,这将使混淆方案更强,尤其是在经转置的元素的大小相对于打包函数中的任何元素序列是素数的情况下。
再次参考图12A,输入混淆函数404可为前缀唯一前向及反向映射函数。前缀唯一前向及反向映射的目的是建立提供硬件唯一数据转换模块平台系列的能力。如上文描述,在例如图13中,展示前向映射与反向映射对。映射可扩展到包含前缀前向及反向映射。举例来说,如图26中展示,前缀前向映射及前缀反向映射可类似地生成。
图26中的顶部四个表可经卷积以创建一对新的前向与反向映射,其中卷积过程将使用前向映射将索引映射到其内容且将使用前缀映射使用到前缀前向映射中的所述内容作为索引。前向映射经卷积成前缀前向映射,且逆向作业,前缀反向映射经卷积成反向映射。
现参考图27A,展示根据示范性实施例的用于编码输入数据的过程500的流程图。过程500可由例如输入数据混淆模块108执行。过程500包含接收待编码的输入数据(502)及从输入数据管理器接收输入(504)。在一个实施例中,来自输入数据管理器的输入包含从RNG随机选择的一或多个值。举例来说,来自管理器的输入可包含用于混淆数据的一或多个函数的选择及将由所述函数使用的一或多个随机选取的值的选择。所述值可为例如***到输入数据中以组合输入数据(例如,经由XOR函数)的位串或其它。
过程500包含识别要应用到输入数据的多个函数(506)及使用输入数据管理器输入及函数混淆数据(508)。举例来说,框508可通常包含经由第一函数混淆输入数据与来自输入数据管理器的输入,接着将经混淆数据提供到第二函数以供进一步混淆。此可继续用于任何数目个函数。过程500进一步包含将经混淆输入数据提供到另一模块以加扰及序连标头数据(510)。如上文描述,输入数据及标头数据在两个不同模块处单独混淆且接着在第三模块处组合及加扰。在一些实施例中,标头数据及输入数据中的一者或两者可包含解码器解码接收器处的数据所必需的信息。
现参考图27B,展示根据示范性实施例的用于解码输入数据的过程550的流程图。过程550可由例如输入数据反混淆模块160执行。过程550包含从标头反混淆模块接收***输入数据(552)。如上文描述,标头反混淆模块可从发送器接收经编码数据包且可经配置以将经编码数据分类成经编码输入数据部分及经编码标头数据部分。框552可包含接收被返回到解扰模块及***模块的经编码输入数据部分。
过程550进一步包含识别用于混淆输入数据的一或多个参数(554)、识别要应用到经编码输入数据的多个函数(556)及使用所述函数反混淆数据(558)。框554、556、558可通常表示混淆数据的过程的反转。举例来说,框554、556、558通常包含识别发送器如何编码数据及反转使用发送器的过程。
在一些实施例中,填补函数可在数据混淆期间使用。填补函数可通常在对于足够的复杂度数据集并非足够大时用于数据集(即,数据集足够小使得数据很脆弱,无论应用的混淆函数的数目为何或数据集是某些函数的不方便长度)。填补函数可用随机值填充缓冲器直到达到数据的阈值。举例来说,如果待混淆的数据包的数据长度小于最小值(例如200个字节),数据就用伪随机值填补以将数据包填补到最小长度。填补可通常在额外混淆函数之前完成以确保不直接暴露添加的伪随机值。
当使用填补函数时,数据传输的接收器确定数据是否被填补。举例来说,如果当前帧大小大于作为标头信息的部分发送的数据大小值,位大小中的差可表示添加到数据的填补位的数目。举例来说,如果由接收器接收到1300字节字且数据大小值是1233,接收器就可确定67字节填补被添加到所述数据。接着,数据传输的最后67个字节在数据反混淆之前被驳回。在一个实施例中,填补数据可经添加到数据的末尾;在其它实施例中,只要接收器能够区别哪些位是填补位,填补位就可添加于任何位置中。
现参考图28A到B,描述用于混淆将由发送器100传输到接收器150的数据的序连及加扰过程。如上文大体上描述,待传输的数据包的标头数据及输入数据可使用各种函数单独混淆。标头混淆模块110及输入数据混淆模块108中的每一者可独立混淆数据且提供所述数据以供传输。然而,在传输数据之前,在标头数据与输入数据经组合在一起、经序连及经加扰的情况下可发生第三混淆步骤。图28A说明经配置以从管理器602(例如,类似于标头信息管理器126)接收数据及输入的数据合并模块112。来自管理器602的输入可通常包含参数及与标头数据的混淆相关的其它信息,这可帮助接收器确定用于反混淆数据的一或多个函数或参数。
数据合并模块112可通常包含序连模块604及加扰模块606。序连模块604可通常经配置以接合两个数据集,且加扰模块606可通常经配置以将来自两个数据集的位加扰在一起,使得来自两个数据集的位交织。加扰模块606可实施任何数目个或任何类型加扰函数,如下文描述。应理解,任何数目个不同函数可用于混淆来自两个数据集的经组合位。虽然数据合并模块112展示两个模块604、606用于合并数据,但应理解,在各种实施例中,任何数目个不同函数可用于将数据集合并在一起。
参考图28B,数据***模块158经配置以从发送器100接收经编码数据输入。数据***模块158经配置以解扰接收到的数据且接着将经解扰数据***成标头数据部分及输入数据部分。展示数据***模块158包含解扰模块652及***模块654。解扰模块652可基于一或多个经预先确定参数解扰数据。举例来说,所述参数可为在发送器100开始数据传输过程之前从策略服务器接收到的经预先确定参数。在解扰数据之后,***模块654经配置以将数据***成标头数据部分及输入数据部分。
现大体上参考图29到34,更详细描述用于序连及加扰两个数据集(标头数据集及输入数据集,如上文描述)的各种函数。在标头数据及输入数据独立混淆之后,第三模块可通过组合标头数据与输入数据及将所述数据混淆为待传输的单个数据包添加进一步混淆。如本发明中描述,将标头数据与输入数据混淆在一起的一个此方式是将两个数据集的位一起加扰到单个数据集中。在一些实施例中,加扰次序可由前向映射函数或由用于执行连续数据交换的随机生成的值(例如,RNG值)的表中的一者或两者驱动。接着,接收器可在将数据***成输入数据及标头数据之前使用向量定义的反向映射函数或随机生成的值的表解码数据。
数据合并过程通常将另一安全层添加到待传输的经编码数据流。可对任何数目个或任何大小的位执行过程的加扰部分(例如,按位、按字节、按两个字节块等加扰数据)。如果位转置速率相对于用于位加扰的位速率是素数,混淆的复杂度就增加。
序连函数可包含两个步骤:将OCTS标头数据元素序连到特定次序中;及序连OCTS标头数据与经混淆输入数据。OCTS标头数据在标头数据混淆模块中创建,如上文描述,且标头数据与输入数据的序连在加扰函数之前执行。在加扰前,OCTS标头数据直接引导或跟随输入数据。如果标头数据引导输入数据,一接收到标头数据就开始处理其,从而通过在处理之前无须等待全帧信息到达而减少延时。在直到帧完全到达才能够处理帧的案例中,如在TCP/IP协议中,标头数据跟随输入数据且内存拷贝函数在处理期间用于拷贝数据。
加扰函数可针对复杂度及帧元素到达时间调整。举例来说,对于1500字节帧,其可被逐字节加扰的方式的数目是1500!,其可被逐位加扰的方式的数目是(8*1500)!,且其可被逐两个字节加扰的方式的数目是(1500/2)!。
可由编码器及解码器使用的加扰及解扰函数可类似于更早描述的前向映射及反向映射函数。举例来说,加扰及解扰函数可表示为向量对。参考图29,展示具有27个元素(6个标头元素及21个输入数据元素)的数据帧的实例加扰函数。对于每一元素,展示加扰映射及解扰映射(在图29中标记为前向及反向映射)。前向映射用于加扰数据,且反向映射用于解扰接收器处的经合并数据以将数据返回到其原始次序。
类似于上文描述的内容,可卷积前向及反向加扰映射。唯一前缀前向及反向映射向量可用于创建专用于经识别用户或装置的映射。参考图30,说明实例经卷积前向及反向加扰映射。前向映射及前缀前向映射用于创建经卷积前向映射,且反向映射及前缀反向映射用于创建经卷积反向映射。
大体上参考图29到30,加扰映射可以此方式生成以保证与标头数据相关的数据元素保持在某一位置中以确保接收器可分离标头数据与输入数据。举例来说,可创建将所有标头数据包保持在前n个包内的映射。值n可为基于应用的且可由发送器及/或接收器的管理器选取。此可允许接收器更迅速或容易地分离标头数据与输入数据。
在一些实施例中,随机生成的值的表可用于确定如何加扰数据。加扰函数识别数据流内有索引值的交换,其中交换索引基于表中的随机值。表可用于发送器及接收器两者。在图31中展示加扰表实施方案的基本实例。在图31的实例中,待加扰的向量是20元素向量(出于说明目的,在图31的顶部处列举)。
为使用表执行加扰函数,固定抽取向量通过计算固定加扰表模为每一索引的数据元素计数。接着,通过将索引与其固定抽取配对创建每一索引的交换对。以第一索引开始且迭代所有索引,执行由交换对识别的交换。在图31的实例中,第一交换对是空对,交换数据[0]与数据[0]的内容。第二交换对交换数据[1]与数据[18]的内容。如图示中展示,第n交换对交换数据[n-1]的内容与数据[固定加扰表[n]%数据元素数目]的内容。因此,对于第20个交换,数据[19]的内容应与数据[760%20]的内容交换。因此,数据[19]的内容应与数据[0]的内容交换。注意:交换是渐进式的使得在任何交换发生之前数据[0]可含有与第n迭代处的数据[0]不同的值。因此,第n交换产生在已完成从0到n-1的所有交换之后交换数据[n-1]中含的值。此实施方案可用于高达固定加扰表的长度的任何数据向量长度,且向每一数据向量长度提供唯一加扰,这是由于交换对取决于数据向量的长度。因此,给定两个数据向量,一个含有19个数据元素及一个含有20个数据元素,其中前19个数据元素是相同的即使给定相同固定加扰表也会导致不同交换。基于图31中展示的表,20元素数据向量的第二交换会产生交换数据[1]与数据[18](278%20=18),单19元素数据向量的第二交换会产生交换数据[1]与数据[12](278%19=12)。
参考图32,展示第二实例加扰表。在此实施例中,偏移项用于识别固定加扰表中的起始点。举例来说,代替在索引0处执行第一交换,交换可开始于索引中的任何者处。偏移可为数据驱动偏移,从而不仅针对每一数据向量长度而且针对每一选取偏移创建数据的唯一加扰。举例来说,由PRNG生成的伪随机值可用作偏移。给定相同输入,伪随机值可经生成使得编码器及解码器两者可从PRNG生成相同随机值。替代地,如果随机数由编码器用作偏移,其需要被传递到要使用的解码器。
参考图33,展示第三实例加扰表。在图33的实例中,偏移项评估中包含的项的数目增加,从而增加使用单个固定加扰表横跨的表空间。
参考图34,展示实例解扰表。解扰表是基于图31中展示的加扰表(即,图34的表用于解扰由图31的表加扰的数据)。解扰接收到的数据集的过程可通常包含在编码数据期间执行一组相同交换,但是以颠倒的次序。如图34中展示,加扰表的次序经反转以引起数据的解扰。
大体上参考图35到37,更详细描述可由本文的***及方法提供的额外特征。
现参考图35,展示发送器100及接收器150与策略服务器702之间的通信。如本发明中描述,发送器100可根据第一组函数混淆数据,且接收器150可仅在其根据与第一组函数相关的第二组函数反混淆传输的情况下恢复原始数据。当数据传输到接收器150时,接收器必须知道要使用哪些函数反混淆数据以引起成功的传输。参考图35,发送器100及接收器150与策略服务器702通信可向发送器100及接收器150提供关于要使用哪些混淆函数及参数的信息。
在图35的实施例中,展示策略服务器702与发送器100及接收器150两者通信。发送器100可希望建立与特定接收器的连接(即,以将数据传输到接收器)。为了建立所述连接,发送器100将请求传输到策略服务器702。策略服务器702可确定发送器100是否具有将数据传输到接收器150的权限。如果策略服务器702确定发送器100可以将数据传输到接收器150,其就将批准所述请求且作为响应,将数据提供到发送器100及接收器150两者。举例来说,策略服务器702可将密钥、用于映射函数中的一表、可用于映射且发送器100在包含在待传输到接收器150的数据的标头中选取表中的哪一者之间可选取的多个表或任何其它类型的参数或数据输入传输到发送器100及接收器150。提供到发送器100及接收器150的数据是相关的(即,可向发送器100提供前向映射且可向接收器150提供对应反向映射)。由策略服务器702提供的数据可允许发送器100及接收器150在编码及解码数据时使用相同函数及参数,从而允许发送器传输接收器可解码的经编码数据而不会从发送器接收特定编码信息。
策略服务器702可限制由发送器100及接收器150使用混淆及反混淆信息。举例来说,信息可经指派用于仅单个传输、单个会话、最大数目个包或用于特定时间周期。期望发送器100及接收器150两者强制执行由策略服务器指派的限制。但至少接收器150必须强制执行所述限制以防止其处理其未经授权接收的数据。强制实施由策略服务器702设置的限制的一个优势是进一步确保由接收器150使用的反混淆信息保持安全。一旦已达到由策略服务器702设置的限制,如果发送器100希望将额外信息发送到接收器150,发送器100就可请求将新混淆及反混淆信息(例如,新表)传输回到发送器100及接收器150两者。
在无一组共享混淆及反混淆信息的情况下,发送器100可被禁止与接收器150通信,这是因为接收器150可忽视呈不正确格式的任何数据通信。因此,在发送器100及接收器150之前的任何通信开始之前,混淆及反混淆数据必须通过策略服务器702与发送器100及接收器150共享。换句话来说,在由发送器设置数据混淆方法及由接收器设置反混淆方法期间,在发送器与接收器之间实际上可不发生通信。本质上,由策略服务器提供混淆数据及反混淆数据用作发送器与接收器之间的通信的一类型认证。此使能够创建经授权与彼此通信的两个或两个发送器及接收器群组及可与彼此通信但非另一子群组的成员的两个或两个以上发送器及接收器的不同子群组。每一发送器及接收器可与策略服务器702通信以便获得编码及解码用于正确传输的数据所需的信息。经由任何常见的数据加密方法(例如,PGP),发送器100与策略服务器702及接收器150与策略服务器702之间的通信可为安全的。经由本文描述的OCTS技术,发送器100与策略服务器702及接收器150与策略服务器702之间的通信也可为安全的。
虽然展示策略服务器702是独立于发送器100及接收器150的,但应理解,在其它实施例中,策略服务器702可本地实施在发送器100或接收器150处。
图36说明可用于加扰标头数据与输入数据的加扰函数。如上文描述,在单独混淆标头数据及输入数据之后,两个数据集应被序连且加扰。图36说明具有标头部分及输入数据部分的经序连数据集。展示标头数据大小为16个字节;当然,在其它实施例中,标头数据大小可为任何长度。
不同应用可能需要输入数据内的标头数据的不同程度的混淆。举例来说,解码速度可通过确保加扰是在较大块中完成(例如,在字节级下)且标头是相对更接近传输的开始被加扰而优先化。举另一实例,加扰可在硬件(例如,IC)中完成或使用并行处理器完成。如果混淆更重要,加扰就可在更小零件中完成(例如,在位级下)且标头数据就可在数据传输的更大部分上展开。
如图36中展示,经序连数据包含具有标头数据的第一部分(16个字节)及具有输入数据的第二部分(x个字节)。所述数据通过首先放置标头数据及其次放置输入数据序连。接着,发送器可起始用于经序连数据的加扰函数。加扰过程可在数据末尾处(而非标头数据所在之开始处)开始。加扰过程可继续从数据集后面到数据集前面加扰位。替代地,如图29中展示,说明展示基于表的交换的另一实例加扰函数。
虽然最后加扰标头数据是有利的,但标头数据应仍与输入数据加扰以增加混淆。举例来说,如图37中展示,经序连数据的前100或200个字节可加扰在一起,从而引起16字节标头数据与输入数据的前200个字节加扰。这可以替代跨可为数百个字节的整个数据集加扰标头数据。
在一些实施例中,经序连数据可经***到不同块中。举例来说,在图36的最后实例中,经序连数据经***到包含标头数据及输入数据的100个字节的第一块及输入数据的三个块中。此与其中加扰函数通常循序地通过数据集的第一实例的加扰相比较。每一块内的数据可通过加扰函数加扰。标头数据与部分输入数据加扰以增加待传输的数据包的混淆。
图37说明可用于例如实施数据转换模块102或152的计算机***900及/或本发明中描述的各种其它说明性***的绘图。计算***900包含总线905或用于传递信息的其它通信组件及耦合到总线905以处理信息的处理器910。计算***900还包含耦合到总线905以存储信息及待由处理器910执行的指令的主存储器915,例如随机存取存储器(RAM)或其它动态存储装置。主存储器915还可用于在由处理器910执行指令期间存储位置信息、临时变量或其它中间信息。计算***900可进一步包含只读存储器(ROM)920或耦合到总线905以存储用于处理器910的静态信息及指令的其它静态存储装置。存储装置925,例如固态装置、磁盘或光盘,耦合到总线905以持续地存储信息及指令。
计算***900可经由总线905耦合到显示器935,例如液晶显示器或主动矩阵显示器,以向用户显示信息。输入装置930,例如包含字母数据及其它键的键盘,可耦合到总线905以将信息及命令选择传递到处理器910。在另一实施方案中,输入装置930具有触摸屏显示器935。输入装置930可包含光标控制件,例如鼠标、跟踪球或光标方向键,以将方向信息及命令选择传递到处理器910及控制光标在显示器935上的移动。
在一些实施方案中,计算***900可包含通信适配器940,例如网络适配器。通信适配器940可耦合到总线905且可经配置以启用与计算或通信网络945及/或其它计算***的通信。在各种说明性实施方案中,任何类型的网络配置都可使用通信适配器940实现,例如有线(例如,经由)、无线(例如,经由等)、预先经配置的特别的LAN、WAN等。
根据各种实施方案,实行本文描述的说明性实施方案的过程可由计算***900响应于处理器910执行主存储器915中所含的指令布置实现。此类指令可从另一计算机可读媒体(例如存储装置925)读取到主存储器915中。主存储器915中所含的指令布置的执行致使计算***900执行本文描述的说明性过程。多处理布置中的一或多个处理器也可用于执行主存储器915中所含的指令。在替代性实施方案中,可代替软件指令或与软件指令组合使用硬接线电路以实施说明性实施方案。因此,实施方案不限于硬件电路与软件的任何特定组合。
本文的***及方法比其它加密技术(例如AES)有利。举例来说,此类技术可依赖于TCP/IP或其它类似协议,其中所述协议关心确保所有数据包被接收且在接收器处按次序接收。混淆的强度可部分取决于块链接的使用,此使传输次序变得重要。然而,本文的***及方法不取决于按次序接收的帧,这是因为每一帧可独立具有其自身混淆策略。此允许将本文的混淆方法用于协议,例如UDP或用于流数据(例如视频或音频)的其它协议。
如本发明中大体上描述,可在数据混淆及反混淆过程期间使用各种表。然而,应理解,各种类型的表可用作混淆及反混淆过程的部分,且多个类型的多个表可在相同过程中使用。举例来说,具有第一结构的第一类型的表可在位加扰过程期间使用,且具有第二结构的第二类型的表可在位映射过程期间使用。本文的***及方法可经调适以致使跨各种步骤使用任何数目个不同表类型及结构。
用于数据混淆过程的表可包含N个元素的任何集,包含(但不限于)实施一群组这些元素的物理或虚拟的任何事物。无需正式或非正式协议。元素可为单个位、任何标准位群组(例如字节、字、双字或四字)、任何定点或浮点二进制表示或任何非标准位群组。元素可以二进制、三进制、四进制、五进制等基础表示表示。
表可以任何格式表示或经实施于硬件或软件中。举例来说,表可经实施于RAM或ROM中。存储器基础位置可存取地址或行,且偏移可存取数据或列。举另一实例,表可经实施为先进先出(FIFO)机制。所有表元素都被存储于FIFO中且通过推送或弹出适当数目个元素存取。举另一实例,表可经表示为移位寄存器。元素索引在移位寄存器中编码,且可在许多移位寄存器之中并行划分。举另一实例,表可经表示为一值阵列或值向量或经组合的多个向量或阵列,其中第一索引持有第一元素,第二索引持有第二元素,如此等等。举另一实例,表可经实施为二进制、文本或经格式化档案,例如XML档案。举其它实例,表可经实施于晶格结构、状态机、调制器/解调器、数字信号处理器(DSP)等中。
举另外实例,表可经实施于任何类型的软件实施方案中。举一个实例,表可经实施为查找表,如图示中大体上展示,其中在某一索引处存取表存取那个索引处的元素。举另一实例,表可经实施为二进制搜索数(或另一数据结构)。输入串从所述树的起始节点确定数据的路径,且在达到叶节点之后给定表操作的输出。举其它实例,表可经实施于软件中作为虚拟存储器映射、位流、堆叠、阵列或向量、矩阵、XML档案、文本档案、二进制文件等。
参考先前图式及描述,描述用于数据混淆的***及方法用于混淆供在装置之间传输的数据。现参考后续图式,描述用于管理多个装置之间的数据通信的***及方法。更特定来说,描述用于将允许多个装置具有经混淆通信的协议提供到多个装置的密钥分发过程。此类***及方法可允许多个装置使用上文在图1A到36中所描述的混淆方法通信。
微控制器可通常经启用以本地地或通过因特网交换信息及可经由因特网存取。多个微控制器可用于形成IoT,其是经嵌入具有微控制器及/或其它电子器件的一区域中多个装置(例如,建筑物内的数个装置、建筑物、车辆内的区域等)的网络。微控制器与其相关联的所述装置可为例如传感器、节点或任何类型的设备。IoT可使各种装置能够接收及传输数据。IoT通常需要使各种装置能够在低电力配置中共享数据的本地低电力无线连接。IoT可通常需要网关或客户端来促成各种装置的连接。
现参考图38,展示用于在环境1000中的多个装置之间建立通信协议的***。展示多个装置1002在环境1000中。每一装置1002可为经配置用于与其它装置的无线通信的任何类型的装置。每一装置1002可通常包含电力供应器1010。在一个实施例中,所述装置可为电池供电的且经配置以在低电力配置中操作。在其它实施例中,所述装置可包含一或多个其它电力供应器。本文描述的***及方法经调适用于每一装置1002的低电力状态,从而允许所述装置与其它低电力装置建立安全传输。尽管如此,如所属领域的技术人员应认识到,相同***及方法也将与并不是低电力装置的装置一起工作。每一装置1002包含用于促成与其它装置的传输的微控制器。本发明可互换地使用术语装置及控制器来描述装置1002。
环境1000进一步包含网关1004,其经配置以管理多个装置1002之间及那些装置与服务器1006之间的数据通信。网关1004可为计算装置,例如(举例来说)树莓派TM或可接收数据及将数据传输到多个微控制器的其它类似装置。网关1004可通常建立各种装置1002的传输协议。网关1004可经由任何RF或有线通信方法(例如,经由蓝牙低功耗(BLE)、Zigbee、IEEE 802.15.4或任何其它通信协议)与装置1002通信。
环境1000进一步包含网关1004可与其通信的服务器1006。服务器1006可为例如类似于上文所描述的策略服务器702的策略服务器且经配置以管理网关1004与各种装置1002之间的交互。服务器1006可确定环境1000中的各种装置的权限(例如,是否批准装置与彼此共享数据)、可传输表、密钥或供由网关1004使用以在环境1000中建立经混淆传输及类似物的其它信息。
虽然图38展示一个特定实施例,但应理解,其它配置也是可能的。举例来说,在服务器1006处执行的一或多个活动可代替地在网关1004处执行。举另一实例,网关1004可为任何类型的客户端装置。网关1004可为客户端装置或服务器装置。
现参考图39,展示用于在两个装置之间实施通信协议的过程1100的流程图。在一个实施例中,网关1004通过在其本身与装置1002之间安全地交换密钥在两个装置之间实施通信协议。
过程1100通常包含秘密交换1102、密钥分发表(KDT)生成1104、数据表(DT)生成1106、数据表交换1108及向量同步1110。秘密交换1102可为希望与彼此通信的两个控制器装置之间的“秘密”的交换。“秘密”可仅为控制器与网关之间共享的数。秘密可表示PRNG中将用于创建表分发密钥的位置,如下文描述。换句话来说,秘密可为经预先计算的PRNG位置。在一个实施例中,秘密是28个字节:12个字节定义用于伪随机数生成(例如,TinyMT)的参数(例如,用于生成随机数的多项式的指数)及16个字节识别PRNG序列中的转移向量。在其它实施例中,秘密可为不同大小且可定义用于生成合理保护的任何类型的参数。“秘密”由双方(控制器及网关)使用以生成TDK。因为双方都知道秘密,所以双方可使用相同PRNG算法计算PRNG值。
初始“秘密”在制造时可被记录于控制器中或其可在供应时生成。“秘密”可为序列号或通用唯一标识符(UUID)。交换初始“秘密”可以多种方式完成。用于交换初始秘密的一种技术是手动的,即,“秘密”使用操作者(例如人类)在装置之间交换。在此技术中,初始“秘密”并不是以电方式传输的且所以减少了以电方式拦截初始“秘密”的机会。在此技术中,控制器可含有能够显示“秘密”的用户接口(UI),且交换可包含操作者从控制器UI读取“秘密”及使用网关UI键入“秘密”。如果在控制器上无可用UI,“秘密”就可被打印在附接到装置或装置的包的标记上。在那些案例中,操作者可从标记读取“秘密”且将其键入到网关UI中。
如果在网关处不存在能使操作者将“秘密”键入到网关装置中的UI,“秘密”就必须以电方式交换。如果控制器具有足够的计算资源,就可使用各种算法安全地共享“秘密”。在一个实施例中,Diffie-Hellman算法用于共享秘密。如所属领域的技术人员已知,Diffie-Hellman算法是允许不具有彼此的先验知识的双方经由不安全通道共同建立共享秘密密钥的密钥交换算法。然而,Diffie-Hellman算法从计算方面上来说是昂贵的且因此,在具有低电力的IoT装置中,应节俭地使用且因此仅用于初始秘密密钥的交换。
在另一实施例中,可用于安全地共享秘密的另一算法是不对称加密。不对称加密使用公开及私有密钥加密及解密数据。每一客户端装置或控制器具有网关的公开密钥。可使用的另一算法是公开密钥基础设施,其中网关将证书发送到每一控制器,且控制器使用证书授权验证证书属于网关。在此实施例中,在每个会话中交换新秘密。
在另一实施例中,不具有处理密集算法的足够的计算能力的IoT装置可使用接近供应交换“秘密”(即,仅当装置足够靠近网关时)。对于接近供应,控制器可传输十分弱的信号(例如,-20分贝毫瓦特),且网关可使用接收到的信号的信号强度指示符(RSSI)计算网关与装置之间的距离(此距离用于确定装置是否足够靠近网关)。举另一实例,秘密可仅由网关交换到所述网关已知其序列号的装置。举又另一实例,秘密可使用信任与验证方法交换,其中秘密是以公开交换,且网关验证交换之后装置准确地操作。
在一个实施例中,在交换了秘密之后,装置及网关可将秘密保存于存储装置中,且经保存秘密可用于在装置电源切断之后重新建立与装置的会话。在另一实施例中,秘密可经供应用于仅单个使用,使得一旦装置与网关配对,其就不能与任何其它网关配对。在各种实施例中,可任意多次存储及重新使用秘密,或可有限次数地使用所述秘密,这取决于来自网关、服务器、用户或在制造时所供应的一或多个网络偏好。识别PRNG中的位置的秘密的16个字节被定义为初始PRNG数据向量。
过程1100包含密钥分发表生成1104。密钥分发表通常用于将数据表发送到装置以供用于混淆及反混淆,如下文描述。为生成密钥分发表,秘密的部分用作PRNG的转移向量,且所得伪随机数序列用于生成表。可使用任何类型的PRNG(例如,TinyMT)。密钥分发表生成在网关及控制器两者处完成。由于每一实体具有相同秘密,所以其将经由PRNG生成相同密钥分发表。
参考图40,更详细展示密钥分发表生成1104。密钥分发表生成1104包含初始化表(框1120),其可包含设置表长度及表中每一条目的值。举例来说,框1120可包含将表中第I条目的值设置为I。
以表的第一索引开始(索引=0),交换函数(框1124)用于交换表中的值。举例来说,对于给定索引值,找到当前索引与表长度之间的下一伪随机数(S)。接着,S用作待与索引I处的值(KDT[I])交换的值的索引。在交换之后,索引累加(框1122),且只要索引小于表的长度(在框1126处校验),就再次应用交换函数(框1124)。因为KDT生成是使用相同PRNG及秘密完成,所以每一装置将生成相同表。
再次参考图39及过程1100,过程包含数据表生成1106。初始数据表(DT0)仅在网关处生成。用于生成数据表的算法可类似于用于生成密钥分发表的算法(图40中展示),但使用真随机数(而非伪随机数)确定要交换哪些索引。真随机数可为基于***的熵。举例来说,如所属领域的技术人员应意识到,在IOX(MAC OS)中,0与255之间的真随机数可使用以下代码生成:文件=*rnd_file=fopen(“/dev/随机”,“r”);rand=fgetc(rnd_file)。通过另一实例,如所属领域的技术人员应知道,在Linux中,随机值可从内核熵池获得。因为数据表DT0仅在网关处生成,所以可使用真随机数。网关可将DT0存储于RAM中以供在控制器及网关变得不同步的情况下使用,如下文更详细描述。网关维持每一控制器的单独数据表。
过程1100进一步包含数据表交换1108。数据表交换过程通常包含用置乱算法使用KDT编码数据表(下文描述)及将经编码表传输到控制器。一旦控制器接收到DT0,假如控制器及网关变得不同步,其也可将DT0的副本维持于RAM中,如下文更详细描述。过程1100进一步包含向量同步1110。任何装置可与其合作伙伴交换秘密或秘密的部分(即,仅16个字节识别PRNG序列中的转移向量,或完整的28个字节包含多项式指数值及转移向量两者)。如果一个以上PRNG序列由算法使用,那么一个以上向量及多项式可在装置之间交换。
任何时间网关都可生成新秘密且将其发送到控制器。以此方式,控制器与网关的未来重新初始化将引起不同初始秘密的交换且因此产生不同KDT。网关及控制器两者中的旧秘密将用新秘密重写。此过程通过防止控制器与网关的重复同步(此可允许攻击者确定关于装置之间的通信的额外信息)而增加整体***的安全性。在另一实施例中,网关可包含特定“秘密”可被使用的阈值次数。在又另一实施例中,网关可增加相同“秘密”值的每一后续使用之间的时间量,使得连续尝试多次同步变得非常困难。
再次参考图38,环境1000可任选地包含密钥分发中心1008,其能够与装置1002、网关1004及服务器1006中的任何者通信。在替代实施例中,密钥分发中心1008可提供供应图39到40中所描述的特征的密钥。在此案例中,密钥分发中心1008可具有用于每一装置1002或控制器的识别信息。
当控制器、网关或服务器首先接通时,其可建立与密钥分发中心1008的会话,所述会话创建用于控制器、网关或服务器的数据表。因此,每一会话都存在密钥分发表(下文将用于控制器、网关及服务器的密钥分发表分别标记为TC、TG及TS)。在一些实施例中,装置1002可能不能与密钥分发中心1008直接通信。在那些案例中,来自装置1002的通信可由网关1004中继到密钥分发中心1008。
如果装置1002的控制器想要与网关1004对话,其就可从密钥分发中心1008请求数据表。在一些实施例中,例如当装置1002不能与密钥分发中心1008直接通信时,甚至是在网关1004及装置1002尚未被供应以与彼此通信的情况下,网关1004也可准许将来自装置1002的请求中继到密钥分发中心1008。在一个实施例中,密钥分发中心1008将新数据表(DTCG)的两个副本发送到网关,一个表用于网关且一个表用于控制器。用于网关的DTCG使用TG编码,且用于控制器的DTCG使用TC编码。接着,光管将用控制器的TDK(TC)编码的DTCG中继到控制器。网关及控制器中的每一者具有其相应密钥分发表且可因此解码其自身DTCG副本。在其它实施例中,密钥分发中心1008可将DTCG直接发送到控制器,再次用TC编码。
类似地,当网关想要与控制器对话(或从控制器接收控制器想要与网关对话的消息)时,网关发送请求到密钥分发中心1008以建立会话。一旦会话密钥(TC)被发送到控制器,网关就可向密钥分发中心1008发送对供用于网关-控制器通信的数据表的请求。接着,网关接收新数据表的两个副本且将经编码数据表中继到控制器,如上文描述。
如上文描述,一旦(由网关或密钥分发中心)生成了数据表且在数据表被传输之前,可将置乱算法应用到数据表以混淆表中的数据。现参考图41,描述编码数据表中的数据的一种方法。图41中展示的过程1200可为独立编码算法,其可用于到控制器的第一有效负载传输,且如果发送器与接收器需要同步,接着可用于到接收器的第一有效负载传输。独立编码算法是独立于状态的(无须已知伪随机序列中的前一位置)。当需要初始化或重新初始化PRNG数据向量(例如,秘密)时,独立编码算法由网关启动。在本发明中,“秘密”与“PRNG数据向量”可互换地使用。
过程1200包含生成真随机数(框1202)及设置待传输的帧(框1204)。也参考图42,展示实例帧具有设置在帧的前部处的RND值(在框1202中确定)及设置在帧的末尾处的CRC值(在框1206中确定)。过程1200进一步包含计算循环冗余代码(CRC)(框1206)。CRC优选地基于有效负载及随机数一起计算。
过程1200进一步包含将帧与随机数阵列进行XOR(框1208)。秘密被设置为RND值,且用秘密种PRNG以创建长度等于有效负载及CRC的随机数阵列。此经生成阵列用于XOR所述帧。进行XOR混淆原始有效负载及CRC,从而防止明文攻击试图及解码数据表。
过程1200进一步包含置乱算法(框1210)。数据表用于置乱帧中的位。置乱使用位掩码阵列、目的缓冲器、位索引、字节偏移及位偏移。如果数据表是有效负载,RDK就可用于置乱帧中的位。
现参考图43,更详细展示置乱算法。算法包含初始化目的缓冲器(例如,将目的缓冲器初始化为全零)(框1220)。可对帧中的每一位索引执行以下。
计算偏移(框1222)。举例来说,计算字节偏移=位索引/8,且计算位偏移=位索引%8。测试帧位(框1222)以确定帧字节中的位是否是通过校验位掩码[位偏移]与帧[字节偏移]是否都是真来设置。如果两个值都是真,就使用数据表计算目的位(框1226)(即,目的位索引=DT[位索引])。计算目的偏移(框1228)。举例来说,目的位偏移=目的位索引/8,且目的位偏移=目的位索引%8。设置目的位(框1230)。举例来说,将目的位(DB)设置为等于DB[目的字节偏移]。举另一实例,DB=掩码[目的位偏移]。对帧中的每一位索引重复框1222到1230(框1232)。作为步骤1208的部分创建的PRNG数据向量被保存于网关的存储器中以供稍微用于编码/解码顺序传输。
现参考图44,展示可由从网关接收经编码数据表的控制器实施的解码独立算法(过程1240)。过程1240包含置乱函数(框1242),其反置乱经编码帧中的帧位。过程1240进一步包含检索定位在帧的开始处的真随机数(框1244)以用作PRNG数据向量或秘密。用秘密种PRNG,且来自PRNG的数字用于XOR帧(例如,有效负载及CRC)(框1246)。此揭示原始有效负载(例如,原始数据表)。移除CRC(框1248),且控制器计算有效负载及随机数的CRC且比较其与经移除CRC以确保控制器与网关之间的同步。如果CRC校验不通过,接收器推断其失去了同步。
如果控制器与网关之间失去了同步,控制器就可使用原始数据表(DT0)将经编码同步命令发送到网关。网关将首先尝试使用当前数据表解码命令。如果解码消息的那个尝试失败,网关就可尝试使用原始数据表(DT0)解码消息。如果网关使用DT0成功解码了消息,其就可推断控制器失去了同步(例如,使用旧数据表)。如果控制器不再具有当前数据表或DT0(例如,其掉电了),控制器就可使用秘密生成TDK(如上文描述),且将请求发送到用TDK编码的网关以重新同步。网关将首先尝试使用当前数据表解码消息,这将不通过CRC校验。接着,网关将尝试使用DT0解码消息,这也将不通过CRC校验。最后,网关就将尝试使用经存储秘密值解码消息以生成TDK。用TDK成功的解码向网关指示控制器掉电了(或以其它方式丢失了原始数据表)。接着,网关可生成新DT0,且将其发送到用TDK编码且经编码为独立消息的控制器,如上文图41中描述。
作为控制器与网关之间失去同步的另一实例,网关可辨识其与控制器变得不同步(例如,控制器发送消息但其不在范围内,且所以消息从不被网关接收到但控制器已经切换到下一表)。网关可使用编码独立算法将新的PRNG数据向量(使用真RNG作为种子从PRNG生成)发送到用TDK编码的控制器。控制器将尝试用当前数据表解码消息(这将不通过CRC校验)。接着,控制器将试图使用RAM中存储的DT0解码消息(这同样也将不通过CRC校验)。接着,控制器可使用其已存储的秘密生成TDK且可尝试使用TDK解码消息(这将成功)。网关还从秘密生成TDK及使用TDK生成数据表。
作为控制器与网关之间失去同步的另一实例,控制器可掉电且不再具有TDK。控制器因此不能解码由网关发送的新秘密。接着,控制器可使用经存储秘密生成TDK且将请求发送到网关以重新同步,所述请求使用TDK编码。网关试图使用当前数据表解码消息(失败),试图使用DT0解码消息(失败),并接着试图使用TDK解码消息(成功)。网关使用编码独立算法将新的RNG发送到控制器(结合PRNG使用以找到新秘密或PRNG数据向量)。接着,网关使用TDK生成数据表及将其发送到控制器。
在一些实施例中,如果网关在阈值时间量内不能与控制器通信,其就可丢弃所有表且在后一通信之后重新初始化控制器。在一些实施例中,每一次发送新的数据表,同样也可发送新的秘密,如上文论述。
大体上参考图41到44,描述用于编码及解码数据的编码及解码独立算法。在另一实施例中,编码及解码顺序算法可用于编码及解码待传输的数据。参考图45,展示实例编码顺序算法。在顺序算法中,控制器及网关两者保持PRNG的状态及表。具有每个包,PRNG的位置基于PRNG数据向量变化(其最初是秘密且随后是PRNG留在前一包中的地方)。表基于有效负载及PRNG序列变化(即,到表的数据驱动变化)。此可称为“表块链接”。
在顺序算法期间变化的表的部分的大小是可配置的且称为“变化大小”。在一个实施例中,变化大小可为素数及/或数据表的大小不应被变化大小均匀整除。大小等于变化大小的表修改缓冲器(TMB)可用于在顺序算法期间临时存储变化向量。
参考图45的过程1300。用有效负载设置帧(框1302),及计算有效负载的CRC(框1304)。将CRC添加到帧的末尾(例如,如图42中所展示)。如上文在独立算法中描述,来自PRNG(使用秘密)的值用于与帧进行XOR(框1306)。
将第一变化大小经XOR的值复制到表修改缓冲器(框1308)。数据表用于置乱帧位(框1310),且数据表经修改以结合下一传输使用(框1312)。现参考图46,更详细描述表修改块1312。数据表可在每一帧混淆之后修改。表修改过程可通常包含直到待替换的下一值的索引,及用表修改缓冲器中那个索引的值替换所述值。
以索引i=0开始,通过检索TMB[i]中存储的值定位交换索引S(框1320)。记者,在数据表中,交换索引i处存储的值与索引S(框1322)。针对表修改缓冲器中的每一条目重复此过程(框1324)。
下一次修改数据表时,修改可以在前一迭代中修改的最后条目之后的下一条目开始。当索引达到数据表的大小时,其回绕且在数据表的开始处继续。PRNG数据向量按刚处理的帧的长度增加,以下一次使用。举例来说,如果变化大小被确定为7且数据表大小是12,DT1就基于DT0通过使值DT0[0]到DT0[6]与值DT0[S[0]]到DT0[S[6]]交换生成,其中S是表修改缓冲器。接着,下一次到DT2可基于DT1通过使值DT1[7]到DT1[12]与值DT1[S[0]]到DT1[S[6]]交换生成,其中S含有表修改缓冲器中存储的新值。
在另一实施例中,待修改的数据表的部分可以替代方式确定,例如改变表与每一后一变化的重叠部分。在又另一实施例中,数据表可仅在已发送/接收阈值数目个帧之后变化。在又另一实施例中个,仅数据表的每隔一个位可变化。在又另一实施例中个,表的某些部分可略过且未被更改。数据表修改也可从素数偏移(而非从0索引)开始。所属领域的技术人员应认识到,任何数目个替代修改或组合也可经实施以修改数据表。类似地,所属领域的技术人员应认识用于修改PRNG数据向量的任何数目个替代技术。
单独地,XOR函数及置乱函数中的每一者都是相对较弱的数据混淆方法;然而,当组合时,混淆强度增加超过其部分的总和。表更新是PRNG及有效负载的函数。表是基于已经由XOR修改的有效负载数据修改。在XOR与置乱函数之间进行表更新使表修改在黑客不能通过重复攻击确定数据时免受黑客尝试。
在一个实施例中,在置乱步骤(框1310)之后,额外XOR可使用不同PRNG序列完成。可交换多个PRNG数据向量且使用其以便使用不同PRNG序列。在其它实施例中,可能不存在应用的额外XOR,或可应用除图45中展示的XOR及置乱函数外的额外变换。
在一个实施例中,如上文过程中描述,PRNG值与置乱表进行XOR,接着经XOR的值与数据进行XOR,接着置乱所得经XOR的数据。将PRNG值与置乱表进行XOR隐藏PRNG且防卫PRNG以免明文攻击。参考图45,框1306可包含将PRNG值与置乱表进行XOR且此第一XOR结果与帧的XOR。针对每一帧执行此。在另一实施例中,针对第一帧,此可完成,但对于后续帧,代替使用PRNG值与表进行XOR,来自前一帧的经XOR的数据(在置乱之前但在所有其它混淆之后)与置乱表(而非PRNG值)进行XOR。此实施例增加处理效率。参考图45,框1306可包含将来自前一帧的经XOR的数据与新的帧(而非PRNG值)进行XOR。在每一此实施例中,解码过程包含解码数据的镜像步骤。
控制器从网关接收经编码传输,且可使用解码顺序算法解码数据。控制器可使用数据表反置乱帧位,且经反置乱表可用于表修改缓冲器中。接着,数据表经修改以通过使用表修改缓冲器中的表及使用与图46中描述的相同修改步骤结合下一传输使用。接着,来自PRNG的数字用于XOR帧,从而揭示有效负载及CRC。最后,控制器可计算有效负载的CRC及比较器与来自帧的CRC以验证控制器与网关同步。如果CRC相同,消息由控制器接受且PRNG数据向量按要用于下一传输的帧的长度增加。
大体上参考图38到46,描述用于促成多个装置与网关之间的通信协议的协议及算法,其中不能保证通信是完整的。现参考后续段落,描述用于促成网关与远程服务器之间的更高带宽通信的算法。在更高带宽通信是可能的情况下,信息可通常经配置以经由TCP-IP运行。通过使用TCP-IP协议,保证有效负载的传输是完整的,这是由于重新传输技术内建于TCP-IP协议中。在那些案例中,算法可接受可被其表大小(例如,数据表的大小,如上文描述)整除的给定数据包(例如,数据表)的帧大小。举例来说,对于表大小160,算法可接受1600字节帧。举另一实例,对于表大小256,算法可接受1024字节帧。
每一帧由多个块组成,所述块具有与数据表大小相同的大小。算法编码每一块。与图38到46的算法相比,用于编码这些块的算法可以相同方式工作单无须使用CRC校验块。
当编码算法使用TCP-IP协议时包含对于给定帧使用来自PRNG的数字以XOR帧,从而隐藏原始有效负载且防止明文攻击试图及解码数据表。经XOR的值被复制到TMB以供用于数据表更新中。接着,数据表用于置乱帧位,接着数据表使用TMB修改(如上文描述)。在置乱之后,额外XOR可使用不同PRNG序列完成。在其它实施例中,可不存在额外XOR步骤,或可在基本XOR及置乱步骤周围加入额外变换。
在伴随的解码算法中,用用于XOR传入的经编码缓冲器的PRNG数据向量(例如,秘密)种PRNG。接着,数据表用于反置乱帧中的位。接着,数据表使用经反置乱缓冲器作为TMB修改。接着,来自PRNG的数字用于XOR帧,从而揭示原始有效负载。
在一些实施例中,通信协议可创建于多个装置之间,其中多个装置包含一或多个固定站及一或多个移动装置。举例来说,本文描述的***及方法可经调适以管理例如建筑物、旅游路线或类似物上的多个移动用户装置与多个固定站之间的通信。下文使用用于各种运输管理的固定站的实例,在其它实施例中,固定站可为用于管理区域、分配资源及类似物的任何类型的固定站。
固定站可通常具有发送及接收信息的有限的频谱量。为提供高速通信,固定站可能必须限制同时与固定站通信的用户数目。因此,为允许整个固定站网络接受更多用户,多个固定站可相对更靠近彼此而放置,且移动装置可在固定站之间切换同时维持会话而不会中断服务。移动装置与固定站之间的认证应随着移动装置移动及从多个固定站接收包及固定站从多个移动装置接收包而发生。本文描述的***及方法使用双方(即,固定站及移动装置)都已知的密钥以认证及混淆包,如下文描述。更特定来说,描述将密钥动态地提供到用于认证及解码固定站与移动装置之间的包的移动装置的预测算法。
参考图47,展示包含多个固定站1402及多个移动装置1404的环境1400。如上文描述,多个固定站1402可相对更靠近彼此放置,且可出于策略原因(例如,为在区域中提供更多无线网络覆盖)以任何模式或次序布置。移动装置1404可为例如移动电话、附接到移动对象或车辆的装置等,其遍历不同固定站1402的范围内及外的环境1400。如说明,移动装置1404可随着其移动在相对于固定站1402的任何位置中,且可在多个固定站的范围内。使用本文描述的***及方法,移动装置1404可能能够连接到第一固定站且建立与安全传输的会话,接着,连接到第二固定站且维持与相同安全传输的相同会话。
在一个实施例中,移动装置或其它移动平台可具有多个用户。举例来说,使用上文提及的旅游路线实例,移动平台可为智能汽车,其可在一些乘客正在通电话或看电影时从多个固定站接收交通信息。在另一实例中,移动平台可为列车,其可在个别用户浏览因特网时接收轨道状态信息。固定站可定位在运输方法的视线或路径内。固定站可为例如经由高速通信通道连接到网络的网络化固定站。举另一实例,固定站可为将信息(例如,关于列车轨道的状态,例如轨道是否关闭或交通是否繁忙,从而警告列车停止或减速)提供到移动装置的固定信息站。在智能城市信息***中,此类站可用于动态地平衡交通,从而允许车辆最小化行进时间。固定站,如果未网络化,可通过超车车辆更新,如在铁路轨道中的远程固定站的案例中。
以此通信协议发送的包可为任何大小,且整个包或仅包的部分可经由本文描述的***及方法混淆。包可使用例如CRC值认证。举另一实例,包可通过识别包中的时间标记信息及比较包上的时间标记与目的装置上的当前时间以确保包是最近的来认证。
包可取决于到固定站的预期数目个连接及可用于协商站与移动平台之间的会话的时间量完全或部分经编码。一些包可包含会话ID号或由固定站以及时方式处理的另一识别方法。通过不编码这些值,全部包可由固定站更迅速地处理及处置。明码识别值还允许固定站用校正数据表解码包而无须猜测用户的身份。
现参考图48,展示用于将包传输到固定站及从固定站传输包的实例方法1500。方法1500以包含有效负载1502及填补值1504的包开始。填补数据1504可为预先存在的填补数据以促进有效负载1502的编码、解码及认证。填补数据1504可为哈希、时间标记、CRC或其它值。通过使用填补数据1504编码及解码数据而非生成值,不会增加包1500的总大小。
在格式化包以供传输中,填补数据1504首先从包提取且接着用作产生伪随机数1406的PRNG的种子。
接着,使用伪随机数1506对有效负载1502执行XOR。此隐藏原始有效负载且防卫数据以免明文攻击。此还可包含XOR PRNG与置乱/加扰表及/或用现有帧的经XOR的数据替换PRNG,如上文描述。接着,提取的填补数据1504重新附接到经XOR的有效负载1502,且加扰整个包(1508)。
经加扰包1508被传输且在目的地处接收。在目的地处,包1508被解扰,且填补数据1504从其已知位置提取。接着,填补数据1504用于种PRNG,从而产生与发送器相同的伪随机数。有效负载1502已与伪随机数进行XOR,从而产生原始有效负载。
取决于提取数据的性质,存在用于验证有效负载的真实性的若干方法。举一个实例,计算预期CRC值,且比较其与提取的CRC。举另一实例,计算有效负载的预期哈希,且比较其与提取的哈希。举另一实例,比较时间标记与目的地的当前时间。
在一个实施例中,加扰算法可经修改以通过调整XOR的范围且加扰为其与有效负载的大小相关保持明码识别值。类似地,识别值可被视为填补数据且用于XOR包的剩余部分。然而,加扰可排除填补数据,从而将其保持为明码文本。
密钥用于解码包。在图49中描述在固定站及移动装置环境中提供密钥的一种方法。会话服务器1602用于随着移动装置在路线中移动将密钥动态地供应到移动装置。会话服务器1602维持与基站塔1506(例如,固定站)的通信。当塔1606电源开启(例如,联机)时,建立与会话服务器1602的会话。
策略服务器1604可授权移动装置(例如,用户)与通信服务器。当移动装置1608电源开启时,装置不具有任何基于表的密钥。为了获取必要的密钥,移动装置1608可认证网络及接收认证以使用网络。移动装置1608可使用公开密钥基础设施(PKI)建立与策略服务器1604的会话。会话可经由蜂窝网络或通过与网络化塔通信建立。网络化塔可将引导请求转发到策略服务器1604。
当建立与策略服务器1604的连接时,其将其签署证书发送到移动装置1608。装置使用PKI验证证书的真实性,且如果其是真实的,就生成用策略服务器1604的公开密钥编码的秘密且发送其。策略服务器1604使用其私有密钥以公开秘密。对话双方使用秘密生成伪随机数序列且使用那些数字创建KDT。在KDT创建之后,策略服务器1604创建会话数据表且使用KDT将其发送到装置1608。用户凭证使用数据表与策略服务器1604交换。如果用户(例如,移动装置1608)经授权使用服务,策略服务器1604就将会话交给会话服务器1602。
当会话从策略服务器1604移交时,会话服务器1602定位接近用户的固定站。会话服务器1602可识别待发送到装置的一组固定站。
用户可在经识别路线外或在经识别路线内。当用户不在经识别路线中时,识别的一组固定站包含所有路线的最近固定站。如果用户在经识别路线中时,用户的方向及速度可使用GPS计算,且要提供到用户的一组固定站包含一些P个先前站及一些N个下一站,其中通常P小于N。
下一站的数目N包含下一网络化及非网络化站。用户的位置与下一网络化站之间的所有非网络化站将包含在一组固定站中。除非网络化站外,启发式地确定要包含的下一网络化站。举例来说:如果路线即将有分支,将包含沿着分支的站的DNS以及沿着路线的DNS。
会话服务器1602将装置的数据表发送到一组固定站中的网络化固定站。在一些案例中,所有路线中的所有站可被发送到装置1608以允许所有固定站的认证。此可用于例如汽车警告***中,其中所有汽车都将有办法认证固定站,即使其不使用基干进行网络通信,或通过需要认证沿着其可行进的所有轨道的所有固定站的机车。
在此点处,装置1608可使用其数据表对塔1606进行认证。使用数据表会话服务器1602将把附近塔表发送到装置。塔表用于认证塔广播消息。
固定站与用户之间的消息用数据表加密。
下一站的密钥表被发送到用户装置1608。***需要防止不满用户获得固定站的密钥表及使用那个密钥表提供信息,像其是真的固定站那样。
一组固定站中的密钥用用户的会话密钥数据表加密,且其从不被***保存到长期存储装置(例如硬盘)。
在其中所有固定站密钥驻存于用户的装置中的案例中,其将用用户的数据表加密,且数据表本身将用密码加密。密码用于将数据表移动到存储器,且随着其移动到存储器解码密钥。那样,如果盒从移动平台或移动用户(例如车辆或列车)被偷走,可能就不能恢复密钥。
当密钥用于认证时,消息的一部分用用户或固定站密钥表加密。对话的接收端解码包的经混淆部分且验证真实性。此可通过通过编码已知数据片(例如时间代码)编码有效负载的CRC来完成。在包被解码之后,CRC或已知数据片用于认证包。
固定站可经配置以仅转发经认证包。当希望完全混淆时,有效负载可使用单独的用户对用户会话密钥混淆,如本文先前描述。
包可含有时间标记且可用站密钥编码。服务攻击的否认可通过使固定站拒绝非经认证传入消息来避免。
现大体上参考图50到56,描述网络存取控制***。网络存取控制***可通常允许供应及管理网络中的多个节点,而无需管理证书,例如,维持证书列表、管理过期证书、管理证书撤销列表、管理权限撤销列表或类似物。大体上参考本发明,描述用于提供混淆技术以供在节点之间通信的各种***及方法,以下描述描述用于在节点之间建立经授权通信以允许在节点之间传输经混淆数据的***及方法。
参考图50,展示网络存取控制***1700的高级框图。网络存取控制***1700通常包含存取请求程序1702、网络存取服务器1704及策略服务器1706。存取请求程序1702可为经配置以连接到网络的任何装置(例如,尝试连接到网络1710中的各种节点、网络中的节点中的一者等的移动装置)。装置可为本发明中大体上所描述的任何类型的装置。网络存取服务器1704从存取请求程序1702(例如,用户装置)接收请求,及提供到网络1710中的多个节点1708的连接。根据不同实施例,节点1708可为真实或虚拟机。策略服务器1706可通常认证各种节点1708之间的通信且可类似于上文所描述的策略服务器702及1604。
在网络存取控制***中,存取请求程序1702经由安全链路与网络存取服务器1704通信,接着,一旦存取请求程序1702被认证,网络存取服务器1704就经由安全链路与策略服务器1706通信。接着,策略服务器1706确定存取请求程序1702对网络1710中的节点1708的存取权。在现有技术中,节点与服务器之间的每一链路可通过协议(例如传输层安全(TLS)协议)获得安全,且证书用于保护装置之间的连接。节点1708可为任何类型的机器或装置(例如,真实的机器、虚拟机、平台组件、软件组件等),如本发明中大体上描述。
现大体上参考本发明,描述网络存取控制***。在图51到56的实施例中,供应用于通信的节点而无须管理证书。参考图51,展示在网络1710中建立会话的过程1800。过程1800包含两个节点安全地交换秘密(框1802),在此之后,两个节点都使用秘密种PRNG。PRNG的输出用于创建密钥分发表(框1804)。节点中的一者创建数据表(框1806),接着,使用密钥分发表交换其与另一节点(框1808)。数据表随后基于PRNG及数据在节点之间在每个包交换中修改。过程1800是用于建立会话的过程,如本发明上文中大体上描述,以下图式描述用于供应将在网络中建立会话的节点的过程。
现参考图52A到B,更详细展示在网络中供应节点。更特定来说,图52A说明网络中节点1908的配置以允许节点由网络存取服务器1904用于网络中。为促进网络中节点的配置,操作者可存取节点1908且启动配置程序1912。配置程序1912通常经配置以使用网络存取服务器公开密钥1914对网络存取服务器1904认证。接着,网络存取服务器公开密钥1914用于与网络存取服务器1904交换秘密,且会话(1916)建立于节点1908与网络存取服务器1904之间。虽然图52A的实施例展示网络存取服务器公开密钥,但在其它实施例中,其它认证方法(例如,509证书)可用于认证节点处的网络存取服务器。在本发明的又其它实施例中,安全会话可使用密钥交换算法建立,例如Diffie-Hellman,或如在由艾德姆奥克姆(Erdem Alkim)的“后量子密钥交换-新的希望(Post-quantum key exchange–a newhope)”(https://eprint.iacr.org/2015/1092.pdf)中揭示,或弗罗多(Frodo)密钥交换,且服务器可在安全会话建立之后且在用户密码交换之前被认证。
一旦建立了网络存取服务器1904的会话,配置程序1912将操作者凭证(例如,用户的凭证)发送到网络存取服务器1904。网络存取服务器1904可认证用户与策略服务器1906且验证用户经授权以配置节点1908。
由配置程序1912进行的配置包含创建节点1908的密钥分发表及将密钥分发表存储于节点的安全存储装置1918中。密钥分发表被提供到网络存取服务器1904,其将密钥分发表(及其它节点信息)存储于服务器安全数据库1920中。在另一实施例中,代替保存密钥分发表,可创建节点1908的公开/私有密钥,且节点的私有密钥被存储在节点处而公开密钥被发送到网络存取服务器1904以存储。
现参考图52B,更详细展示用于供应节点的过程1950。更特定来说,过程1950展示一旦从存取请求程序接收到请求就从网络存取服务器供应节点的过程。在过程1950中网络存取服务器经配置以起始虚拟机(VM)中的节点。
在过程1950中,节点已经经配置用于供应,如图52A中描述。过程1950包含寻找节点的图像(框1952)。框1952可通常包含网络存取服务器用适当的操作软件或其它软件寻找节点的图像。框1952可进一步通常包含搜索具有任何所要设置或特性的节点的图像。
过程1950进一步包含制作节点图像的副本(框1954)及安装节点图像的副本(框1956)。网络存取服务器,因为其已经具有对节点的安全存取,将密钥分发表写入到节点图像的副本中(框1958)。网络存取服务器用节点图像的副本加载VM(框1960),且密钥分发表被保存于网络存取服务器的存储装置中(框1962)。
本发明中所描述的供应***可通过任何类型的操作环境实施。举例来说,供应可通过基础设施即服务(IaaS)、平台即服务(PaaS)或软件即服务(SaaS)模式完成。在IaaS模式中,供应可通过虚拟平外完成,从而在虚拟机与节点之间建立连接。在PaaS模式中,供应可用过物理或虚拟服务(例如数据库、网页等)完成(例如,从而在数据库与节点之间建立连接)。在SaaS模式中,供应可通过软件应用完成(例如,从而在浏览器与节点之间建立连接)。大体上参考图53到55,更详细描述在每一类型的操作环境(IaaS、PaaS、SaaS)中的供应。
图53是说明在网络中的节点之间建立IaaS会话的过程的框图。存取请求程序1902可建立与网络存取服务器1904的安全会话,如上文描述,以便请求(展示为框2002)使用节点1908。策略服务器1906接收请求(展示为链路2004)且认证及授权存取请求程序1902使用节点1908(展示为框2006)。节点1908可为真实的机器或虚拟机。
接着,网络存取服务器1904创建数据表(展示为框2008),其将用于存取请求程序1902的终端客户端2014与节点1908的终端客户端2016之间的通信。数据表由网络存取服务器1904用节点的密钥分发表加密(展示为框2010)。数据表及经加密密钥被发送(展示为链路2012)到存取请求程序1902的终端客户端2014。终端客户端2014打开与节点1908的终端客户端2016的连接且转发经加密密钥。此经加密密钥由节点使用节点的密钥分发表解码且用于起始存取请求程序1902与节点1908之间的会话。
图54是说明在网络中的节点之间建立PaaS会话的过程的框图。图54的实例说明建立与数据库2020的安全连接作为平台。平台组件使用例如图52B的过程1950通过平台中的中间件供应。在图54的实例中,展示nodeJS应用于数据库之间的交互;应了解,本文的***及方法适用于其它应用及平台。
当应用2022需要建立与数据库2020的安全连接时,中间件2024可拦截呼叫(展示为链路2026)。中间件2024打开与网络存取服务器1904的安全连接(展示为链路2028)且将凭证2030(例如,用户凭证、应用凭证)传递到服务器。网络存取服务器1904验证应用的认证及授权,且为应用(nodeJS 2022)提供新的数据表且为数据库2020提供用密钥分发表加密的数据表的副本。
中间件2024保持接收到(展示为链路2032)的密钥(数据表)且打开到数据库2020的连接(展示为链路2034)以发送经加密密钥(经加密数据表)。数据库2020存储密钥分发表(展示为框2036)且在由应用2022提供时使用其解码数据表。接着,安全连接建立于应用于数据库之间(展示为框2038)。
图55是说明在网络中的节点之间间力SaaS会话的过程的框图。图55的实施例将浏览器展示为由存取请求程序1902使用以建立与节点的连接的软件应用;在其它实施例中,可使用任何类型的软件应用。当存取请求程序1902通过浏览器2040使用应用时,应用2042被下载到浏览器。接着,应用2042可在与网络存取服务器1904的安全会话中运行(展示为链路2044)。安全会话可经由TLS或任何其它协议建立。应用2042可为例如AngularJS应用。
当存取请求程序1902由网络存取服务器1904(及策略服务器1906)认证且授权时,服务器将新的数据表及用软件组件密钥分发表加密的数据表提供到浏览器2040(展示为链路2046)。应用2042打开与软件后端2048的连接及将经加密数据表提供到软件后端。软件后端2048使用其经存储密钥分发表(展示为框2050)解密数据表以便在浏览器2040中的应用2042与应用的服务器组件之间建立连接。
现参考图56,展示说明如何在多个节点之间分发或迁移会话的框图。在图56的实施例中,存取请求程序1902与第一节点2102在会话中(展示为链路2112)。当存取请求程序1902向网络存取服务器1904请求额外资源(展示为链路2114)时,服务器可确定会话应被移动到第二节点2104以容纳请求。网络存取服务器1904将新的会话密钥发送到存取请求程序1902(展示为链路2116)。新的会话密钥包含用第一节点2102的密钥分发表加密的数据表及用第二节点2104的密钥分发表加密的数据表的副本。
存取请求程序1902将数据表转发到第一节点2102(展示为链路2118)。第一节点2102使用其密钥分发表解码数据表,且辨识请求以打开与第二节点2104的会话。第一节点2102打开与第二节点2104的连接且将用第二节点的密钥分发表加密的数据表传递到节点(展示为2120)。
经由链路2120接收到的经加密数据表在第二节点2104处解码,且用于建立与第一节点2102的安全连接(展示为链路2122)。当所有数据都在两个节点之间移动时,网络存取服务器1904创建数据表且将数据表加用第二节点2104的密钥分发表加密的副本发送到存取请求程序1902(展示为链路2124)。
接着,存取请求程序1902打开与第二节点2104的连接(展示为链路2126)且传递经加密数据表。第二节点2104解密数据表且使用其在节点与存取请求程序1902之间建立会话(展示为链路2128)。如果过程是迁移过程,第一节点2102就可从存取请求程序1902释放,这是因为到第二节点2104的迁移是完整的。
现参考图57,展示网络存取控制***2150的高级框图。除网络存取控制***1704外,展示***中的策略服务器1706及客户端(节点)1708、多个线缆中的块(BITW)节点2152。BITW节点是可***到现存***中以改进***内的通信(即,通信的更高可靠性及安全性)而不会改变每一通信的端点处的节点的节点。换句话来说,BITW节点在将接收消息的节点与***2150的各种其它组件之间中继消息。BITW节点可经供应且经建立用于***2150中的通信,如下文描述,类似于本发明中所描述的其它节点。
网络存取服务器1704可在从策略服务器1706接收授权以进行授权之后提供具有密钥的BITW节点2152,其类似于供应常规节点的过程。BITW节点2152可包含两个接口:网络绑定接口,其用于促成与网络中的其它节点的通信;及客户端绑定接口,其用于识别的特定节点,如下文描述。在图57中,展示每一BITW节点2152与客户端1708相关联;但应理解,BITW节点2152及节点1708的任何配置可为可能的,包含于每一BITW节点2152相关联的多个节点1708。
BITW节点2152可监听包且当接收到包时从包确定客户端目的IP。接着,BITW节点2152可使用客户端目的IP确定包的预定接收者。如果BITW节点2152不知道预定接收者,存取请求协议(ARP)包就可被传输到附近客户端(节点),接着,BITW节点2152可从客户端接收指示客户端的IP地址的响应。如果BITW节点2152未从包接收到匹配客户端目的IP地址的IP地址,BITW节点2152就知道客户端目的IP不在网络中。如果响应于ARP接收到IP地址,BITW节点2152就可保存相关联的MAC地址以供未来通信。
随着BITW节点2152在网络中发现新的IP地址,其可通知配置服务器2154。接着,配置服务器2154可通知网络中的所有BITW节点2152,从而允许所有此类节点知道各种客户端在网络中的IP地址。
BITW节点2152可经配置以检测另一BITW节点何时已被***到网络中,所述BITW节点***到到目的IP或客户端1708的路径中。检测网络中添加了新的BITW节点的BITW节点2152可启动与新的BITW节点的会话。原始BITW节点可具有用于授权会话的令牌,或可从网络存取服务器1704请求及接收所述令牌。
发送到客户端1708及来自客户端1708的消息的混淆及反混淆可在包的通信路径中的BITW节点处发生。举例来说,发送到端客户端1708的包可由将消息发送到客户端的对应BITW节点2152混淆,且包可在目的BITW节点处反混淆。
本文描述的供应***及方法允许单个策略服务器控制跨网络中的所有服务器的所有认证及存取。如果策略服务器具有问题,策略服务器就可经复制以便防止***范围的故障。建立会话的过程通过与过程相关联的表及与处理器相关联的表被缚于节点处的处理器。如果会话需要扩大到更多处理器,就试用表用于扩大。如果节点之间失去同步,就可以与原始设置相同的方式实时重新启动其。
大体上参考本发明,描述用于提供用于节点之间的通信的混淆技术的各种***及方法。其中本文描述的***及方法的一个实例环境可在车辆中。现代车辆可包含许多(例如,七十个或更多)电子控制单元(ECU)。此类ECU的实例可包含混合或电动车辆等的引擎控制单元、传输***、气囊***、防抱制动***、巡航控制***、电动助力转向***、音频***、电动窗、门、后视镜调整***、电池或充电***。大体上参考本发明,本文描述的***及方法可用于与子***中的ECU建立安全无线通信或在所述ECU之中建立安全无线通信。更具体参考下文的图58到62B,描述关于在车辆中的实施方案的本发明的***及方法。
应理解,本文的***及方法也可应用于包含多个ECU及节点的任何环境。图58到62B中描述的实施例被提供为***及方法在车辆中的实例实施方案,但可经调适以应用于任何其它类型的网络化环境中。此类实例网络可包含建筑区中的经连接打印机及其它计算机、用于监测的多个传感器或警报***、区域中的多个移动或静止装置及类似物的网络。
现代汽车可通常具有具有有限能力的数百个传感器,每一传感器连接到ECU且能够与引擎控制器(例如,车辆的主控制器,下文也简称为控制器)通信。一些ECU可仅连接到一个传感器,且在一些实施例中,ECU及传感器在相同的装置上。在其它实施例中,ECU及传感器可为不同装置上,或多个传感器可连接到单个ECU。将在ECU与引擎控制器之间传输的信息应被认证及加密。如本发明中大体上描述,ECU与引擎控制器之间的会话可通过首先在两者之间共享“密钥”建立。给定ECU的密钥可通常为唯一初始数据表(其大小经裁剪到每一ECU的数据字段)与PRNG的唯一多项式指数的组合。将密钥供应到每一ECU应仅在安全环境中发生,例如在出厂设置(或其中车辆或传感器被制造的其它设置)中。
一旦车辆的电源开启,引擎控制器及ECU就无需以“秘密”开始以创建密钥分发表来创建数据表(如关于图39的过程1100描述),这是因为每一ECU的数据表已经被预先供应且每一ECU的每一数据表的副本被保持在引擎控制器处。代替地,引擎控制器将相同的随机32位字种子发送到每一ECU(每一引擎控制器被预先供应随机32位字)。ECU使用ECU的唯一数据表加扰此种子且结合与PRNG多项式使用结果作为向量种PRNG。以此方式,每一ECU与引擎控制器的会话以唯一数据表及唯一PRNG序列开始。每一ECU将数据表保持于永久存储器中且将预先供应的多项式指数保持于易失性存储器中。从此点,ECU与引擎控制器之间的安全有效负载通信可继续,如图41的过程1200中大体上描述。
在替代实施例中,每一ECU可被预先供应其自身数据表及秘密(28个字节包括PRNG多项式指数及PRNG向量,如过程1100中描述)。引擎控制器将每一ECU的数据表及秘密的副本保持于永久存储器中。此实施例可准许在引擎控制器处发生PRNG的计算,引擎控制器是比ECU强大得多的处理器。
大体上参考图58到62B,描述向车辆中的每一ECU供应密钥的方法。可随着时间的推移更换车辆中的ECU。举例来说,与轮胎相关联的ECU可在更换车辆的轮胎时更换。当更换车辆中的ECU时,新的ECU可被供应不同于被更换ECU中的密钥的密钥,且会话可建立于新的ECU与引擎控制器之间。然而,新的ECU可能直到操作者(车主、经销商等)在其安全期间授权新的ECU才被引擎控制器信任。
现参考图58,展示说明车辆子***的引擎控制器与ECU之间的通信过程的框图。引擎控制器2202包含控制器区域网络(CAN)队列2204,从CAN队列2204传输消息到ECU 2206及传输来自ECU 2206的消息。因而,将从控制器2202传输的所有消息在CAN队列2204中排队且被引入到CAN总线2208。
图58的***可支持模拟模式及仿真模式两者。在仿真模式中,来自控制器的消息经由CAN队列2204被提供到CAN总线2208,接着从CAN总线2208提供到ECU2206。为支持仿真模式,队列2204及CAN总线2208用于发送来自被仿真的各种ECU的消息及从被仿真的各种ECU接收消息。消息被排队且连续地被引入到CAN总线2208以供传输。CAN队列2204在其入队及出对方法中同步。在模拟模式中,来自控制器(CAN队列2204)的消息被直接提供到ECU2206,且对消息的ECU答复被直接提供到CAN队列2204。
引擎控制器2202经配置以供应车辆中的ECU。为开始供应,用户装置2210可与控制器2202连接以允许配对。用户装置2210可为移动电话、经销商商店中的设备或属于经授权用户(例如,经销商)的可向车辆子***提供更新的任何其它类型的装置。用户装置2210及控制器2202可经由OBD-II端口连接或通过任何其它可用方法连接。用户装置2210及控制器2202可在供应方法之前配对。用户装置2210通常提供一或多个消息,包含希望用于车辆的一或多个ECU的软件更新(或其它信息)。在图63A到65中更详细描述用户装置2210与控制器2202之间的通信过程。
当车辆的各种ECU电源开启时,每一个别ECU 2206可将供应请求发送到控制器2202(经由CAN总线2208)。此情况可在CAN总线2208处引起大量冲突,这是因为ECU可在相同时间提交供应请求。此可导致频繁地发送错误消息,或最终,导致CAN总线2208或控制器2202的“总线关断”状态或其它错误状态。在车辆的设置中,此错误消息的生成可通常指示车辆的严重问题;因此,代替地,可希望避免冲突使得可辨识更严重的错误消息。本文描述的供应方法帮助避免由ECU生成的各种请求之间的冲突。
应理解,图58到62B中描述的加密过程可经实施用于除CAN总线外的任何类型的IoT应用。CAN总线经提供作为允许多个装置与彼此通信的实例标准,但装置可经由任何其它类型的方法或协议互连。
还参考图59A到D,更详细展示供应过程。如果每一个别ECU 2206尚未被供应,其通过常规地传输开始。作为其常规传输的部分,ECU 2206可包含其ID。当控制器2202从每一ECU 2206接收传输时,其可校验以查看是否可供应每一ECU 2206。为进行此,控制器2202传输CAN供应消息2302,如图59A中展示。消息2302包含CAN供应ID 2304,其是可由ECU 2206辨识为供应校验的经预定义消息ID。展示消息2302的有效负载包含ECU 2206的ID、扩展位及任选地四位ECU有效负载后的扩展地址的十八个位。
当ECU 2206接收到消息2302时,如果ECU 2206可被供应且消息2302中的ECU ID匹配其自身ID,ECU 2206就可请求供应。参考图59B,展示ECU供应消息2312。消息2312包含请求供应ID 2314,其是可由控制器2202辨识为供应请求的经预定义消息ID。消息2312可进一步大体上包含类似于关于消息2302描述的有效负载的有效负载。
当控制器2202从ECU 2206接收到消息2312时,其应验证控制器及ECU都在安全环境中。如果控制器2202不能验证安全环境,控制器2202就可请求用户(经由用户装置2210)确认其是供应ECU 2206可接受的,且一旦接收到确认就可继续供应过程。在一个实施例中,控制器2202可等待用户输入指示环境是安全的,且可保存请求使得一旦控制器2202能够确认环境是安全的其就可被处理。
一旦环境的安全的,控制器2202就可回复消息2322,如图59C中展示。消息2322包含供应ID 2324,其为经预定义消息ID。消息2322可进一步大体上包含类似于关于消息2302、2312描述的有效负载的有效负载。在消息2322发送之后,另外消息(例如图59D中所展示的消息2332)可由控制器2202传输。消息2332包含待发送到ECU 2206的密钥的部分(在图59D中指示为“供应ID+N”,其指示在消息中发送了密钥的第N块)。由控制器2202经由多个消息2332发送的密钥包含待用于混淆过程中的表及PRNG向量,如本发明中大体上描述。
在一个实施例中,控制器2202可基于从各种ECU接收到的消息把密钥分组。举例来说,可由控制器2202向广播具有相同大小的帧的所有ECU提供相同密钥以编码消息。
在ECU 2206被供应且准备好用控制器2202传输之后,当ECU 2206被初始化时(例如,当车辆启动时),控制器2202广播随机32位消息到车辆中的所有ECU。接着,每一ECU2206使用ECU中的秘密的数据表部分加扰32位消息,且所得值被用作PRNG的初始向量,如上文描述。
现参考图60,更详细描述ECU及控制器的混淆活动(编码及解码)。一般来说,取决于环境中所需的安全程序,用于加密及解密的算法可为低级或高级加密/解密算法,如下文描述。
在低级加密方法中,待从ECU 2206传输到控制器2202的数据与PRNG进行XOR且接着被加扰,如本发明中大体上描述。接着,表基于用于XOR数据的PRNG的值被链接。表链接在图61中更详细描述。为了在引擎控制器处解码,经加密消息被解扰,且数据与PRNG进行XOR。接着,表与用于XOR数据的PRNG的值链接。如果链接失败,就可使用下一PRNG值。下一PRNG值与数据进行XOR且用于表链接中。此过程可继续直到找到引起表的成功链接的PRNG。
如果整体过程失败(即,无PRNG值会产生成功链接表),重新同步消息可由控制器2202发送到ECU 2206。重新同步消息可具有图60中所展示的格式。重新同步消息2400包含重新同步ID 2402,其是经预定义消息ID。重新同步消息2400进一步包含种子2404,其是用于加扰表且用于在后一加密/解密过程中种PRNG的随机数。种子可为任何大小(例如,从32到64个位)。重新同步消息2400可进一步包含ECU ID及传输通常所需的其它字段。
在高级加密方法中,在ECU 2206将把数据传输到控制器2202的第一时间内,ECU2206可将数据与PRNG进行XOR、加扰数据及链接数据,如上文描述。然而,对于后续迭代(即,对于未来传输),待传输的数据与先前经XOR的数据(经预加扰的经XOR的数据)进行XOR(而非与来自PRNG的值进行XOR)。将数据与先前经XOR的数据进行XOR增加数据的混淆程度。接着,控制器2202可继续解码消息,如上文描述。
如上文在图60中描述,ECU 2206混淆待发送到控制器2202的数据。ECU 2206可通常经配置以传输十分小数据量,这是因为ECU 2206通常传输来自车辆中的单个传感器的数据。在一些实施例中,ECU 2206可能能够随着从传感器接收到数据连续加密及传输数据,而非等待用数据填充整个包且接着传输包。换句话来说,ECU 2206一次一个位或一次一个片段地编码待传输的数据(而非立刻编码所有数据)。大体上参考图61,更详细描述一次一个字节(或一个片段)地解码数据的ECU 2206的基于表的串行加密过程。
对于串行加密过程,一次一密缓冲器由ECU 2206准备。所述缓冲器可为任何大小。在一些实施例中,所述缓冲器可在160与256个字节之间。当ECU 2206从传感器接收到第一传入字节时,所述字节与缓冲器的第一字节进行XOR。接收到的下一字节与缓冲器的第二字节进行XOR,如此等等。当使用一次一密缓冲器的最后字节时,由ECU 2206存储的表被修改且准备新的一次一密缓冲器用于另外数据。在各种实施例中,图61的串行过程可经调适以允许一次XOR从1位到任何数目个字节的任何大小的包,且可基于资源约束及效率考虑做出选择。
现描述在使用了缓冲器的最后字节之后修改表的一个实例。表中的经解码数据的前十七个字节与由ECU 2206生成的PRNG序列的前十七个字节进行XOR。接着,由表链接指向的下十七个条目与经XOR的数据中的值交换。换句话来说,表的前十七个字节中的经XOR的数据与其位置由表的下十七个字节识别的表中的数据交换。在各种实施例中,修改表可把汗XOR表的任何数目个字节及交换表内的任何数目个字节。
参考图61,展示用于准备图60的一次一密缓冲器的过程2500的流程图。过程2500包含用由PRNG 2502生成的PRNG序列2504填充缓冲器。PRNG序列2504与表2506中的数据进行XOR(框2508)。置乱所得经XOR的数据与表值(框2510),且所得值用于一次一密缓冲器2512。在各种实施例中,PRNG序列可用任何类型的密码或算法(例如,AES256、AES128等)编码。
为了解密,一次一密缓冲器可使用相同表、相同PRNG值(例如,相同PRNG多项式)及PRNG中的相同位置准备,从而在一次一密缓冲器中产生用于加密的相同值。传入字节与缓冲器的下一未使用字节进行XOR,且当使用了缓冲器的最后字节时,表被修改且用于创建新的缓冲器,如上文描述。
大体上参考图62A到B,更详细描述由ECU发送到控制器的消息的认证。在一个实施例中,由控制器2202认证消息可使用在线认证完成,所述在线认证使用消息的CRC代码。此代码可通常使其自身字段被***到消息的有效负载中。然而,如果消息的有效负载不包含CRC,或当有效负载太小而不能提供足够的熵(即,消息由于其大小而具有低熵使得CRC不能可靠地被添加到有效负载)时,消息认证就可通过编码来自由控制器从ECU接收到的先前消息的有效负载来完成,如下文描述。
消息可通过编码来自先前的一些消息的有效负载来认证。举例来说,对于来自ECU2206的先前的一些消息N,有效负载大小N的循环缓冲器可由控制器2202使用以保持由ECU2206发送的最后N个有效负载且应答。为认证新的消息,从循环队列计算64位哈希,且所述哈希被加密且在消息2600中被发送,如图62A中展示。消息2600包含:ID 2602,其是用于认证ECU 2206的经预定义ID;及经加密哈希2604。控制器2202验证哈希数以验证认证。
控制器2202可驱动需要认证来自ECU 2206的消息的频率。举例来说,控制器2202可发送消息2610,如图62B中展示。消息2610包含重新认证ID 2612,其是用于询问ECU 2206以进行认证的经预定义消息ID。消息2610进一步包含间隔字段2614,其指定ECU 2206应认证其本身的速率。举例来说,如果间隔是一百,ECU 2206就应认证每一百条消息。如果间隔是零,ECU 2206就应立即认证。消息2610进一步包含字段2616,其确定用于认证的循环队列的大小(例如,用于确定在认证过程中要使用多少条先前消息)。
图58到62B的***及方法可用于例如将软件更新提供到车辆的各种ECU 2206以及引擎控制器2202本身。还参考图63A到65,更详细展示用于将信息(例如软件更新)从***服务器提供到引擎控制器2202的***及方法。图63A到65的***及方法允许保护从服务器传输到控制器2202的文件的完整性及保密性。文件可经由任何类型的连接方法(例如,WiFi、蜂窝、FM带等)传输,其可经调适用于不同连接条件、部分及零散更新及文件中一些或所有块的重新传输。在各种实施例中,引擎控制器2202可直接从***服务器接收文件,或可从经配置以将文件中继到引擎控制器的中间用户装置接收文件。
参考图63A,展示编译文件及将文件从服务器分发到引擎控制器2202的过程2700。在编译框2704处,文件2702被***成多个块。接着,每一块独立地被加密(框2706),且接着被传输到引擎控制器2202(框2708)。通过独立地传输每一块,由于传输失败或中断丢失的任何块可被重新传输。引擎控制器2202解码每一块(框2710)且重新组装文件2702(框2712)。
在图63B中更详细展示编译过程(框2704)。展示文件2702被***成多个块2720。每一块2720包含标头2722及有效负载2724。每一标头2722可包含多项式参数2726、表示其在伪随机序列中的位置的向量2728及其块号2730。多项式参数2726由控制器使用以生成PRNG,如本发明中大体上描述。块号2730识别块2720相对于文件2702中的其它块的位置。有效负载2724可通常包含文件数据,其中第一块的有效负载代替地含有更新文件的元数据,例如文件中的块的数目及每一块的块大小。
在图63C中更详细展示加密过程(框2706)。首先,生成标头表及有效负载表(框2740)。对于每一块(框2742),加密标头(框2744)及使用块表加扰标头及有效负载(框2746)。也参考图63D,更详细展示标头加密框2744。
标头加密2744包含生成随机数(框2750)。在一个实施例中,所述数可在0与232之间(容纳32位随机数)。接着,随机数被用作参数以生成多项式参数(框2752)。生成第二随机数(框2754)且将其用作PRNG的转移向量(框2756),如上文在过程1100中描述。所述数可在例如0与2127-1之间(容纳有效负载的大小)。拷贝PRNG及块号的状态(框2758),且用标头表加密标头(经位加扰)(框2760),从而创建经加密标头以供传输。
参考图63E,展示加扰块的标头及有效负载的步骤。加扰步骤可与上文图63A的框2706对应。PRNG生成伪随机数序列2770,如本发明中大体上描述。序列2770与有效负载2724进行XOR以创建经XOR的有效负载2772。接着,经XOR的有效负载2772用块表经字节加扰以创建待传输到引擎控制器的经编码块2774。
现参考图64,更详细展示服务器(或用户装置2210)与引擎控制器2202之间的传输过程2800。更特定来说,图64的过程2800描述使用本发明中大体上描述的公开及私有密钥加密技术如何供应汽车(即,提供文件更新)。服务器或用户装置2210与引擎控制器2202之间的通信可在通常不是安全的通信环境的指定区域中发生(即,服务器或用户装置2210及引擎控制器2202可仅在区域(例如经销商或制造商)中或在指定的车库区域或类似物处建立连接)。引擎控制器2202可启用安全环境模式,其中通过保护通信链路个别传感器或ECU信息不能由区域中的任何装置读取,如下文描述。过程2800可包含在经销商、制造商或车库处使用经具体配置以在服务器或用户装置2210与引擎控制器2202之间建立安全连接的特殊设备。
过程2800包含车辆建立与服务器(或用户装置2210)的连接及接收509.x证书(框2802)。在一些实施例中,服务器可生成或接收待上传到引擎控制器的更新文件(或另一文件);在其它实施例中,引擎控制器可直接连接到用户装置及从用户装置接收更新文件。过程2800进一步包含验证509.x证书(框2804)。509.x证书是出于证实与服务器的安全通信的目的可由引擎控制器接收到的实例证书。
过程2800进一步包含在509.x证书中使用公开密钥生成秘密及将秘密发送到服务器(框2806)。所述秘密还用于种引擎控制器的PRNG(框2808)。所得PRNG序列用于创建KDT(框2810),且KDT用于编码更新密钥(框2812),所述密钥包含标头表及有效负载表。
在替代实施例中,其它方法可用于建立与服务器的通信及发送更新密钥。举例来说,与服务器的会话可使用Diffie-Hellman、新希望(New-Hope)或弗罗多(Frodo)秘密交换协议建立,并接着其它协议可由引擎控制器使用以识别服务器,例如经由密码、公开-私有密钥或通过用于创建签名的任何其它协议。
现参考图65,展示在引擎控制器处解码及组装更新文件的过程2900。过程2900可在完成从服务器或用户装置接收更新文件(或另一文件)的每一块之后由引擎控制器2202执行。过程2900描述解码由引擎控制器接收到的单个块,及将有效负载从单个块***到更新文件中。更新文件可包含多个块。
过程2900包含接收经编码块(框2902)及字节加扰所述块(框2904)。块的标头用由引擎控制器存储的标头表位加扰(框2906)。从标头拷贝PRNG的状态(框2908),且PRNG用于生成伪随机序列(框2910)。接着,所述序列与有效负载进行XOR(框2912)。来自标头的块号用于计算块中有效负载的偏移(即,从每一块确定每一有效负载相对于其它有效负载的正确位置)及将有效负载拷贝到最终经组装文件(框2914)。
任何过程或方法步骤的次序或顺序可根据替代实施例改变或重新排序。在各种示范性实施例的设计、操作条件及布置中也可进行其它替换、修改、变化及省略而不会背离本发明的范围。
示范性实施例中所展示的元件的构造及布置仅是说明性的。尽管已详细描述本发明的实施例,但检阅本发明的所属领域的技术人员将容易地了解,许多修改是可能的(例如,各种元件的大小、尺寸、结构及比例、参数值、材料使用、定向等中的变化)而实质上不会背离所述标的物的新颖教示及优点。举例来说,展示为一体地形成的元件可由多个部件或元件构造而成。在本发明中已在不同图式中使用相同参考符号描述一些相似组件。此不应解释为暗含这些组件在所有实施例中都相同;可在各种不同实施例中做出各种修改。
Claims (17)
1.一种通信装置,其包括:
通信接口;
处理器;及
非暂时性计算机可读存储器媒体,其可操作地耦合到所述处理器,其中所述存储器媒体经配置以存储经配置以致使所述处理器进行以下操作的指令:
检索种子值;
接收数字位流;
使用所述种子值作为到伪随机数发生器PRNG的种子来生成随机位流,其中所述随机位流含有至少与所述数字位流一样多的位;
置乱所述随机位流的位以创建随机位缓冲器;
通过对所述数字位流及所述随机位缓冲器应用第一异或XOR生成经混淆数字位流,其中所述经混淆数字位流具有与所述数字位流相同数目个位;
将所述经混淆数字位流提供到所述通信接口;
接收第二数字位流;
通过执行与所述第二数字位流及所述随机位缓冲器的第二XOR生成第二经混淆数字位流,其中仅所述随机位缓冲器中未用于所述第一XOR中的位用于所述第二XOR中;及
如果所述第二经混淆数字位流具有与所述第二数字位流相同数目个位,就将所述第二经混淆数字位流提供到所述通信接口。
2.根据权利要求1所述的通信装置,其中所述随机位流包含2的幂次方个字节。
3.根据权利要求1所述的通信装置,其中所述指令进一步经配置以致使所述处理器置乱所述随机位流的所述位使得所述处理器:
初始化所述随机位缓冲器;
遍历所述随机位流中的所述位,且计算经设置的每一位的目的位位置;及
在所述目的位位置处翻转所述随机位缓冲器中的所述位。
4.根据权利要求3所述的通信装置,其中所述指令进一步经配置以致使所述处理器初始化所述随机位缓冲器使得所述处理器将所述随机位缓冲器的全部所述位设置为相同值。
5.根据权利要求3所述的通信装置,其中所述指令进一步经配置以致使所述处理器初始化所述随机位缓冲器使得所述处理器将所述随机位缓冲器的全部所述位设置为0。
6.根据权利要求3所述的通信装置,其中所述指令经配置以致使所述处理器使用表查找计算所述目的位位置。
7.根据权利要求1所述的通信装置,其中所述指令进一步经配置以致使所述处理器:
在所述第二XOR达到所述随机位缓冲器的末尾时生成第二随机位流,但并非所述第二数字位流的所有位都已经进行XOR;
置乱所述第二随机位流的位以重新填充所述随机位缓冲器,及
通过对所述第二数字位流及所述随机位缓冲器应用第三XOR继续生成所述第二经混淆数字位流,其中所述第三XOR的前几个位是所述随机位缓冲器的第一位及所述第二数字位流中用于所述第二XOR中的最后位之后的所述位。
8.根据权利要求7所述的通信装置,其中所述指令进一步经配置以致使所述处理器:
使用查找表识别要交换哪些位来置乱所述随机位流的所述位;
通过基于所述随机位流中的多个位交换所述查找表中的多个值生成经置乱查找表;及
使用所述经置乱查找表识别要交换哪些位置乱所述第二随机位流的所述位。
9.根据权利要求8所述的通信装置,其中所述指令进一步经配置以致使所述处理器通过致使所述处理器交换所述查找表中的素数值生成所述经置乱查找表。
10.一种用于混淆数据的计算机实施的方法,其包括:
检索种子值;
接收数字位流;
使用所述种子值作为到伪随机数发生器PRNG的种子来生成随机位流,其中所述随机位流含有至少与所述数字位流一样多的位;
置乱所述随机位流的位以创建随机位缓冲器;
通过对所述数字位流及所述随机位缓冲器应用第一异或XOR生成经混淆数字位流,其中所述经混淆数字位流具有与所述数字位流相同数目个位;
接收第二数字位流;及
通过执行与所述第二数字位流及所述随机位缓冲器的第二XOR生成第二经混淆数字位流,其中仅所述随机位缓冲器中未用于所述第一XOR中的位用于所述第二XOR中。
11.根据权利要求10所述的计算机实施的方法,其进一步包括:
初始化所述随机位缓冲器;
遍历所述随机位流中的所述位,且计算经设置的每一位的目的位位置;及
在所述目的位位置处翻转所述随机位缓冲器中的所述位。
12.根据权利要求11所述的计算机实施的方法,其中初始化所述随机位缓冲器将所述随机位缓冲器的全部所述位设置为相同值。
13.根据权利要求11所述的计算机实施的方法,其中计算所述目的位包括使用表查找。
14.根据权利要求10所述的计算机实施的方法,其进一步包括:
当所述第二XOR达到所述随机位缓冲器的末尾时从所述PRNG生成第二随机位流,但并非所述第二数字位流的所有位都已经进行XOR;
置乱所述第二随机位流的位以重新填充所述随机位缓冲器;及
通过对所述第二数字位流及所述随机位缓冲器应用第三XOR继续生成所述第二经混淆数字位流,其中所述第三XOR的前几个位是所述随机位缓冲器的第一位及所述第二数字位流中用于所述第二XOR中的最后位之后的所述位。
15.根据权利要求14所述的计算机实施的方法,其进一步包括:
使用查找表识别要交换哪些位置乱所述随机位流的所述位;
通过基于所述随机位流中的多个位交换所述查找表中的多个值生成经置乱查找表;及
使用所述经置乱查找表识别要交换哪些位来置乱所述第二随机位流的所述位。
16.一种非暂时性计算机可读存储器媒体,其经配置以在其上存储指令,当由处理器加载所述指令时致使所述处理器:
检索种子值;
接收数字位流;
使用所述种子值作为到伪随机数发生器PRNG的种子来生成随机位流,其中所述随机位流含有至少与所述数字位流一样多的位;
置乱所述随机位流的位以创建随机位缓冲器;
通过对所述数字位流及所述随机位缓冲器应用第一异或XOR生成经混淆数字位流,其中所述经混淆数字位流具有与所述数字位流相同数目个位;
将所述经混淆数字位流提供到通信接口;
接收第二数字位流;
通过执行与所述第二数字位流及所述随机位缓冲器的第二XOR生成第二经混淆数字位流,其中仅所述随机位缓冲器中未用于所述第一XOR中的位用于所述第二XOR中;
如果所述第二XOR达到所述随机位缓冲器的末尾,就从所述PRNG生成第二随机位流,但并非所述第二数字位流中的所有位都已经进行XOR;
如果生成了所述第二随机位流,就置乱所述第二随机位流的位以重新填充所述随机位缓冲器;
如果已生成了第二随机位流,就通过对所述第二数字位流及所述随机位缓冲器应用第三XOR继续生成所述第二经混淆数字位流,其中所述第三XOR的前几个位是所述随机位缓冲器的第一位及所述第二数字位流中用于所述第二XOR中的最后位之后的所述位;及
如果所述第二经混淆数字位流具有与所述第二数字位流相同数目个位,就将所述第二经混淆数字位流提供到所述通信接口。
17.根据权利要求16所述的非暂时性计算机可读存储器媒体,其中其上存储的所述指令进一步致使所述处理器:
使用查找表识别要交换哪些位来置乱所述随机位流的所述位;
通过基于所述随机位流中的多个位交换所述查找表中的多个值生成经置乱查找表;及
使用所述经置乱查找表识别要交换哪些位来置乱所述第二随机位流的所述位。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662346451P | 2016-06-06 | 2016-06-06 | |
US62/346,451 | 2016-06-06 | ||
US201662354615P | 2016-06-24 | 2016-06-24 | |
US62/354,615 | 2016-06-24 | ||
US201662376876P | 2016-08-18 | 2016-08-18 | |
US62/376,876 | 2016-08-18 | ||
US201662401609P | 2016-09-29 | 2016-09-29 | |
US62/401,609 | 2016-09-29 | ||
US201662438443P | 2016-12-22 | 2016-12-22 | |
US62/438,443 | 2016-12-22 | ||
PCT/US2017/036002 WO2017214060A1 (en) | 2016-06-06 | 2017-06-05 | Data conversion systems and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110073634A CN110073634A (zh) | 2019-07-30 |
CN110073634B true CN110073634B (zh) | 2023-02-17 |
Family
ID=59062112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780046538.8A Expired - Fee Related CN110073634B (zh) | 2016-06-06 | 2017-06-05 | 数据转换***及方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US10587399B2 (zh) |
EP (1) | EP3465974A1 (zh) |
JP (1) | JP2019518397A (zh) |
KR (1) | KR102477070B1 (zh) |
CN (1) | CN110073634B (zh) |
AU (2) | AU2017278253A1 (zh) |
CA (1) | CA3026281A1 (zh) |
IL (1) | IL263420B (zh) |
WO (1) | WO2017214060A1 (zh) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10523490B2 (en) | 2013-08-06 | 2019-12-31 | Agilepq, Inc. | Authentication of a subscribed code table user utilizing optimized code table signaling |
US10056919B2 (en) | 2014-07-02 | 2018-08-21 | Agilepq, Inc. | Data recovery utilizing optimized code table signaling |
US9635011B1 (en) * | 2014-08-27 | 2017-04-25 | Jonetix Corporation | Encryption and decryption techniques using shuffle function |
CA3026281A1 (en) | 2016-06-06 | 2017-12-14 | Agilepq, Inc. | Data conversion systems and methods |
US11398834B2 (en) * | 2016-10-14 | 2022-07-26 | Auro Technologies Nv | Encoder, recording device, decoder, playback device with robust data block header |
AU2016434826A1 (en) * | 2016-12-27 | 2019-08-22 | Helder Silvestre Paiva FIGUEIRA | Equivocation augmentation dynamic secrecy system |
US11334353B2 (en) * | 2017-05-18 | 2022-05-17 | Nec Corporation | Multiparty computation method, apparatus and program |
JP6832794B2 (ja) * | 2017-06-05 | 2021-02-24 | ルネサスエレクトロニクス株式会社 | 無線通信システム |
JP7083694B2 (ja) * | 2017-07-27 | 2022-06-13 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 送信装置及び送信方法 |
US10805276B2 (en) * | 2017-09-05 | 2020-10-13 | Comodo Security Solutions, Inc. | Device and methods for safe control of vehicle equipment secured by encrypted channel |
WO2019074816A1 (en) * | 2017-10-09 | 2019-04-18 | Mcnutt Jason | METHODS AND SYSTEMS FOR ENCRYPTING DATA USING OBJECT SCREENS |
US10476664B2 (en) | 2017-10-27 | 2019-11-12 | Quantropi Inc. | Methods and systems for data protection |
US11323247B2 (en) | 2017-10-27 | 2022-05-03 | Quantropi Inc. | Methods and systems for secure data communication |
CN108055657A (zh) * | 2017-12-14 | 2018-05-18 | 深圳Tcl数字技术有限公司 | 节点信息转发方法、网络设备及计算机可读存储介质 |
US10762294B2 (en) * | 2017-12-29 | 2020-09-01 | Dassault Systèmes Americas Corp. | Universally unique resources with no dictionary management |
US10979221B2 (en) * | 2018-01-03 | 2021-04-13 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Generation of keys of variable length from cryptographic tables |
US11159538B2 (en) | 2018-01-31 | 2021-10-26 | Palo Alto Networks, Inc. | Context for malware forensics and detection |
US10764309B2 (en) | 2018-01-31 | 2020-09-01 | Palo Alto Networks, Inc. | Context profiling for malware detection |
CN113395154B (zh) * | 2018-04-04 | 2022-11-18 | 中兴通讯股份有限公司 | 发现参考信号的发送和接收方法、基站和终端 |
WO2019196721A1 (en) * | 2018-04-11 | 2019-10-17 | Beijing Didi Infinity Technology And Development Co., Ltd. | Methods and apparatuses for processing data requests and data protection |
US10943416B2 (en) * | 2018-05-09 | 2021-03-09 | Strattec Security Corporation | Secured communication in passive entry passive start (PEPS) systems |
CN108650076A (zh) * | 2018-05-16 | 2018-10-12 | 南通大学 | 基于量子可逆逻辑的aes加密***硬件模块的实现方法 |
US10942909B2 (en) * | 2018-09-25 | 2021-03-09 | Salesforce.Com, Inc. | Efficient production and consumption for data changes in a database under high concurrency |
WO2020142186A1 (en) * | 2019-01-04 | 2020-07-09 | Interdigital Vc Holdings, Inc. | Inverse mapping simplification |
US11271724B2 (en) * | 2019-02-21 | 2022-03-08 | Quantum Lock, Inc. | One-time-pad encryption system and methods |
CN110049035B (zh) * | 2019-04-10 | 2022-11-08 | 深圳市腾讯信息技术有限公司 | 一种网络攻击防护方法、装置、电子设备及介质 |
WO2020215146A1 (en) * | 2019-04-23 | 2020-10-29 | Quantropi Inc. | Enhanced randomness for digital systems |
US11206667B2 (en) * | 2019-06-07 | 2021-12-21 | Intel Corporation | Data scrambler in extreme high throughput |
US11646804B2 (en) * | 2019-08-06 | 2023-05-09 | John C. S. Koo | Light-based data encoding and/or decoding device |
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 |
US11626983B1 (en) | 2019-09-10 | 2023-04-11 | 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 |
CN114731270A (zh) * | 2019-11-21 | 2022-07-08 | 株式会社村田制作所 | 通信数据文混淆加密方法 |
AU2020392047A1 (en) * | 2019-11-25 | 2022-04-07 | Zebware Ab | Method and devices for creating redundancy and encryption using Mojette Transform |
CN110913009B (zh) * | 2019-12-03 | 2020-11-10 | 浙江大学 | 一种udp网络协议实现浏览器显示心电图的装置和方法 |
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 |
US11838410B1 (en) | 2020-01-30 | 2023-12-05 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
US11449799B1 (en) | 2020-01-30 | 2022-09-20 | Wells Fargo Bank, N.A. | Systems and methods for post-quantum cryptography optimization |
BR112022016601A2 (pt) * | 2020-02-20 | 2022-11-08 | A Day Early Inc | Sistemas e métodos para anonimizar dados sensíveis e simular parâmetros de cronograma acelerado usando os dados anonimizados |
KR102222080B1 (ko) * | 2020-02-24 | 2021-03-04 | 한국전자통신연구원 | 양자 개체 인증 장치 및 방법 |
US11329797B2 (en) | 2020-02-25 | 2022-05-10 | Quantropi Inc. | Method and system for secure phase-encoded digital communication over optical channels |
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
CN111737661A (zh) | 2020-05-22 | 2020-10-02 | 北京百度网讯科技有限公司 | 异常堆栈处理方法、***、电子设备及存储介质 |
KR102403462B1 (ko) * | 2020-07-22 | 2022-05-27 | 경북대학교 산학협력단 | 랜덤 비트 변환 송신기, 수신기, 제어장치 및 제어방법 |
US20220198045A1 (en) * | 2020-12-21 | 2022-06-23 | Cryptography Research, Inc. | Protection of neural networks by obfuscation of activation functions |
US11956212B2 (en) * | 2021-03-31 | 2024-04-09 | Palo Alto Networks, Inc. | IoT device application workload capture |
CN113630442B (zh) * | 2021-07-14 | 2023-09-12 | 远景智能国际私人投资有限公司 | 数据传输方法、装置及*** |
US11997691B2 (en) * | 2021-07-15 | 2024-05-28 | Qualcomm Incorporated | Full-duplex communications and physical layer security |
CN113965316A (zh) * | 2021-10-25 | 2022-01-21 | 上海航天测控通信研究所 | 网络数据交互方法 |
US11860868B2 (en) * | 2021-12-14 | 2024-01-02 | International Business Machines Corporation | Secure database-as-a-service system |
US20240202865A1 (en) * | 2022-12-19 | 2024-06-20 | Palantir Technologies Inc. | Image obfuscation |
US12015422B1 (en) * | 2023-02-24 | 2024-06-18 | GM Global Technology Operations LLC | Data integrity checking between circuits |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799088A (en) * | 1993-12-01 | 1998-08-25 | Raike; William Michael | Non-deterministic public key encrypton system |
US6084969A (en) * | 1997-12-31 | 2000-07-04 | V-One Corporation | Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network |
US7492807B1 (en) * | 2008-04-07 | 2009-02-17 | International Business Machines Corporation | Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods |
Family Cites Families (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US725605A (en) | 1900-07-16 | 1903-04-14 | Nikola Tesla | System of signaling. |
US3305781A (en) | 1963-04-02 | 1967-02-21 | Raytheon Co | Diversity combiners |
US3296532A (en) | 1963-04-02 | 1967-01-03 | Raytheon Co | Diversity combiners |
US3350646A (en) | 1964-03-24 | 1967-10-31 | Motorola Inc | Closed loop ratio squared diversity combiner |
US3699450A (en) | 1970-08-26 | 1972-10-17 | Bell Telephone Labor Inc | Apparatus for measuring low level power |
US3917935A (en) | 1974-12-23 | 1975-11-04 | United Technologies Corp | Reduction of look-up table capacity |
US4030067A (en) | 1975-12-29 | 1977-06-14 | Honeywell Information Systems, Inc. | Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes |
DE3121146A1 (de) | 1981-05-27 | 1983-01-05 | Siemens AG, 1000 Berlin und 8000 München | Digitales funksystem |
US4528650A (en) | 1982-06-07 | 1985-07-09 | Texaco Inc. | Streamer cable multiplexing apparatus |
US4494238A (en) | 1982-06-30 | 1985-01-15 | Motorola, Inc. | Multiple channel data link system |
US4933956A (en) | 1983-04-14 | 1990-06-12 | Codex Corporation | Simplified decoding of lattices and codes |
US4528550A (en) | 1983-10-31 | 1985-07-09 | Northern Telecom Limited | Method and apparatus for code conversion of binary of multilevel signals |
US4630288A (en) | 1983-12-21 | 1986-12-16 | Motorola Canada Limited | Data transmission with block coding |
US4623999A (en) | 1984-06-04 | 1986-11-18 | E-Systems, Inc. | Look-up table encoder for linear block codes |
US4731799A (en) | 1984-07-09 | 1988-03-15 | Motorola Canada Limited | Means and method for block encoding detection and decoding |
JPS6162234A (ja) | 1984-09-04 | 1986-03-31 | Kokusai Denshin Denwa Co Ltd <Kdd> | 誤り訂正符号復号方式 |
US4649541A (en) | 1984-11-21 | 1987-03-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Reed-Solomon decoder |
US4747103A (en) | 1985-03-21 | 1988-05-24 | Canon Kabushiki Kaisha | Signal processing apparatus for correcting decoding errors |
US4733401A (en) | 1986-06-10 | 1988-03-22 | Motorola Canada Limited | Block coding into 24 coordinates and detection of transmitted signals |
US4849975A (en) | 1987-11-10 | 1989-07-18 | International Business Machines Corporation | Error correction method and apparatus |
US4958349A (en) | 1988-11-01 | 1990-09-18 | Ford Aerospace Corporation | High data rate BCH decoder |
US5150381A (en) | 1989-02-16 | 1992-09-22 | Codex Corporation | Trellis shaping for modulation systems |
JP2776094B2 (ja) | 1991-10-31 | 1998-07-16 | 日本電気株式会社 | 可変変調通信方法 |
EP0543070A1 (en) | 1991-11-21 | 1993-05-26 | International Business Machines Corporation | Coding system and method using quaternary codes |
US5548819A (en) | 1991-12-02 | 1996-08-20 | Spectraplex, Inc. | Method and apparatus for communication of information |
KR0139162B1 (ko) | 1994-11-30 | 1998-05-15 | 김광호 | 부호어재배정을 이용한 가변장부호화장치 및 복호화장치 |
US6307868B1 (en) | 1995-08-25 | 2001-10-23 | Terayon Communication Systems, Inc. | Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops |
US5612651A (en) | 1996-01-02 | 1997-03-18 | Loral Aerospace Corp. | Modulating array QAM transmitter |
DE69719141T2 (de) | 1996-10-15 | 2003-07-24 | Matsushita Electric Ind Co Ltd | Vorrichtung zur Zurückverfolgung des Pfades in einem Viterbi Dekodierer |
JPH10197610A (ja) * | 1996-12-31 | 1998-07-31 | Sony Corp | ノイズ発生装置およびそれを用いた波形生成装置 |
US5931966A (en) | 1997-05-19 | 1999-08-03 | Carnegie Mellon University | Viterbi detector with a pipelined look-up table of squared errors |
US5931956A (en) | 1997-06-10 | 1999-08-03 | Atmel Corporation | Digital circuit using memory for monitoring signals for occurrences of predefined breakpoint conditions |
US6035435A (en) | 1997-09-30 | 2000-03-07 | Datapath Systems, Inc. | Method and apparatus for encoding a binary signal |
US7301983B1 (en) | 1998-01-05 | 2007-11-27 | Intel Corporation | Method for using codebook indexing to achieve high bit densities in a direct-sequence CDMA spread spectrum communication system |
DE69930101T2 (de) * | 1998-01-09 | 2006-09-14 | Koninklijke Philips Electronics N.V. | Vorrichtung zum kodieren/dekodieren von n-bit-quellwörtern in korrespondierenden m-bit-kanalwörtern und umgekehrt |
US6223320B1 (en) | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US7809138B2 (en) | 1999-03-16 | 2010-10-05 | Intertrust Technologies Corporation | Methods and apparatus for persistent control and protection of content |
US6085340A (en) | 1998-06-12 | 2000-07-04 | The United States Of America As Represented By The National Security Agency | Method of lattice quantization that minimizes storage requirements and computational complexity |
EP0969656B1 (en) | 1998-06-29 | 2007-01-24 | Xerox Corporation | Compression for image boundaries |
US7376105B2 (en) | 1998-08-21 | 2008-05-20 | Massachusetts Institute Of Technology | Source coding for interference reduction |
WO2000011845A1 (en) | 1998-08-21 | 2000-03-02 | Massachusetts Institute Of Technology | Power-efficient communication protocol |
US7000106B2 (en) | 1999-03-26 | 2006-02-14 | Siemens Communications, Inc. | Methods and apparatus for kernel mode encryption of computer telephony |
US6715076B1 (en) | 1999-10-21 | 2004-03-30 | Koninklijke Philips Electronics N.V. | Video signal authentication system |
US6771824B1 (en) | 1999-12-28 | 2004-08-03 | Lucent Technologies Inc. | Adaptive variable length decoding method |
US6571368B1 (en) | 2000-02-02 | 2003-05-27 | Macronix International Co., Ltd. | Systolic Reed-Solomon decoder |
US6788696B2 (en) | 2000-03-10 | 2004-09-07 | Nortel Networks Limited | Transparent QoS using VC-merge capable access modules |
US6731692B1 (en) | 2000-03-23 | 2004-05-04 | Agere Systems Inc. | Symbol encoding and decoding architecture for trellis-coded modulation in gigabit ethernet |
US6792438B1 (en) * | 2000-03-31 | 2004-09-14 | Intel Corporation | Secure hardware random number generator |
WO2001080525A1 (en) | 2000-04-14 | 2001-10-25 | Sun Microsystems, Inc. | Network access security |
US7039392B2 (en) | 2000-10-10 | 2006-05-02 | Freescale Semiconductor | System and method for providing device authentication in a wireless network |
US6937646B1 (en) | 2000-10-10 | 2005-08-30 | Freescale Semiconductor, Inc. | Leakage nulling receiver correlator structure and method for ultra wide bandwidth communication system |
AUPR129300A0 (en) | 2000-11-07 | 2000-11-30 | Devsecure Pty Ltd | Encoding of universal resource locators in a security gateway to enable manipulation by active content |
JP3506330B2 (ja) | 2000-12-27 | 2004-03-15 | 松下電器産業株式会社 | データ送信装置 |
US7675994B2 (en) | 2001-04-02 | 2010-03-09 | Koninklijke Philips Electronics N.V. | Packet identification mechanism at the transmitter and receiver for an enhanced ATSC 8-VSB system |
US6925126B2 (en) | 2001-04-18 | 2005-08-02 | Koninklijke Philips Electronics N.V. | Dynamic complexity prediction and regulation of MPEG2 decoding in a media processor |
US7197142B2 (en) * | 2001-08-24 | 2007-03-27 | Alten Alexander I | System and methods for a vernam stream cipher |
SE521600C2 (sv) | 2001-12-04 | 2003-11-18 | Global Ip Sound Ab | Lågbittaktskodek |
JP3778087B2 (ja) | 2002-01-18 | 2006-05-24 | 富士ゼロックス株式会社 | データ符号化装置及びデータ復号装置 |
US6980133B2 (en) | 2002-01-24 | 2005-12-27 | Intel Corporation | Use of two independent pedals for a foot-operated mouse |
US7295624B2 (en) | 2002-03-06 | 2007-11-13 | Texas Instruments Incorporated | Wireless system with hybrid automatic retransmission request in interference-limited communications |
BR0308409A (pt) | 2002-03-14 | 2005-02-09 | Contentguard Holdings Inc | Método e aparelho para o processamento de uso de expressões de direitos de uso |
TWI227869B (en) | 2002-11-04 | 2005-02-11 | Mediatek Inc | Data coding method and system |
CA2388358A1 (en) | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for multi-rate lattice vector quantization |
US7197094B2 (en) | 2002-06-18 | 2007-03-27 | Ralink Technology, Inc. | Symbol-based decision feedback equalizer (DFE) with maximum likelihood sequence estimation for wireless receivers under multipath channels |
FR2842691B1 (fr) | 2002-07-18 | 2005-01-14 | Canon Kk | Procede et dispositif de transformation d'un signal numerique |
US20040019564A1 (en) | 2002-07-26 | 2004-01-29 | Scott Goldthwaite | System and method for payment transaction authentication |
CN1714377A (zh) * | 2002-10-07 | 2005-12-28 | 小林朗 | 用于生成伪随机数的方法及伪随机数生成器 |
CN100557982C (zh) | 2002-10-30 | 2009-11-04 | Nxp股份有限公司 | 用于接收编码块信号的接收器及其方法和处理器*** |
EP1420542A1 (en) * | 2002-11-12 | 2004-05-19 | STMicroelectronics S.r.l. | Method and apparatus of generating a chaos-based pseudo-random sequence |
US8149810B1 (en) | 2003-02-14 | 2012-04-03 | Marvell International Ltd. | Data rate adaptation in multiple-in-multiple-out systems |
US7376232B2 (en) * | 2003-03-13 | 2008-05-20 | New Mexico Technical Research Foundation | Computer system security via dynamic encryption |
US7369658B2 (en) | 2003-04-07 | 2008-05-06 | Optichron, Inc. | Secure modulation and demodulation |
US7484165B2 (en) | 2003-04-30 | 2009-01-27 | Ericsson Ab | Forward error correction coding |
JP2005045727A (ja) | 2003-07-25 | 2005-02-17 | Matsushita Electric Ind Co Ltd | ビタビ復号器 |
EP1521414B1 (en) | 2003-10-03 | 2008-10-29 | Kabushiki Kaisha Toshiba | Method and apparatus for sphere decoding |
JP4579930B2 (ja) | 2004-01-30 | 2010-11-10 | フランス・テレコム | 次元ベクトルおよび可変解像度量子化 |
US20050204038A1 (en) | 2004-03-11 | 2005-09-15 | Alexander Medvinsky | Method and system for distributing data within a network |
KR101151130B1 (ko) | 2004-08-17 | 2012-06-04 | 삼성전자주식회사 | 완전 다이버시티 완전 데이터 레이트 시공간 블록 부호를 이용한 데이터 송수신 방법 및 장치 |
KR100598075B1 (ko) | 2004-11-03 | 2006-07-10 | 한국전자통신연구원 | Ifft/fft 프로세서에 있어서 룩업테이블을 이용한데이터변환 방법 |
US7327287B2 (en) | 2004-12-09 | 2008-02-05 | Massachusetts Institute Of Technology | Lossy data compression exploiting distortion side information |
US8280046B2 (en) | 2005-09-12 | 2012-10-02 | Interdigital Technology Corporation | Method and system for deriving an encryption key using joint randomness not shared by others |
US20070198837A1 (en) | 2005-04-29 | 2007-08-23 | Nokia Corporation | Establishment of a secure communication |
US20060248337A1 (en) | 2005-04-29 | 2006-11-02 | Nokia Corporation | Establishment of a secure communication |
US8132006B2 (en) | 2005-05-03 | 2012-03-06 | Ntt Docomo, Inc. | Cryptographic authentication and/or establishment of shared cryptographic keys, including, but not limited to, password authenticated key exchange (PAKE) |
US8340450B2 (en) | 2005-09-23 | 2012-12-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Successively refinable lattice vector quantization |
US7844879B2 (en) | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
JP2009527174A (ja) | 2006-02-17 | 2009-07-23 | ノキア コーポレイション | Mimo受信機を提供する装置、方法およびコンピュータ・プログラム |
WO2007113442A1 (fr) | 2006-03-31 | 2007-10-11 | France Telecom | Procede pour organiser un reseau d'objets communicants et objet communicant pour la mise en oeuvre du procede |
AU2007282272B2 (en) | 2006-08-09 | 2010-09-23 | Lg Electronics Inc. | Method of estimating signal-to-noise ratio, method of adjusting feedback information transmission, adaptive modulation and coding method using the same, and transceiver thereof |
JP2008165008A (ja) * | 2006-12-28 | 2008-07-17 | Megachips Lsi Solutions Inc | データ処理装置及びデータ処理方法 |
US7970215B2 (en) | 2007-03-30 | 2011-06-28 | Intel Corporation | Automatic generation of compact code tables |
BRPI0811117A2 (pt) | 2007-05-16 | 2014-12-23 | Thomson Licensing | Aparelho e método para codificar e decodificar sinais |
US7908420B2 (en) | 2007-07-31 | 2011-03-15 | Broadcom Corporation | Processing system with millimeter wave host interface and method for use therewith |
TWI378702B (en) | 2007-08-24 | 2012-12-01 | Ind Tech Res Inst | Group authentication method |
US8542727B2 (en) | 2007-12-31 | 2013-09-24 | Intel Corporation | Systems and apparatuses for performing CABAC parallel encoding and decoding |
US20090221252A1 (en) | 2008-02-29 | 2009-09-03 | The Hong Kong University Of Science And Technology | Low complexity agc for mb-ofdm |
US8306146B2 (en) | 2008-05-01 | 2012-11-06 | Futurewei Technologies, Inc. | Progressive feedback for high resolution limited feedback wireless communication |
US8077534B2 (en) | 2008-07-31 | 2011-12-13 | International Business Machines Corporation | Adaptive noise suppression using a noise look-up table |
US8670560B2 (en) * | 2008-10-23 | 2014-03-11 | University Of Ulster | Encryption method |
WO2010082764A2 (en) | 2009-01-13 | 2010-07-22 | Samsung Electronics Co., Ltd. | Method of dirty paper coding using nested lattice codes |
US8307184B1 (en) | 2009-06-01 | 2012-11-06 | Nissani Nissensohn Daniel Nathan | Communication and memory capacity enhancement method and apparatus |
CN101610452B (zh) | 2009-07-15 | 2011-06-01 | 西安西电捷通无线网络通信股份有限公司 | 一种传感器网络鉴别与密钥管理机制的融合方法 |
JP2011086103A (ja) * | 2009-10-15 | 2011-04-28 | Adc Technology Inc | Rfidシステム、及びマイクロコンピュータ |
US8799668B2 (en) | 2009-11-23 | 2014-08-05 | Fred Cheng | Rubbing encryption algorithm and security attack safe OTP token |
US8295379B2 (en) | 2009-12-08 | 2012-10-23 | Futurewei Technologies, Inc. | System and method for non-uniform bit allocation in the quantization of channel state vectors |
US8320473B1 (en) | 2010-01-20 | 2012-11-27 | Prairie Blue, LLC | Data communication system utilizing optimized code table signaling |
US8539318B2 (en) | 2010-06-04 | 2013-09-17 | École Polytechnique Fédérale De Lausanne (Epfl) | Power and pin efficient chip-to-chip communications with common-mode rejection and SSO resilience |
DE102010050719B4 (de) | 2010-11-08 | 2013-08-22 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum Anpassen der Signalübertragung zwischen zwei elektronischen Geräten sowie Anordnung mit einem Computersystem und einem Peripheriegerät |
US8831159B2 (en) | 2011-02-09 | 2014-09-09 | Intel Mobile Communications GmbH | AM-PM synchronization unit |
KR101753618B1 (ko) | 2011-02-11 | 2017-07-04 | 삼성전자주식회사 | 릴레이 노드를 이용한 멀티 노드 간 양방향 통신 방법 및 장치 |
EP2498432B1 (en) | 2011-03-11 | 2014-06-04 | Knowledge Development for POF, S.L. | Adaptative error correcting code for data communications over a plastic optical fibre |
JP5207153B2 (ja) * | 2011-03-19 | 2013-06-12 | 国立大学法人お茶の水女子大学 | 擬似乱数発生システム |
KR101233254B1 (ko) | 2011-04-26 | 2013-02-14 | 숭실대학교산학협력단 | 가변길이 인증코드를 사용하는 무선 통신 단말간 세션키 공유 방법 |
US8718170B2 (en) | 2011-09-12 | 2014-05-06 | Daniel Nathan Nissani (Nissensohn) | Lattice coded mimo transmission method and apparatus |
US9270655B1 (en) | 2011-09-30 | 2016-02-23 | Emc Corporation | Configurable one-time authentication tokens with improved resilience to attacks |
US8984609B1 (en) | 2012-02-24 | 2015-03-17 | Emc Corporation | Methods and apparatus for embedding auxiliary information in one-time passcodes |
US9225717B1 (en) | 2013-03-14 | 2015-12-29 | Emc Corporation | Event-based data signing via time-based one-time authentication passcodes |
US9118661B1 (en) | 2012-02-24 | 2015-08-25 | Emc Corporation | Methods and apparatus for authenticating a user using multi-server one-time passcode verification |
US9515989B1 (en) | 2012-02-24 | 2016-12-06 | EMC IP Holding Company LLC | Methods and apparatus for silent alarm channels using one-time passcode authentication tokens |
US9832649B1 (en) | 2011-10-12 | 2017-11-28 | Technology Business Management, Limted | Secure ID authentication |
US8752145B1 (en) | 2011-12-30 | 2014-06-10 | Emc Corporation | Biometric authentication with smart mobile device |
US9225171B2 (en) | 2012-03-30 | 2015-12-29 | Fujitsu Limited | Intelligent electric vehicle recharging |
NZ714230A (en) * | 2013-04-18 | 2016-06-24 | Risoftdev Inc | System and methods for encrypting data |
US10523490B2 (en) | 2013-08-06 | 2019-12-31 | Agilepq, Inc. | Authentication of a subscribed code table user utilizing optimized code table signaling |
US9455799B2 (en) | 2013-08-06 | 2016-09-27 | OptCTS, Inc. | Dynamic control of quality of service (QOS) using derived QOS measures |
US9444580B2 (en) | 2013-08-06 | 2016-09-13 | OptCTS, Inc. | Optimized data transfer utilizing optimized code table signaling |
US9432360B1 (en) | 2013-12-31 | 2016-08-30 | Emc Corporation | Security-aware split-server passcode verification for one-time authentication tokens |
US9454654B1 (en) | 2013-12-31 | 2016-09-27 | Emc Corporation | Multi-server one-time passcode verification on respective high order and low order passcode portions |
US9407631B1 (en) | 2013-12-31 | 2016-08-02 | Emc Corporation | Multi-server passcode verification for one-time authentication tokens with auxiliary channel compatibility |
US9350545B1 (en) | 2014-06-30 | 2016-05-24 | Emc Corporation | Recovery mechanism for fault-tolerant split-server passcode verification of one-time authentication tokens |
US10056919B2 (en) | 2014-07-02 | 2018-08-21 | Agilepq, Inc. | Data recovery utilizing optimized code table signaling |
CA3026281A1 (en) | 2016-06-06 | 2017-12-14 | Agilepq, Inc. | Data conversion systems and methods |
-
2017
- 2017-06-05 CA CA3026281A patent/CA3026281A1/en not_active Abandoned
- 2017-06-05 CN CN201780046538.8A patent/CN110073634B/zh not_active Expired - Fee Related
- 2017-06-05 JP JP2019516093A patent/JP2019518397A/ja active Pending
- 2017-06-05 EP EP17730331.0A patent/EP3465974A1/en not_active Withdrawn
- 2017-06-05 KR KR1020187038122A patent/KR102477070B1/ko active IP Right Grant
- 2017-06-05 AU AU2017278253A patent/AU2017278253A1/en not_active Abandoned
- 2017-06-05 US US15/614,328 patent/US10587399B2/en not_active Expired - Fee Related
- 2017-06-05 WO PCT/US2017/036002 patent/WO2017214060A1/en unknown
-
2018
- 2018-12-02 IL IL263420A patent/IL263420B/en unknown
-
2020
- 2020-03-09 US US16/813,678 patent/US11018854B2/en active Active
-
2022
- 2022-08-12 AU AU2022215311A patent/AU2022215311A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799088A (en) * | 1993-12-01 | 1998-08-25 | Raike; William Michael | Non-deterministic public key encrypton system |
US6084969A (en) * | 1997-12-31 | 2000-07-04 | V-One Corporation | Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network |
US7492807B1 (en) * | 2008-04-07 | 2009-02-17 | International Business Machines Corporation | Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods |
Also Published As
Publication number | Publication date |
---|---|
KR20190034505A (ko) | 2019-04-02 |
EP3465974A1 (en) | 2019-04-10 |
IL263420B (en) | 2022-05-01 |
CA3026281A1 (en) | 2017-12-14 |
US10587399B2 (en) | 2020-03-10 |
KR102477070B1 (ko) | 2022-12-12 |
IL263420A (en) | 2018-12-31 |
AU2017278253A1 (en) | 2019-01-24 |
US20170353302A1 (en) | 2017-12-07 |
US20200213096A1 (en) | 2020-07-02 |
WO2017214060A1 (en) | 2017-12-14 |
AU2022215311A1 (en) | 2022-09-08 |
JP2019518397A (ja) | 2019-06-27 |
CN110073634A (zh) | 2019-07-30 |
US11018854B2 (en) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110073634B (zh) | 数据转换***及方法 | |
CN111740828B (zh) | 一种密钥生成方法以及装置、设备、加解密方法 | |
CN108599925B (zh) | 一种基于量子通信网络的改进型aka身份认证***和方法 | |
Johnston et al. | Overview of IEEE 802.16 security | |
US7171552B1 (en) | Encrypting information in a communications network | |
JP5307191B2 (ja) | 無線通信機器とサーバとの間でのデータの安全なトランザクションのためのシステムおよび方法 | |
JP6397987B2 (ja) | 暗号学的チェックサムの生成 | |
CN108965218A (zh) | 一种控制器区域网总线安全通信方法、装置及*** | |
US20120063597A1 (en) | Apparatus and associated methodology for managing content control keys | |
US5345507A (en) | Secure message authentication for binary additive stream cipher systems | |
EP1748615A1 (en) | Method and system for providing public key encryption security in insecure networks | |
KR101549034B1 (ko) | Can에서 데이터의 기밀성과 무결성을 보장하는 방법 | |
US10623187B2 (en) | Generating cryptographic checksums | |
JP2012527190A (ja) | 対称暗号化システムにおいてデバイスを安全に識別し認証するためのシステムおよび方法 | |
WO2007059558A1 (en) | Wireless protocol for privacy and authentication | |
JP2022537733A (ja) | 認証付き鍵共有 | |
CN114364062B (zh) | 一种车联网安全接入网关的方法 | |
KR101596753B1 (ko) | 메시지 인증 코드 분할을 통한 순차적 can 패킷 인증 방법 및 그 장치 | |
KR20200067265A (ko) | 실시간 데이터 전송을 위한 블록 암호 장치 및 방법 | |
Xiao et al. | Session key distribution made practical for CAN and CAN-FD message authentication | |
Fazzat et al. | A comparative performance study of cryptographic algorithms for connected vehicles | |
US10608822B2 (en) | Efficient calculation of message authentication codes for related data | |
KR102144179B1 (ko) | 차량 내부에서의 통신 방법 | |
CN111093193A (zh) | 一种适用于Lora网络的MAC层通信安全机制 | |
CN113923029B (zh) | 基于ecc混合算法的物联网信息加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20230217 |