CN104509027B - 使用同态签名|在广播和多播网络中进行消息验证的系统和方法 - Google Patents
使用同态签名|在广播和多播网络中进行消息验证的系统和方法 Download PDFInfo
- Publication number
- CN104509027B CN104509027B CN201380040122.7A CN201380040122A CN104509027B CN 104509027 B CN104509027 B CN 104509027B CN 201380040122 A CN201380040122 A CN 201380040122A CN 104509027 B CN104509027 B CN 104509027B
- Authority
- CN
- China
- Prior art keywords
- message
- network equipment
- network
- signature
- homomorphism
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000006854 communication Effects 0.000 claims abstract description 191
- 238000004891 communication Methods 0.000 claims abstract description 190
- 238000012795 verification Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 34
- 230000006870 function Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000032696 parturition Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
在网络设备中,一种用于经验证的通信的方法包括使用预先确定的消息元素的选集而生成网络通信消息,该预先确定的消息元素具有使用私钥而生成的数字签名。通过将同态运算应用到所选择的预先确定的消息元素的数据签名以及应用到与随机数对应的一次性签名,网络设备生成针对消息的签名。网络设备将消息与针对消息的签名相关联地发送到至少一个其它网络设备并且将随机数发送到至少一个其它网络设备。
Description
技术领域
本公开总体上涉及网络通信,并且更具体地,涉及用于对通过数据网络传输的消息进行高效验证的方法和系统。
背景技术
在现代通信网络中,大量的网络设备发送和接收网络通信消息以用于广泛的用途。在许多应用中,网络通信消息的接收者需要能够验证通信消息的真实性。如在本文中所使用的,术语“验证”是指用于确定消息是否真实并且确定该消息的完整性是否受到了损害的过程。真实的消息意味着声称作为消息的发送者的一方事实上是发送了该消息的一方。消息完整性是指确定由接收者接收到的消息的内容在从所声称的发送者发送出来之后,还没有被改变。攻击者试图伪造看起来像是来自可信发送者(但实际上并不是来自该发送者)的通信消息,或者攻击者从发送者处窃听合法消息并且试图用这些合法消息的副本来欺骗接收者。消息验证过程防止攻击者使接收者相信消息来自可信方或者相信所复制的内容可以是可信的。
存在使得消息接收者能够验证网络通信消息的若干现有技术。然而,大多数现有技术指向单播或一对一通信,其中单个发送者与单个接收者进行通信。在一些网络配置中,网络设备向多个接收者网络设备发送多播或广播消息。术语“广播”是指向作为单个组中的成员而相关联的多个其它网络设备中的每个发送消息,并且术语“多播”是指向相关联的网络设备中的多于一个(但少于全部)的设备发送消息。网络设备的相关联的组的一个示例为包括互相通信的多个联网的传感器设备的传感器网络。其它示例包括监测控制和数据采集(SCADA)系统并且更广泛地包括与作为嵌入式计算机网络的一部分的网络设备相互发送和接收网络消息的网络设备的组。
虽然现有消息验证技术可以应用于多播和广播网络设备,但是现有技术在广播和多播网络中有局限。许多传感器网络中的网络设备具有有限的计算能力和有限的数据存储空间,这使得许多传统的消息验证技术从计算的角度来说非常昂贵。例如,对于这样的设备,公钥密码学中传统的签名和认证过程可能在计算上是昂贵的,特别是当该设备必须发送时间要求严格的消息时。用于提高公钥密码学的效率的现有技术(例如,签名摊销(signature amortization))要求将验证过程分散在多个通信消息上。该要求可能延迟对通信消息的验证,并且如果一个或多个通信消息丢失或损坏,则可以呈现出困难。另一公钥-私钥技术使用一次性公开/私有签名(OTS)来对消息进行签名和验证。相比于使用传统的公钥和私钥技术,虽然OTS技术在计算上更加高效,但是OTS系统必须向消息接收者分发大量的仅使用一次的公钥。在广播和多播网络中,向所有接收者分发公钥所需要的数据量可能超过网络通信设备的承受能力。还有其它验证技术使用在线/离线签名生成,其中可以在对消息进行签名和发送消息之前预先计算签名的一部分。然而,在线/离线签名系统在消息认证期间要求大量的存储空间以保持预先计算的数据、或者要求在计算上昂贵的运算。其它形式的消息认证包括对称密钥系统,对称密钥系统更不安全(由于所有设备共享单个密钥)或者当每对设备需要管理单独的一组密钥时不能缩放。
如上文所述,用于消息验证的现有技术具有各种缺陷,特别是在具有有限的计算能力和数据存储空间的广播和多播系统中。考虑到现有消息验证技术的上述缺点,对数据网络中的消息验证的改进会是有益的。
发明内容
在一个实施例中,开发了一种用于与网络设备进行经验证的通信的方法。该方法包括使用第一网络设备中的私钥生成针对多个预先确定的消息元素中的每一个的哈希的数字签名,在所述第一网络设备中生成随机数,使用所述第一网络设备中的所述私钥而生成针对所述随机数的一次性数字签名。在所述第一网络设备中生成网络通信消息,所述网络通信消息包括所述多个预先确定的消息元素的子集,将第一同态运算应用到所述一次性数字签名以及应用到与被包括在所述网络通信消息中的预先确定的消息元素的每个子集对应的所述数字签名,以生成针对所述网络通信消息的签名,并且将所述网络通信消息与所述针对所述网络通信消息的签名相关联地传输到至少一个其它网络设备并且将所述随机数传输到至少一个其它网络设备。
在另一示例中,网络通信设备被配置为执行已开发的经验证的通信。所述系统包括多个网络设备,每个网络设备包括网络接口设备、存储器、以及被可操作地连接到所述网络接口设备和所述存储器的处理器。所述存储器被配置为多个预先确定的消息元素、与所述网络设备对应的私钥、与所述网络设备对应的随机设备标识符、以及随机设备标识符和与所述多个网络设备中的其它网络设备中的每个对应的相关联的公钥。在所述多个网络设备中的第一网络设备中的所述处理器被配置为执行存储在存储器中的编程的指令以:使用存储在所述第一网络设备的所述存储器中的所述私钥而生成针对所述多个预先确定的消息元素中的每一个的哈希的数字签名,生成随机数,使用所述私钥而生成针对所述随机数的一次性数字签名,生成网络通信消息,所述网络通信消息包括所述多个预先确定的消息元素的子集,将第一同态运算应用到所述一次性数字签名以及应用到针对与被包括在所生成的网络通信消息中的预先确定的消息元素的子集中的每个与预先确定的消息元素对应的预先确定的消息元素的每个哈希的所述数字签名,以生成针对所述网络通信消息的签名,并且使用所述网络接口设备将所述网络通信消息与针对所述网络通信消息的签名相关联地传输到所述多个网络设备中的至少一个其它网络设备,并且将所述随机数传输到所述多个网络设备中的至少一个其它网络设备。
附图说明
图1为包括攻击者以及发送和接收通信消息的多个网络设备的数据网络的示意图。
图2为示例性网络设备的示意图。
图3A为用于生成针对通信消息的时间戳的时间戳元素的表。
图3B为用于生成针对通信消息的时间戳的时间戳元素的另一表。
图4为对按照示例性通信消息格式的消息元素和消息元素签名的描绘。
图5为用于对通信消息进行签名和认证的过程的框图。
具体实施方式
为了促进对本文中所描述的实施例的原理的理解的目的,在以下书面说明中对图和描述进行参考。该参考并不是对主题内容的范围的限制。如与本文档相关的领域中的技术人员通常将会想到的,本专利还包括对所示出实施例的任何改变和修改并且包括对所描述实施例的原理的进一步的应用。
如在本文中所使用的,术语“哈希”是指通过将在密码上安全的单向哈希算法应用于一组输入数据而针对输入数据组所生成的数值。通过示例的方式,SHA-1、SHA-2、和SHA-3安全哈希算法生成与具有变化长度的输入对应的固定长度的数字哈希值。例如,在不同的运行模式中,无论输入数据组的尺寸,密码哈希可以生成具有160比特、256比特、或512比特的固定长度的哈希。消息验证所感兴趣的在密码上安全的哈希的一个性质在于对于所选择的消息输入抗冲突(collision resistance)。换言之,给定第一组输入数据I,哈希算法生成数字哈希H,该哈希H对于识别出产生同一哈希H的另一输入I’是不实际的。当到哈希函数的两个不同输入产生同一哈希H时发生冲突,并且在密码上安全的哈希使得发现冲突是不可能的,尽管在理论上对于比哈希H的长度更长的输入来说可能发生冲突。因此,攻击者不能生成伪造的输入数据I’,该伪造的输入数据I’产生与有效消息输入I对应的同一哈希H。在公钥密码协议中,通常通过将发送者的私钥应用到消息的密码哈希值,而非将私钥应用到消息的内容,而生成针对消息的签名。对哈希进行签名防止了攻击者伪造与合法消息生成相同的签名的消息,即使在不能够访问私钥的情况下,攻击者也能够伪造这样的消息。
如本文中使用的,术语“公钥”和“私钥”是指结合非对称密码协议使用以验证通信消息的一对密钥。在经验证的通信过程中,私钥仅对诸如网络设备的签名方已知。一般来说,公钥对包括接收者网络设备的整个“公众”已知。公钥用于对声称是来自发送者的、具有并非是伪造物的对应私钥并且还没有受到篡改的网络通信消息进行验证。验证过程使用与发送者相关联的公钥以及与网络通信消息相关联的签名来检查消息内容的真实性和完整性。在下文的讨论中,使用私钥的(有时被称为“密钥”sk)对数字数据D的签名过程被表示为函数SGN.Sigsk(D)。数字数据通常为与被签名的数字信息对应的哈希值。为了验证被签名的消息,接收者使用与对消息进行了签名的私钥对应的公钥来执行验证操作。验证过程被表示为函数SGN.VerPK(D,s),其中PK是公钥,D是被使用私钥进行了签名的数据,而s是使用私钥所生成的签名。接收者可以验证实际上使用私钥而对消息进行签名,虽然接收者仅具有对公钥、消息数据、和签名的访问。
如在本文中所使用的,术语“随机数(nonce)”是指“仅一次的数”,其为针对从网络设备发送的单个通信消息而生成并仅使用一次的随机数。术语“一次性签名”是指网络设备用随机数的私钥而生成的签名。如在下文中更加详细描述的,在每个通信消息使用不同的随机数和一次性签名防止攻击者为了伪造看起来像是来自发送者的通信消息而监测大量的通信消息。
如在本文中使用的,术语“消息元素”是指形成较大的通信消息的一部分的数字数据。具有预先确定的格式的数字消息包括多个消息元素,从用于形成通信消息的潜在消息元素的预先确定的组中选择该多个消息元素。在该通信消息中,将消息元素按照预先确定的格式来设置。一个示例性通信消息格式包括字段A、B、和C。这些字段中的每个可以包括预先确定的消息元素组。一些字段可以正好包括一个消息元素,而其它字段还包括多个消息元素。如下文所述,发送者使用私钥而生成与每个消息元素对应的数字签名,以对由消息元素中的数字数据以及标识出在预先确定的消息格式中消息元素的位置的一个或多个索引号两者所形成的哈希进行签名。然后使用消息元素的个体签名而生成针对整个通信消息的数字签名。
图1示出了网络通信系统100。系统100包括通过网络130发送和接收通信消息的多个网络设备104、108、112、和116。虽然图1描绘了四个网络设备104-116,但是系统100可以包括不同数量的网络设备。网络设备104-116为被配置为使用包括预先确定的消息元素的消息格式而发送和接收通信消息的所有计算设备。网络设备104-116可以是范围广泛的计算设备中的任意计算设备,包括个人计算机(PC)、服务器、智能电话、平板计算机、嵌入式计算系统等。虽然为了示例性的目的,网络设备104-116被描述为具有相同的硬件和软件配置,但是包括不同硬件和软件配置的范围广泛的设备可以被配置为在系统100中运行。在一个实施例中,网络设备104-116为传感器网络中的传感器设备或监测控制和数据采集(SCADA)中的其它设备。在一些实施例中,每个网络设备被配置为以“广播”模式向系统中的所有其它网络设备发送通信消息或以“多播”模式向多个其它网络设备发送通信消息。例如,在图1中,网络设备104向其它网络设备108、112、和116中的每一个发送网络通信消息。在示例性多播消息传输中,设备104向从系统100中的网络设备118的较大组118中选出的接收者网络设备108-116发送通信消息。
网络130可以是任何数字网络,例如互联网、局域网(LAN)、或另一广域网(WAN)。在一个实施例中,网络设备中的每个包括无线网络接口设备并且网络设备直接互相通信或使用点对点网状网络互相通信。在无线网状网络配置中,网络130并不需要网络设备104-116之外的额外硬件。
图1描绘了攻击者124。攻击者124是另一计算设备,其不应该是系统100的组成部分,但具有窃听通过网络130发送的通信消息的能力以及向网络设备104-116发送伪造的通信消息的能力。在一些配置中,攻击者124可以从通信设备中的一个(例如图1中的设备104)截获通信消息。攻击者可以伪造新的通信消息并且试图使网络设备108-116相信设备104发送了该伪造的消息,或者可以在“重放(replay)”攻击中仅重复有效的通信消息。如下文所述,网络设备104-116生成针对通信消息的签名并且验证该通信消息以防止攻击者124成功伪造新的消息或防止成功地重放旧的通信消息。因此,假设攻击者并没有对私钥以及存储在网络设备104-116中的每个网络设备内的消息元素签名的访问,则系统100保持安全以免受攻击者124攻击。
图2描绘了示例性网络设备200中的组件以及存储在网络设备200内的存储器中的数据。图1的网络设备104-116中的每个包含设备200的配置。网络设备200包括支持处理器208、网络接口设备212、和存储器216的壳体204。处理器208为中央处理单元(CPU)、微处理器、现场可编程门阵列(FGPA)、专用集成电路(ASIC)或被配置为生成通信消息、对通信消息进行签名、并且验证接收到的通信消息的任何其它适当的数字逻辑设备。处理器208包括维持当前时间的内部时钟210。可以根据参考时钟而周期性地设置内部时钟210。在一个实施例中,处理器208使用网络接口212向外部时间服务器(未示出)发送网络时间协议(NTP)消息以设置时钟210。处理器208可以可选地包括硬件随机数发生器(RNG)而非或除了使用软件随机数生成技术之外。
网络接口212可以包括有线和无线网络接口设备两者,例如以太网、802.11无线收发器、蓝牙收发器等。存储器216包括非易失性数据存储设备和易失性数据存储设备。非易失性存储设备的示例包括磁盘、光盘、固态数据存储设备、以及在网络设备200没有连接到电源(例如,电力网或电池)时保留数据的任意其它数据存储设备。易失性数据存储设备的示例包括动态和静态随机存取存储器(RAM)或仅在网络设备连接到电源时保留数字数据的其它数据存储设备。
在网络设备200的运行期间,处理器208从存储器216存储和提取数据。存储器216存储系统软件218、预先确定的消息元素数据组220、对应于消息元素的哈希值224、消息元素哈希签名228、随机数232、随机数的一次性签名236、私钥240、被分配给网络设备200的随机标识符244、其它网络设备的随机标识符248、以及与其它网络设备标识符相关联的公钥252。一些通信消息格式包括的系统100中的其它网络设备的随机设备标识符248以作为网络通信消息中的消息元素。所以,其它网络设备的标识符248可以被包含在消息元素220,并且存储器216进一步包括哈希值224和与随机设备标识符值248对应的哈希的消息元素签名228。
在存储器216中,编程的软件指令218通常包括操作系统(OS)软件以及使得处理器208能够生成新的通信消息、能够生成针对通信消息的签名、并且能够验证使用网络接口212接收到的通信消息的真实性和完整性的编程的指令。特别地,系统软件218可以包括在密码上安全的哈希函数、随机数发生器和伪随机数发生器、以及用于实现诸如Rivest-Shamir-Adleman(RSA)协议的非对称密码协议的软件。如在下文中更加详细描述的,存储在存储器216中的不同的数据组与其它的数据组相关联。存储器216可以包括数据库或其它数据结构以使能对存储器216中相关数据的高效存取。
存储器216还存储预先确定的消息元素220、哈希值224、以及针对每个消息元素哈希224的签名228,其中,将预先确定的消息元素220进行组合以形成通信消息,并且针对每个预先确定的消息元素而生成哈希值224。将消息元素220、哈希224、和哈希签名228相互关联地存储在存储器216中。消息元素哈希签名228被存储在存储器216中并且在网络设备200运行期间不对包括攻击者124在内的其它计算设备可见。
存储器216还存储多个随机数232以及对应的一次性签名236。处理器208使用硬件随机数发生器、软件随机数发生器、或伪随机数发生器来生成随机数。处理器208使用私钥240对每个随机数进行签名并且将一次性签名236存储在存储器216中。如下文所述,作为对单个通信消息进行签名和验证的一部分,每个随机数和一次性签名对仅使用一次。
存储器216存储与网络设备200相关联的私钥240。处理器208可以生成私钥240,或者另一计算设备(例如,PC)可以生成私钥并且将该私钥存储在存储器216中。处理器208使用私钥来生成消息元素哈希签名228以及一次性签名236。
存储器216存储被包含在通信消息的随机标识符值244以向其它网络设备标识网络设备200。处理器208生成随机标识符值244或者随机值在外部生成并被存储在存储器216中。使用哈希函数将标示符值随机化来减少冲突的可能性以生成针对通信消息的签名,这在下文中详细描述。随机设备标识符通常具有128比特或更长的长度以提供大的随机设备标识符的潜在的池。攻击者124可以在伪造的消息中假冒随机标识符值244,但是在识别通信消息的声称的发送者中,随机标识符值仍然是有用的。存储器216还将其它网络设备的随机标识符248与其它网络设备的公钥252相关联地进行存储。当网络设备200接收到通信消息时,网络设备200识别出与通信消息中的随机设备标识符248对应的公钥252中的一个公钥。然后,使用该公钥来验证该通信消息的内容。
每个通信消息包括与发送者生成和发送通信消息的时间对应的时间戳。网络设备200存储时间戳数据作为消息元素220的一部分,并且每个时间戳元素具有对应的哈希值224和哈希签名228。图3A和图3B描绘了用于形成通信消息中的时间戳的两个不同的数据元素组。在图3A中,使用来自一系列的消息元素304中的一个消息元素而生成时间戳,该一系列的消息元素304包括与生成消息的时间对应的年、月、日期、时、分、秒、以及毫秒。使用索引值308在时间戳内按照预先确定的顺序将针对不同元素的值进行索引,并且使用时间戳索引值312在更大的通信消息内对整个时间戳进行索引。
图3B描绘了另一时间戳格式,该时间戳格式包括具有针对从一时间点以来的秒数和毫秒数的两个字段的消息元素316。从一时间点以来的秒是许多计算设备所使用的用于将时间标识为秒的整数的时间系统。在图3B中,到未来的有限数量的秒作为消息元素220而被存储在存储器216中,例如与从现在时间开始的下一小时时间对应的3600秒。将毫秒包括在内增加了时间戳的精度。在图3B中,还使用索引值320在时间戳内对时间戳消息元素进行索引,并且使用时间戳索引值324在更大的通信消息内对整个时间戳进行索引。图3B可以用于限制消息元素的数量和针对在任一时间被存储在存储器216中的时间戳的对应签名的数量。处理器208从存储器216删除从一时间点值以来的较旧的秒以及签名,并且在离线模式中生成新的时间戳值和签名从而使得时间戳和签名可以供在额外的通信消息中使用。
如在下文中所描述的,索引值用于生成针对时间戳消息元素的哈希和签名,但是索引值并不直接被包括在通信消息中。索引值防止攻击者重新设置时间戳元素的位置以形成具有有效签名的伪造消息。在网络设备200生成新的通信消息的时间之前,在离线模式中生成针对不同时间戳元素的哈希值和签名并将其存储在存储器216中。通常参照每个时间戳值多久发生变化而生成针对从当前时间到未来的有限的时间窗的时间戳消息元素签名。例如,存储器216针对秒和分时间戳值中的每个而存储六十个签名,但是针对年仅存储单个签名,年的变化更不频繁。图3A和图3B中描绘的时间戳格式是对两个时间戳格式的示出,但是在标识网络通信消息的时间中也可以使用包括更大或更小精度的其它格式。
图5描绘了用于在第一网络设备(被称为发送者或发送设备)中生成针对通信消息的签名并且在至少一个其它网络设备(被称为接收者或接收设备)中对被签名的通信消息进行验证的过程500。结合图1的网络通信系统100和示例性网络设备200来描述过程500。在下文的讨论中,对执行功能或动作的过程500的提及是指处理器(例如,处理器208)执行存储在存储器中的编程的指令以执行功能或动作。
过程500可以可选地从生成针对发送设备的公钥-私钥对(块504)开始。在过程500中,使用包括同态性质的非对称密码协议而生成公钥-私钥对。同态性质的意思是被应用到个体签名的同态运算(通过将私钥应用到个体消息元素或个体消息元素的哈希而生成其中的每一个个体签名)以产生与另一签名具有相同的值的组合签名,该另一签名是这样生成的:使用被应用到个体消息元素或个体消息元素的哈希的同态运算,其后跟随着通过将私钥应用到对个体消息元素或个体消息元素的哈希的同态运算的结果而生成签名。
该同态性质在数学上可以被表示为
其中SGN是使用私钥或“密”钥Sigsk而产生签名的发送者。Mj可以表示多个j个体消息元素或多个j个体消息元素的j个哈希。在等式的左边,签名者SGN首先对个体消息元素或个体消息元素的哈希进行签名,并且接着将个体签名与同态运算进行组合。在等式的右边,首先将同态运算直接应用到个体消息元素或个体消息元素Mj的哈希,并且接着SGN通过将私钥应用到对个体消息元素或个体消息元素的哈希的同态运算的结果而产生单个签名。在之前的等式中,通过乘法序列(multiplicative series)Π而示出同态运算,但是其它同态运算包括求和(Σ)序列、一系列的配对运算、或者保存(preserve)针对使用私钥的签名的同态性质的任何其它操作。如下文所述,针对一些签名协议的同态运算包括在生成针对完整消息的签名期间被应用到个体签名的以及在消息验证过程期间被应用到消息元素或消息元素的哈希的两个或更多数学运算的组合。
RSA协议是商用非对称密码协议的示例,其生成适合于过程500中所描述的同态运算使用的签名。除了RSA之外,其它密码签名协议(例如,Boneh-Lynn-Shacham(BLS)或Schnorr聚合签名协议)包括适合于过程500使用的同态性质。
在过程500的过程中,发送设备生成上述公式中的个体签名SGN.Sigsk(Mj),但并不需要生成上述的组合签名以产生针对通信消息的签名。因为使用私钥来生成针对新消息的签名是计算密集型的,所以发送者并不需要使用私钥来生成与由个体消息元件Mj构成的消息对应的新签名。
随着将公钥、相关联的随机数设备标识符、以及私钥分发到网络设备(块508),过程500继续。每个网络设备仅接收存储在内部存储器中的一个私钥,并且该私钥不被传输到任何其它设备或另外对任何其它设备可见。将针对系统中剩余设备中的每个的公钥与针对每个设备的随机设备标识符相关联地存储在每个网络设备的存储器中。例如,网络设备104存储与网络设备108、112、和116对应的公钥以验证声称是来自系统100中的其它设备的通信消息的真实性和完整性。如下文所述,每个通信消息包括针对发送设备的随机标识符,并且接收者使用该随机标识符以识别用于使用以验证消息内容的适当公钥。
在一个实施例中,公钥252被存储在每个网络设备的存储器216中并且由命令(fiat)将公钥252接受为有效。例如,在初始配置过程中公钥可以被存储在网络设备中,并且设备仅接受与用公钥中的一个进行了验证的消息对应的消息。在另一实施例中,公钥基础设施(PKI)系统从可信签名机构(authority)生成证书,并且仅当证书机构对公钥进行签名时网络设备将公钥接受为有效。PKI基础设施可以用于通过不可信网络130分发公钥以确保只有有效公钥而非由攻击者124所生成的公钥被网络设备104-116接受。
通常在网络设备被激活并开始发送和接收通信消息之前发生的对于网络设备的初始设备配置过程期间,执行上文在块504-512的处理中所描述的公钥-私钥生成和分发。在一些实例中,使用另一计算设备(例如,个人计算机(PC))来生成公钥-私钥对,该另一计算设备可以生成公钥-私钥对并且将这些密钥分发给网络设备。还将随机设备标识符与每个设备的对应公钥相关联地分发到网络设备。在运算过程中在网络设备发送和验证多个网络消息的操作之前,使用随机设备标识符的公钥-私钥生成和分发通常出现一次。
随着计算设备(通常为发送设备但是可选地是诸如PC工作站的另一设备)针对预先确定的多个消息元素中的每一个生成哈希值(块516),预先确定的多个消息元素包括与通信消息中的每个元素的位置对应的索引值,过程500继续。消息元素为可以被包括在通信消息中的分立数据组。系统100中的网络设备发送和接收包括多个消息元素的结构化的通信消息。图4描绘了一种结构化的消息格式的示例。在图4中,通信消息404包括与时间戳408、消息接收者标识符字段412、和命令代码416对应的消息元素。通信消息404还包括发送消息的网络通信设备的标识符244、随机数232中的一个,以及所生成的针对该通信消息的完整消息签名464。按照参照每个通信消息中的字段的预先确定的顺序的顺序,将时间戳字段408、消息接收者字段412、以及命令代码字段416进行索引。时间戳字段408可以包括多个个体时间戳元素220A,将多个个体时间戳元素220A进行组合以形成时间戳。例如,如图3A中所描绘的,时间戳可以包括年、月、日、时、分、秒、和毫秒元素。消息接收者标识符字段412包括存储在存储器216中的并且与消息404的一个或多个网络设备接收者对应的随机接收者标识符248中的一个或多个。消息404可以包括接收者标识符248中的一个或多个以用于在单播、多播、或广播模式中向系统100中的其它网络设备发送消息404。命令代码字段416包括指向系统100中的一个或多个其它网络设备的一个或多个命令220C。命令代码416可以例如要求接收者执行动作或向其它设备查询信息。
为了生成被索引的哈希,过程500将消息元素在消息中的预先确定的位置的索引值连结(concatenate)到该消息元素并且生成与该消息元素和所连结的索引值对应的哈希值。使用图3A中的时间戳作为示例,将与“日期”字段对应的消息元素值0-31中的每个与对应于日期数据元素在时间戳中的位置的索引值“2”相连结。哈希函数H生成哈希H(Day||2),其中“||”运算符表明连结。
将索引值连结到数据元素防止了攻击者生成包含有对本来有效的消息元素的重新设置的伪造消息。例如,攻击者可以记录在3月8日(月=3,日=8)发送的消息,并且随后仅通过重新设置第一消息中的月和日字段来尝试在8月3日(月=8,日=3)发送相同的消息。在生成密码哈希时引入索引值防止了重新设置攻击,这是因为所连结的索引号改变了所生成的针对每个数据元素的哈希值。然而,当发送通信消息时,所连结的索引值并没有被包括在消息元素中。如下文所述,接收者生成针对接收到的消息中的消息元素的哈希值,并且基于消息中的每个数据元素的位置而连结索引值。消息中的数据元素必须按照正确的顺序,否则在认证过程期间在接收者处生成的哈希值与签名不对应并且接收者拒绝该伪造的消息。
更复杂的消息格式可以包括多级索引。例如,消息404中的时间戳408包括针对每个个体时间戳元素的索引值,并且额外地包括连结到时间戳408中的每个数据元素的“0”以表明时间戳408是通信消息404中的第一数据元素。在图4中,针对日期字段的哈希为H(Day||2||0),以表明在索引2处的在时间戳内的日期的索引,以及在索引0处的在通信消息404中的时间戳的总体位置。由于通信消息404具有预先确定的格式,消息的接收者可以抽出消息的个体字段并且基于预先确定的消息格式来分配索引值。消息接收者标识符字段412和命令元素字段416可以类似地包括多级索引以使得消息404能够包括多个消息接收者标识符或多个命令。
图4中所描绘的预先确定的消息格式是一种结构化的消息格式的示例,但是范围广泛的消息格式可以用于过程500。例如,可以以任意方式选择消息格式中的个体字段的顺序,只要发送者和接收者都认出共同的通信消息格式。另外,虽然索引值被描绘为附接在消息元素220A-220C的末端以生成哈希值和签名,但是相反索引值可以被前置在每个消息元素的开端。
重新参考图5,通过生成针对被索引的哈希值的签名(块520),过程500继续。网络设备使用私钥来生成针对每个哈希值的签名并且将签名与对应于哈希值的消息数据元素相关联地存储在存储器中。对于每个消息元素,签名仅需要被生成和被存储一次。
除了生成针对消息数据元素的哈希值和签名之外,网络设备还生成针对多个通信消息的随机数232和一次性签名236(块524)。使用网络设备中的硬件随机数发生器或由处理器208执行的软件随机数生成过程来生成随机数232。在一个实施例中,网络设备使用伪随机数发生器而生成随机数,伪随机数发生器使用随机生成的种子值而运行。在宽泛的数字范围上生成随机值以确保在网络设备的运行期间,单个随机数不被使用超过一次。例如,可以在系统100中使用具有128比特或更长长度的随机数。网络设备将随机数与随机设备标识符连结并且使用私钥来生成针对组合的随机数与设备标识符的密码哈希的签名(SGN.Sigsk(H(nonce||device ID)))。随机数232和对应的签名236被存储在存储器216中,并且从网络设备发送的每个通信消息包括一个随机数以及从随机数和设备标识符的哈希生成的对应的签名。
在过程500中,参考块516-524描述的处理在“离线”运行模式中发生。离线运行模式的意思是在网络设备不需要发送网络通信消息时的时段期间,发生针对消息元素的哈希值的签名的生成以及随机数和一次性签名的生成。因此,当网络设备需要发送通信消息时,针对每个消息元素的签名和随机数/一次性签名已经计算完成。离线处理包括对于网络设备特别是嵌入式系统来说可以是计算密集型的哈希、随机数、和密码签名的生成。离线处理使得网络设备能够具有生成消息所需的所有数据元素而无需在发送通信消息时执行计算密集型运算。例如,网络设备可以在发送消息之间生成额外的随机数并且对随机数进行签名,以确保随机数和一次性签名对额外的消息可用。针对额外时间戳值的签名也可以在需要该时间戳值之前而生成。
随着网络设备在“在线”模式中运行以向一个或多个接收者发送网络通信消息,过程500继续。在时间要求严格的应用中使用的网络设备必须能够生成被签名的消息并且在短时间内发送该消息。对于范围广泛的计算设备,下文描述的在线操作是在计算上高效的以使得够及时生成并传送被签名的消息。
在在线模式中,网络设备首先使用存储在存储器中的消息元素来选择用于新的通信消息的消息元素(块528)。用诸如图4中的消息404的格式的预先确定的格式来形成通信消息。网络设备选择与现在时间对应的时间戳值,现在时间通常用处理器208中的时钟210标识。网络设备还选择一个或多个适当的接收者设备标识符248以及命令消息220C以用于通信消息。按照根据诸如消息404的通信消息的格式的预先确定的顺序,处理器208将各个消息元素在通信消息中进行安排或排序。
一旦选择了用于新的通信消息的消息元素,过程500生成针对新消息的签名。处理器208从存储器216抽出随机数232和对应的一次性签名236以作为消息签名的一部分(块532)。在随机数232和一次性签名236被使用以对一个通信消息进行签名之后,从存储器中删除随机数232和一次性签名236。
过程500将同态运算应用到与所选择的消息元素中的每个对应的签名以及一次性签名以生成针对完整通信消息的签名(块536)。如在图4中所描绘的,同态运算符被应用到以下的签名:从时间戳签名228A中选择的时间戳元素签名450、从接收者标识符哈希228B的签名中选择的一个或多个接收者标识符签名454、从命令签名228C中选择的命令签名458、以及所选择的一次性签名236。如上文所述,可以由诸如处理器208的常用处理器高效地执行的两个同态运算为乘法运算和加法运算。通过示例的方式使用乘法运算,完整消息签名s'为:s'=SGN.Sigsk(H(nonce||deviceID))·术语SGN.Sigsk(H(nonce||deviceID))为一次性签名236,并且术语SGN.Sigsk(H(MessageElementj))为针对通信消息404中所选择的消息元素中的每个的哈希值的签名450-458。因此,完整签名464为个体签名450-458以及236的乘积或和,或者为将另一适当的同态运算应用到签名的结果。由于消息元素中的每个已经被签名并且已生成一次性签名236,所以网络设备200并不需要在在线运行中使用私钥240来生成针对通信消息404的完整消息签名464。
将一次性签名236包括在完整消息签名464的生成中对可以窃听和拦截多个通信消息的诸如攻击者124这样的攻击者隐藏了私钥的标识。如在本领域中已知的,如果网络设备使用个体消息元素的不同组合生成了多个消息,则攻击者可以使用不同消息元素组合以及所得到的完整消息签名来推测关于个体消息元素的签名的信息。在监测多个通信消息之后,攻击者可能识别针对消息元素中的一个或多个的签名并且接着使用该签名值来生成将包括针对消息元素的有效签名的伪造信息,即使攻击者没有访问私钥。
在攻击情境的简化示例中,三个消息元素哈希的签名A、B、和C分别为3、4、和5,并且使用同态乘法运算来生成最终签名。如果一个消息包括A和B(A·B=12)、另一消息包括A和C(A·C=15)、并且第三消息包括B和C(B·C=20),则攻击者124可以使用线性方程组来识别消息元素A-C的签名。然而,参照组合的设备标识符244和随机数232的哈希而生成的一次性签名236确保了每个完整消息的签名464包括随机化的成分,攻击者不会在多个通信消息中看到随机化的成分。将同态运算应用到消息元素450-458的签名值和一次性签名236有效地对攻击者隐藏了消息元素的签名450-458。因此,攻击者124仅看到被应用到消息元素的签名和一次性签名的同态运算的结果,并且不能推测出个体消息元素的签名,即使攻击者124观察到通过网络130发送的每个消息。
在生成针对完整消息的签名之后,将消息发送到一个或多个接收者(块540)。在图4的示例中,完整消息404包括数据元素408-416、发送者标识符244、随机数232和完整消息签名464。在图4的示例中,将完整消息签名464附接在通信消息404。例如,发送者404通过网络130将消息发送到系统100中的接收者网络设备108-116中的至少一个。在广播配置中,网络设备108-116中的每个接收通信消息。在多播配置中,网络设备108-116中的任意两个接收通信消息。
随着接收者网络设备验证声称来自发送者的网络通信消息是否包括与消息元素对应的签名。在系统100中,接收通信消息的接收者网络设备108-116中的每个分别地验证消息的内容。接收者网络设备首先识别与网络通信消息中的发送者设备标识符对应的公钥(块544)。如上文所述,接收者中的存储器216存储针对其它网络设备的设备标识符248和对应的公钥252。处理器208提取与来自存储器216的设备标识符对应的公钥。在消息中的标识符没被存储在存储器216中的情况下(块548),接收者拒绝消息(块552)。
接收者还识别消息中的时间戳(块556)。如果时间戳与在接收网络设备中的内部时钟210中维持的当前时间相差了多于预先确定的量(块560),则接收网络设备拒绝消息(块522)。可以参照包括不同网络设备之间的预期的时钟漂移和消息到达接收者的预期的时延在内的若干因素来选择时间差阈值。在不同的实施例中,时间戳差阈值的范围可以从几毫秒到几十秒。因此,系统100中的网络设备中的时钟210并不一定在系统100中完美同步以供接收者接受时间戳。
时间戳的一个用途是防止攻击者124执行重放攻击。在重放攻击中,攻击者124记录通信消息,并且接着在之后的时间向接收者传输完全相同的消息。如果攻击者124等待超过预先确定的超时时段,则接收者拒绝消息(这是因为时间戳是过期的),并且攻击者不能改变时间戳(这是因为对时间戳的操控使得对消息的签名无效)。攻击者124可以潜在地执行高速重放攻击,在高速重放攻击中,攻击者在短暂的时间窗内发送通信消息的副本,从而使得所复制的消息在预先确定的时间窗内到达接收者处。接收者可以被配置为通过拒绝在预先确定的时段内到达的消息的相同副本来应对该攻击。
在过程500的过程中,一旦接收到消息,在块544和块556的处理中所描述的发送者标识符和时间戳验证可以以任意顺序执行。如下文所描述的,在使用公钥对发送者的消息的签名和内容进行验证之后,可以可选地执行时间检查。
在过程500中,接收者使用所识别的发送者的公钥来验证验证通信消息中的消息元素与该消息中包括的签名相匹配。接收者生成针对通信消息中的消息元素中的每个的哈希(块564)。接收者以与发送者在块516的处理中同样的方式来生成针对消息元素的哈希值。当以与发送者相同的方式来识别哈希值时,接收者还连结与数据消息中的每个消息元素的位置对应的一个或多个索引号。在一些实施例中,接收者将发送者用来生成通信消息的相同的预先确定的消息元素哈希组224存储在存储器216中。如果接收者已经生成了与消息元素数据对应的哈希224,则接收者可以从存储器216提取哈希值而非计算针对新消息的哈希值。预先确定的哈希的使用减少了在对通信消息的内容进行验证期间接收者的计算负荷。
消息接收者还生成针对连结的随机数和发送者的设备标识符的哈希值,H(nonce||device ID)(块568)。由于每个通信消息包括唯一的随机数,所以接收者生成针对每个通信消息的与随机数和发送者设备标识符对应的哈希值。作为哈希处理的一部分,接收者检查随机数的长度以确保随机数具有足够的长度。例如,从足够大以确保在网络设备运行期间随机数不会重复的数字空间中选择128比特或更长的随机数。如果随机数太短,则同一随机数被使用多于一次的可能性增加。系统100中被适当配置的网络设备不应生成低于预先确定的比特数的随机数。所以,如果随机数太短(块570),则拒绝通信消息(块552)。
发送者设备将同态运算应用到消息元素的哈希值以及应用到组合的随机数与发送者设备标识符值的哈希(块572)。在诸如RSA的一些签名协议中,接收者设备将同一同态变换应用到发送者所应用到消息元素签名和一次性签名的哈希值。例如,等式将乘法同态运算应用到与新消息相关联的所有哈希值以按照与在发送者处被应用到签名的乘法运算相同的方式生成消息摘要m’。在签名生成和消息认证期间,诸如RSA的一些签名协议使用同一同态运算。然而,在其它签名协议中,用于生成签名的同态运算不同于用于使用签名来验证消息的同态运算。例如,BLS签名协议将签名者处的签名与乘法运算组合。在验证阶段,接收者使用配对运算和乘法运算的组合来验证组合的完整消息签名。当使用Schnorr签名协议时,将完整消息签名与模加进行组合,但是同态签名验证操作包括模幂和乘法运算的组合以验证消息内容和签名。
在生成消息摘要m’之后,接收者使用声称的发送者的公钥来验证消息摘要是否与被包括在消息中的签名对应(块576)。验证函数记作SGN.VerPK’(m’,s’),其中SGN.VerPK’是指与发送者对应的公钥PK的签名验证函数,而s’是被包括在通信消息中的签名。给定使用私钥生成的签名而使用公钥来验证消息摘要在本领域中是公知的。由发送者使用的个体签名的同态性质以及由接收者使用的哈希使得发送者能够高效地生成消息签名,并且对于接收者能够使用公钥来验证完整消息签名。因此,来自发送者的完整消息签名是针对个体消息元素的哈希值的个体签名的组合,并且接收者使用公钥验证消息并且验证与个体消息元素的哈希值的组合对应的消息摘要。
如果使用公钥的验证函数表明消息摘要m’与具有所包括的签名s’的消息相匹配(块580),则验证过程成功并且接收者将通信消息接受为发送自发送者的具有有效消息内容的消息(块584)。如果验证函数表明消息摘要m’并不与具有签名s’的消息相匹配(块580),则接收者拒绝消息(块552)。
如上文所述,过程500使得发送者能够以在时间上高效的方式生成被签名的通信消息,并且对于多个接收者能够以在时间上高效的方式验证消息的真实性和完整性。虽然消息包括时间戳,但是网络设备并不一定要与单个参考时钟精确同步。另外,单独地对每个通信消息签名并验证而无需根据任何其它通信消息的签名。因此,如果一个通信消息在传输过程中丢失或损坏,则其它通信消息受丢失的通信消息的影响。过程500可以用于对网络设备之间的单播、多播、和广播网络通信消息的验证。
将理解的是,上述特征和其它特征和功能或其替代物的变型可以被理想地结合到许多其它不同的系统、应用或方法中。可以随后由本领域技术人员进行的各种现在无法预料的或无法预期的替代、修改、变型或改进也旨在被以下权利要求所包含。
Claims (26)
1.一种用于经验证的通信的方法,所述方法包括:
使用第一网络设备中的私钥而生成针对多个预先确定的消息元素中的每一个的哈希的单独数字签名;
在所述第一网络设备中生成随机数;
使用所述第一网络设备中的所述私钥而生成针对所述随机数的一次性数字签名;
在所述第一网络设备中生成网络通信消息,所述网络通信消息包括所述多个预先确定的消息元素的子集;
将第一同态运算应用到所述一次性数字签名以及应用到与被包括在所述网络通信消息中的预先确定的消息元素的每个子集对应的每个单独数字签名,以生成针对所述网络通信消息的同态签名,其中,所述同态运算通过所述第一网络设备保留单独签名的列表的同态性质;并且
将所述网络通信消息与所述针对所述网络通信消息的同态签名相关联地传输到至少一个其它网络设备并且将所述随机数传输到至少一个其它网络设备,以在所述其它网络设备处通过使用第二同态运算来验证所述网络通信消息的完整性。
2.根据权利要求1所述的方法,进一步包括:
使用所述至少一个其它网络设备接收所述随机数并且相关联地接收所述网络通信消息与所述针对所述网络通信消息的同态签名;
使用所述至少一个其它网络设备来生成针对所述随机数的哈希;
使用所述至少一个其它网络设备来生成针对所述网络通信消息中的消息元素的每一个的哈希;
使用所述至少一个其它网络设备而将所述第二同态运算应用到所述随机数的哈希以及应用到所述消息元素的每一个的哈希,以生成所述网络通信消息的消息摘要;并且
使用所述至少一个其它网络设备来验证所述网络通信消息由所述第一网络设备参照以下而生成:所述消息摘要、针对所述网络通信消息的同态签名、以及与所述第一网络设备中的所述私钥相关联的公钥。
3.根据权利要求1所述的方法,进一步包括:
在生成所述网络通信消息之前,将所述随机数与所述一次性数字签名相关联地存储在所述第一网络设备的存储器中。
4.根据权利要求2所述的方法,进一步包括:
使用所述第一网络设备中的所述私钥而生成针对与时间戳对应的多个消息元素中的每一个的哈希的单独数字签名;
生成所述网络通信消息,所述网络通信消息包括从所述与时间戳对应的多个消息元素中选择的至少一个消息元素,所述至少一个消息元素被选择以表明生成所述网络通信消息的时间;并且
生成针对所述网络通信消息的同态签名,包括将所述第一同态运算应用到针对所述与时间戳对应的多个消息元素的每个单独数字签名。
5.根据权利要求4所述的方法,进一步包括:
识别在所述至少一个其它网络设备中接收到所述网络通信消息的时间;并且
响应于所述网络通信消息中的时间戳在所识别的时间的预先确定的阈值内,使用所述至少一个其它网络设备来验证所述网络通信消息有效。
6.根据权利要求1所述的方法,进一步包括:
参照通信消息的预先确定的格式,识别与所述多个消息元素中的每一个对应的索引号;
在所述第一网络设备中使用所述私钥生成针对所述多个预先确定的消息元素中的每一个的单独数字签名,所述多个预先确定的消息元素包括所识别的索引号;并且
使用按照与针对每个消息元素的索引号对应的顺序设置的预先确定的消息元素的子集来生成所述通信消息。
7.根据权利要求2所述的方法,进一步包括:
使用随机数发生器来生成随机标识号以标识所述第一网络设备;
将与所述第一网络设备的所述私钥对应的所述公钥与所述随机标识号相关联地分发到所述至少一个其它网络设备。
8.根据权利要求7所述的方法,所述生成所述一次性数字签名进一步包括:
将所述随机数与所述随机标识号连结以产生连结的随机数;并且
使用所述私钥对所述连结的随机数的哈希进行签名,以在所述第一网络设备中生成所述一次性签名。
9.根据权利要求8所述的方法,进一步包括:
使用所述第一网络设备将所述网络通信消息与所述随机标识号相关联地传输;并且
使用所述至少一个其它网络设备来生成针对所述随机数的哈希以作为与所述随机标识号相连结的所述随机数的哈希。
10.根据权利要求2所述的方法,所述第一同态运算和所述第二同态运算为同一运算。
11.根据权利要求10所述的方法,所述第一同态运算和所述第二同态运算两者都为乘法运算。
12.根据权利要求2所述的方法,所述第一同态运算为乘法运算而所述第二同态运算为配对和乘法运算。
13.根据权利要求2所述的方法,所述第一同态运算为模加运算,而所述第二同态运算为模幂和乘法运算。
14.一种网络通信系统,包括:
多个网络设备,每个网络设备包括:
网络接口设备;
存储器,其被配置为存储:
多个预先确定的消息元素;
与所述网络设备对应的私钥;
与所述网络设备对应的随机设备标识符;以及
与所述多个网络设备中的其它网络设备中的每个对应的随机设备标识符和相关联的公钥;以及
处理器,其被操作地连接到所述网络接口设备和所述存储器,在所述多个网络设备中的第一网络设备中的所述处理器被配置为执行存储在所述存储器中的编程指令以:
使用存储在所述第一网络设备的所述存储器中的所述私钥而生成针对所述多个预先确定的消息元素中的每一个的哈希的单独数字签名;
生成随机数;
使用所述私钥而生成针对所述随机数的一次性数字签名;
生成网络通信消息,所述网络通信消息包括所述多个预先确定的消息元素的子集;
将第一同态运算应用到所述一次性数字签名以及应用到针对与被包括在所生成的网络通信消息中的预先确定的消息元素的子集中的每个预先确定的消息元素对应的预先确定的消息元素的每个哈希的每个单独数字签名,以生成针对所述网络通信消息的同态签名,其中,所述第一同态运算通过所述第一网络设备保留单独签名的列表的同态性质;并且
使用所述网络接口设备将所述网络通信消息与针对所述网络通信消息的同态签名相关联地传输到所述多个网络设备中的至少一个其它网络设备,并且将所述随机数传输到所述多个网络设备中的至少一个其它网络设备,以在所述一个其它网络设备处通过使用第二同态运算来验证所述网络通信消息的完整性。
15.根据权利要求14所述的系统,所述多个网络设备中的所述至少一个其它网络设备中的所述处理器被配置为:
使用所述网络接口设备相关联地接收所述网络通信消息与所述针对所述网络通信消息的同态签名,并且使用所述至少一个其它网络设备接收所述随机数;
生成针对所述随机数的哈希;
生成针对所述网络通信消息中的预先确定的消息元素中的每一个的哈希;
使用所述至少一个其它网络设备将所述第二同态运算应用到所述随机数的哈希以及应用到每个预先确定的消息元素的哈希,以生成所述网络通信消息的消息摘要;并且
使用所述至少一个其它网络设备验证所述网络通信消息由所述第一网络设备参照以下而生成:所述消息摘要、针对所述网络通信消息的同态签名、以及与所述第一网络设备中的所述私钥相关联的公钥。
16.根据权利要求14所述的系统,所述第一网络设备中的所述处理器进一步被配置为:
在生成所述网络通信消息之前,将所述随机数与所述一次性数字签名相关联地存储在所述存储器中。
17.根据权利要求14所述的系统,所述第一网络设备中的所述处理器进一步被配置为:
使用所述私钥生成针对与时间戳对应的多个消息元素中的每一个的哈希的单独数字签名;
生成所述网络通信消息,所述网络通信消息包括从所述与时间戳对应的多个消息元素中选择的至少一个消息元素,所述至少一个消息元素被选择以表明生成所述网络通信消息的时间;并且
生成针对所述网络通信消息的同态签名,包括将所述第一同态运算应用到针对所述与时间戳对应的多个消息元素的每个单独数字签名。
18.根据权利要求17所述的系统,所述至少一个其它网络设备中的所述处理器被配置为:
识别接收到所述网络通信消息的时间;并且
响应于所述网络通信消息中的时间戳在所识别的时间的预先确定的阈值内,验证所述网络通信消息有效。
19.根据权利要求14所述的系统,所述第一网络设备中的所述处理器进一步被配置为:
参照通信消息的预先确定的格式,识别与所述多个消息元素中的每一个对应的索引号;
在所述第一网络设备中使用所述私钥生成针对所述多个预先确定的消息元素中的每一个的单独数字签名,所述多个预先确定的消息元素包括所识别的索引号;并且
使用按照与针对每个消息元素的索引号对应的顺序设置的预先确定的消息元素的子集来生成所述通信消息。
20.根据权利要求15所述的系统,所述第一网络设备进一步被配置为:
使用随机数发生器来生成随机标识号以标识所述第一网络设备;
使用所述网络接口设备将与所述第一网络设备的所述私钥对应的所述公钥与所述标识号相关联地分发到所述至少一个其它网络设备。
21.根据权利要求20所述的系统,所述第一网络设备中的所述处理器进一步被配置为:
将所述随机数与所述随机标识号连结以产生连结的随机数;并且
使用所述私钥对所述连结的随机数的哈希进行签名,以生成所述一次性签名。
22.根据权利要求20所述的系统,所述第一网络设备被配置为:
将所述网络通信消息与所述随机标识号相关联地传输;并且
所述至少一个其它网络设备中的所述处理器进一步被配置为生成针对所述随机数的哈希以作为与所述随机标识号相连结的所述随机数的哈希。
23.根据权利要求15所述的系统,所述第一同态运算和所述第二同态运算为同一运算。
24.根据权利要求23所述的系统,所述第一同态运算和所述第二同态运算两者都为乘法运算。
25.根据权利要求15所述的系统,所述第一同态运算为乘法运算而所述第二同态运算为配对和乘法运算。
26.根据权利要求15所述的系统,所述第一同态运算为模加运算,而所述第二同态运算为模幂和乘法运算。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/482,037 US8667288B2 (en) | 2012-05-29 | 2012-05-29 | System and method for message verification in broadcast and multicast networks |
US13/482,037 | 2012-05-29 | ||
PCT/US2013/043090 WO2013181236A1 (en) | 2012-05-29 | 2013-05-29 | System and method for message verification in broadcast and multicast networks|using homomorphic signatures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104509027A CN104509027A (zh) | 2015-04-08 |
CN104509027B true CN104509027B (zh) | 2018-09-07 |
Family
ID=48628928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380040122.7A Active CN104509027B (zh) | 2012-05-29 | 2013-05-29 | 使用同态签名|在广播和多播网络中进行消息验证的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8667288B2 (zh) |
CN (1) | CN104509027B (zh) |
DE (1) | DE112013002752T5 (zh) |
WO (1) | WO2013181236A1 (zh) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US9544143B2 (en) | 2010-03-03 | 2017-01-10 | Duo Security, Inc. | System and method of notifying mobile devices to complete transactions |
US9532222B2 (en) | 2010-03-03 | 2016-12-27 | Duo Security, Inc. | System and method of notifying mobile devices to complete transactions after additional agent verification |
US9467463B2 (en) | 2011-09-02 | 2016-10-11 | Duo Security, Inc. | System and method for assessing vulnerability of a mobile device |
US9524388B2 (en) | 2011-10-07 | 2016-12-20 | Duo Security, Inc. | System and method for enforcing a policy for an authenticator device |
US9756036B2 (en) * | 2012-06-15 | 2017-09-05 | Nokia Technologies Oy | Mechanisms for certificate revocation status verification on constrained devices |
CA3113258C (en) | 2012-06-18 | 2023-01-24 | Ologn Technologies Ag | Systems, methods and apparatuses for secure time management |
US9722776B2 (en) * | 2012-06-21 | 2017-08-01 | Microsoft Technology Licensing, Llc | Homomorphic signatures and network coding signatures |
US9955373B2 (en) | 2012-11-05 | 2018-04-24 | Telefonaktiebolaget L M Ericsson (Publ) | Systems and methods for controlling logging and reporting under constraints |
US9607156B2 (en) | 2013-02-22 | 2017-03-28 | Duo Security, Inc. | System and method for patching a device through exploitation |
US9338156B2 (en) | 2013-02-22 | 2016-05-10 | Duo Security, Inc. | System and method for integrating two-factor authentication in a device |
EP3014913B1 (en) * | 2013-06-28 | 2021-04-14 | Nec Corporation | Security for prose group communication |
US9608814B2 (en) | 2013-09-10 | 2017-03-28 | Duo Security, Inc. | System and method for centralized key distribution |
US9092302B2 (en) | 2013-09-10 | 2015-07-28 | Duo Security, Inc. | System and method for determining component version compatibility across a device ecosystem |
US10666590B2 (en) * | 2013-10-21 | 2020-05-26 | Dropbox, Inc. | Secure sent message identifier |
US9774448B2 (en) | 2013-10-30 | 2017-09-26 | Duo Security, Inc. | System and methods for opportunistic cryptographic key management on an electronic device |
EP2905922A1 (en) * | 2014-02-10 | 2015-08-12 | Thomson Licensing | Signing method delivering a partial signature associated to a message, threshold signing method, signature verification method, and corresponding computer program and electronic devices |
US9762590B2 (en) | 2014-04-17 | 2017-09-12 | Duo Security, Inc. | System and method for an integrity focused authentication service |
US10452869B2 (en) * | 2014-05-07 | 2019-10-22 | Infineon Technologies Ag | Systems and methods for processing and verifying data using signatures |
CN105337736B (zh) * | 2014-06-30 | 2018-10-30 | 华为技术有限公司 | 全同态消息认证方法、装置及系统 |
EP3186941B1 (en) * | 2014-08-27 | 2021-02-17 | Telefonaktiebolaget LM Ericsson (publ) | Call forwarding detection in voice over packet interception |
WO2016050285A1 (en) * | 2014-09-30 | 2016-04-07 | Telefonaktiebolaget L M Ericsson (Publ) | Technique for handling data in a data network |
US9979719B2 (en) | 2015-01-06 | 2018-05-22 | Duo Security, Inc. | System and method for converting one-time passcodes to app-based authentication |
EP3056706A1 (en) | 2015-02-16 | 2016-08-17 | Honeywell International Inc. | An approach for aftertreatment system modeling and model identification |
US10237729B2 (en) | 2015-03-05 | 2019-03-19 | Qualcomm Incorporated | Identity privacy in wireless networks |
US9641341B2 (en) | 2015-03-31 | 2017-05-02 | Duo Security, Inc. | Method for distributed trust authentication |
FR3035986B1 (fr) * | 2015-05-06 | 2018-07-27 | Morpho | Procede de generation d'une signature de message a partir d'un jeton de signature chiffre a l'aide d'une fonction de chiffrement homomorphique |
ES2758755T3 (es) | 2015-06-01 | 2020-05-06 | Duo Security Inc | Método para aplicar normas de salud de punto final |
US9774579B2 (en) | 2015-07-27 | 2017-09-26 | Duo Security, Inc. | Method for key rotation |
EP3125052B1 (en) | 2015-07-31 | 2020-09-02 | Garrett Transportation I Inc. | Quadratic program solver for mpc using variable ordering |
US10272779B2 (en) | 2015-08-05 | 2019-04-30 | Garrett Transportation I Inc. | System and approach for dynamic vehicle speed optimization |
US9747434B1 (en) * | 2015-09-17 | 2017-08-29 | EMC IP Holding Company LLC | Authenticating with an external device by providing a message having message fields arranged in a particular message field order |
CN108141362A (zh) * | 2015-10-08 | 2018-06-08 | 三菱电机株式会社 | 加密系统、同态签名方法和同态签名程序 |
US10505948B2 (en) * | 2015-11-05 | 2019-12-10 | Trilliant Networks, Inc. | Method and apparatus for secure aggregated event reporting |
WO2017140358A1 (en) * | 2016-02-17 | 2017-08-24 | Nec Europe Ltd. | Method for storing data on a storage entity |
US10129022B1 (en) * | 2016-02-22 | 2018-11-13 | The Regents Of The University Of California | Secret key for wireless communication in cyber-physical automotive systems |
EP3430563B1 (en) * | 2016-03-15 | 2020-09-09 | Visa International Service Association | Validation cryptogram for interaction |
US10036338B2 (en) | 2016-04-26 | 2018-07-31 | Honeywell International Inc. | Condition-based powertrain control system |
US10124750B2 (en) | 2016-04-26 | 2018-11-13 | Honeywell International Inc. | Vehicle security module system |
US10728249B2 (en) | 2016-04-26 | 2020-07-28 | Garrett Transporation I Inc. | Approach for securing a vehicle access port |
GB201617620D0 (en) * | 2016-10-18 | 2016-11-30 | Cybernetica As | Composite digital signatures |
US10200861B2 (en) | 2016-10-28 | 2019-02-05 | Nokia Of America Corporation | Verification of cell authenticity in a wireless network using a system query |
US10333715B2 (en) * | 2016-11-14 | 2019-06-25 | International Business Machines Corporation | Providing computation services with privacy |
US11199120B2 (en) | 2016-11-29 | 2021-12-14 | Garrett Transportation I, Inc. | Inferential flow sensor |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US10873568B2 (en) | 2017-01-20 | 2020-12-22 | Enveil, Inc. | Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix |
US10771237B2 (en) | 2017-01-20 | 2020-09-08 | Enveil, Inc. | Secure analytics using an encrypted analytics matrix |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US10693627B2 (en) | 2017-01-20 | 2020-06-23 | Enveil, Inc. | Systems and methods for efficient fixed-base multi-precision exponentiation |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US10397002B2 (en) | 2017-02-10 | 2019-08-27 | International Business Machines Corporation | Signature scheme for homomorphic message encoding functions |
US11057213B2 (en) | 2017-10-13 | 2021-07-06 | Garrett Transportation I, Inc. | Authentication system for electronic control unit on a bus |
FR3073998B1 (fr) * | 2017-11-23 | 2019-11-01 | In Webo Technologies | Procede numerique de controle d'acces a un objet, une ressource ou service par un utilisateur |
US10412113B2 (en) | 2017-12-08 | 2019-09-10 | Duo Security, Inc. | Systems and methods for intelligently configuring computer security |
US11088827B2 (en) * | 2018-07-09 | 2021-08-10 | At&T Intellectual Property I, L.P. | Location-based blockchain |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
DE102018130297A1 (de) | 2018-11-29 | 2020-06-04 | Infineon Technologies Ag | Arbeitsnachweis-Konzept für ein Fahrzeug |
US11658962B2 (en) | 2018-12-07 | 2023-05-23 | Cisco Technology, Inc. | Systems and methods of push-based verification of a transaction |
US11588645B1 (en) * | 2019-09-06 | 2023-02-21 | University Of South Florida | Systems and methods for compromise resilient and compact authentication for digital forensics |
US11882449B1 (en) * | 2019-11-21 | 2024-01-23 | Cable Television Laboratories, Inc. | Systems and methods for protecting cellular network messages |
GB2590618B (en) * | 2019-12-20 | 2022-07-06 | Pqshield Ltd | Secure update propagation with digital signatures |
GB2605293B (en) * | 2019-12-20 | 2023-03-29 | Pqshield Ltd | Secure update propagation with digital signatures |
US11909882B2 (en) * | 2020-01-30 | 2024-02-20 | Dell Products L.P. | Systems and methods to cryptographically verify an identity of an information handling system |
CN111865908B (zh) * | 2020-06-08 | 2022-05-17 | 杭州电子科技大学 | 一种基于随机加密策略的资源受限系统安全通讯方法 |
US11728997B2 (en) * | 2020-09-08 | 2023-08-15 | Micron Technology, Inc. | Cloud-based creation of a customer-specific symmetric key activation database |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
CN114143012A (zh) * | 2021-11-26 | 2022-03-04 | 北京声智科技有限公司 | 消息队列管理方法、装置、设备及计算机可读存储介质 |
US20230327854A1 (en) * | 2022-04-12 | 2023-10-12 | Huawei Technologies Co., Ltd. | Methods, apparatuses, and computer-readable storage media for data authentication and error correction using error-tolerant message authentication code |
CN116261135B (zh) * | 2023-05-15 | 2023-07-11 | 中维建技术有限公司 | 一种通信基站同态数据安全处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651507A (zh) * | 2008-08-15 | 2010-02-17 | 威盛电子(中国)有限公司 | 安全播放多媒体广播内容的方法及系统、多媒体广播系统 |
CN101729253A (zh) * | 2008-11-03 | 2010-06-09 | 威盛电子(中国)有限公司 | 多媒体广播系统及方法 |
CN101873307A (zh) * | 2010-03-19 | 2010-10-27 | 上海交通大学 | 基于身份的前向安全的数字签名方法、装置及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772339B1 (en) | 2000-03-13 | 2004-08-03 | Lucent Technologies Inc. | Mix and match: a new approach to secure multiparty computation |
US8724803B2 (en) | 2003-09-02 | 2014-05-13 | Qualcomm Incorporated | Method and apparatus for providing authenticated challenges for broadcast-multicast communications in a communication system |
JP2007522739A (ja) * | 2004-02-13 | 2007-08-09 | サーティコム コーポレーション | 一方向性認証 |
US7743253B2 (en) | 2005-11-04 | 2010-06-22 | Microsoft Corporation | Digital signature for network coding |
US8280039B2 (en) * | 2005-12-28 | 2012-10-02 | Panasonic Corporation | Signature generating device, signature generating method and signature generating program |
US20080301448A1 (en) * | 2007-06-01 | 2008-12-04 | Microsoft Corporation | Security Against Corruption for Networked Storage |
-
2012
- 2012-05-29 US US13/482,037 patent/US8667288B2/en active Active
-
2013
- 2013-05-29 CN CN201380040122.7A patent/CN104509027B/zh active Active
- 2013-05-29 DE DE112013002752.6T patent/DE112013002752T5/de active Pending
- 2013-05-29 WO PCT/US2013/043090 patent/WO2013181236A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651507A (zh) * | 2008-08-15 | 2010-02-17 | 威盛电子(中国)有限公司 | 安全播放多媒体广播内容的方法及系统、多媒体广播系统 |
CN101729253A (zh) * | 2008-11-03 | 2010-06-09 | 威盛电子(中国)有限公司 | 多媒体广播系统及方法 |
CN101873307A (zh) * | 2010-03-19 | 2010-10-27 | 上海交通大学 | 基于身份的前向安全的数字签名方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104509027A (zh) | 2015-04-08 |
WO2013181236A1 (en) | 2013-12-05 |
US20130326224A1 (en) | 2013-12-05 |
DE112013002752T5 (de) | 2015-05-21 |
US8667288B2 (en) | 2014-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104509027B (zh) | 使用同态签名|在广播和多播网络中进行消息验证的系统和方法 | |
CN105939191B (zh) | 一种云存储中密文数据的客户端安全去重方法 | |
Khan et al. | LAKAF: Lightweight authentication and key agreement framework for smart grid network | |
CN107070948A (zh) | 云存储中基于混合加密算法的签名与验证方法 | |
CN107819753B (zh) | 不完全匿名的区块链交易系统及方法 | |
CN103903325B (zh) | 一种基于身份签名的安全电子投票系统 | |
CN103095453A (zh) | 应用私有集合交集的公钥加密的布隆过滤器 | |
CN105610789B (zh) | 一种适用于多人群聊即时通信的数据加密方法 | |
CN109543434A (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
CN109150536A (zh) | 代理签名方法和系统、以及智能合约的执行方法 | |
CN103973440A (zh) | 基于cpk的文件云安全管理方法及系统 | |
Xiong et al. | Scalable and forward secure network attestation with privacy-preserving in cloud-assisted internet of things | |
CN107888380A (zh) | 一种两方分布式基于身份的rsa数字签名生成方法与系统 | |
Duan et al. | Flexible certificate revocation list for efficient authentication in IoT | |
Arun et al. | Short-lived zero-knowledge proofs and signatures | |
CN105868987B (zh) | 一种在设备之间共享信息的方法和系统 | |
Dent et al. | Revisiting the security model for timed-release encryption with pre-open capability | |
Yang et al. | Group time-based one-time passwords and its application to efficient privacy-preserving proof of location | |
CN109962924A (zh) | 群聊构建方法、群消息发送方法、群消息接收方法及系统 | |
CN107959725A (zh) | 基于椭圆曲线的考虑用户隐私的发布-订阅类服务协议 | |
CN111861485A (zh) | 一种基于区块链的数字货币管控方法及设备 | |
Li et al. | A general compiler for password-authenticated group key exchange protocol | |
CN104283667B (zh) | 一种数据传输方法、装置及系统 | |
CN107534552A (zh) | 交易完整性密钥的分发和验证 | |
CN111488618B (zh) | 基于区块链的一次一密密码方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |