CN1682479A - 用于数据处理***的有效加密和认证 - Google Patents
用于数据处理***的有效加密和认证 Download PDFInfo
- Publication number
- CN1682479A CN1682479A CNA038224305A CN03822430A CN1682479A CN 1682479 A CN1682479 A CN 1682479A CN A038224305 A CNA038224305 A CN A038224305A CN 03822430 A CN03822430 A CN 03822430A CN 1682479 A CN1682479 A CN 1682479A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- piece
- plain code
- value
- plaintext block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04K—SECRET COMMUNICATION; JAMMING OF COMMUNICATION
- H04K1/00—Secret communication
- H04K1/06—Secret communication by transmitting the information or elements thereof at unnatural speeds or in jumbled order or backwards
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3242—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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
这里提出了用于加密和认证数据的方法和装置,使得一些数据可以以明文的形式发送但仍然由发送机认证。一组明码位置或一组密文位置被用于指定哪些数据块会被用于生成输入校验和值(470)和输出校验和值(475)。这些校验和值接着被用于生成认证标记(490)。
Description
背景
技术领域
本发明涉及数据处理***领域,尤其涉及在数据处理***中提高安全性。
背景技术
在多种不同的领域中,诸如电子商务、通信和广播,安全是一个主要关注的问题。安全性措施提供可说明性、公正性、精确性、机密性、可操作性和其它这些领域中的数据处理***和信息***所期望的准则。提供这种安全性的加密方法通常根据两个目的来归类:加密和认证。加密是使得数据对未被认证方不可读的技术。认证是验证数据完整性的技术。验证数据的完整性涉及验证数据作者的身份和/或验证数据是否被改变。
加密***通常被称为密码***并具有对称或非对称的性质。对称加密***使用密钥来加密信息并使用相同的密钥来解密经加密的信息。非对称加密***,诸如公开密钥密码***,使用第一密钥来加密信息并使用不同的密钥来解码经加密的信息。
在许多对称密码***中,一密钥被用作加密功能,一分开的密钥被用作认证功能。因此在使用对称密码***的数据处理***中,加密和认证是作为两个独立的实体来执行的。由于认证需要大约与加密相同的处理功率,总的处理量等于两次加密数据所需的处理量。在运作在有限功率或有限硬件环境中的数据处理***中,诸如蜂窝电话、个人数字助理或其它可携带的通信设备,所期望的是具有可以将加密和认证作为单个实体来执行的密码***,以此来降低设备上计算负载或增加设备执行加密和认证的速度。
在Springer-Verlag 2001的“计算机科学”第2045卷中的讲稿EUROCRYPT 2001“密码术的发展”中由Charanjit Jutla所著的论文“Encryption Modes withAlmost Free Message Integrity”中,提出了可以以与单独加密需要差不多的处理方式来加密消息和认证经加密的消息的密码***。换而言之,加密和认证可以作为单个功能实体被有效地执行。因此,降低了提供安全性所需的处理资源量。
Jutla密码***被设计成加密所有要发送的数据。然而,在某些应用中,消息的所有数据必须被加密的要求是不希望的。例如,在诸如IPSec等通信协议中,加密所有的数据不是有效的。数据的头部必须未经加密发送用于寻址。IPSec的原理是在题为“Security Architecture for Internet Protocol”的RFC 1825、题为“IP Authentication Header”的RFC 1826和题为“IP Encapsulating SecurityPayload(ESP)”的RFC 1827中规定,所有这些是由R.Atkinson在1995年8月提交的。
因此,需要一种用于加密和认证数据的安全有效的***,其中不是消息的所有数据比特都需要被加密。
发明内容
这里提出了解决上述需要的方法和装置。特别地,提出了允许数据消息的某些部分以明文发送,数据消息的某些部分以密文发送,并且使用单一的认证标记来验证数据消息的明文部分和密文部分的方法和装置。
一方面,提出了作为单个实体加密和认证数据的方法,所述方法包含:将数据安排到多个明文块中,每个明文块根据密码块大小来定尺寸;指定至少一个明码(cleartext)位置,对此至少一个密文块与相应的明文块一样;确定多个使用临时值和第一密钥的噪声块;确定多个中间密文块,其中第一中间密文块对应于经加密的临时值,且剩余的中间密文通过用第二密钥加密多个中间明文块来迭代地计算,其中每个中间明文块是多个明文块中一个和前一中间密文块的组合;通过使用多个中间密文块和多个噪声块来确定多个密文块,其中第一密文块与第一中间密文块相同,而剩余的密文块通过将相应的中间密文块和相应的噪声块相组合来获取;基于多个明文块和对应于上一明文块的中间密文块来计算输入校验和值;基于多个密文块和一个噪声块来计算输出校验和值;通过用第二密钥加密输入校验和值并将经加密的输入校验和值和输出校验和组合来计算认证标记;用相应的明文块来代替由明码位置指定的多个密文块的每一个;以及添加认证标记。
在另一方面,提出了解密和验证伴有认证标记的多个数据块的方法,其中定义了一组明码位置,所述方法包含:使用临时值和第一密钥来确定多个噪声块;将未由该组明码位置中的明码位置所指定的多个数据块的每个与相应的噪声块组合,用以确定多个中间密文块;指定由该组明码位置中的明码位置确定的多个数据块的每个为多个明文块中的明文块;对于该组明码位置中的每个明码位置,将相应的明文块与先前中间密文块组合以形成中间明文块,并且加密该中间明文块来形成对应于该明码位置的中间密文块;对于不在该组明码位置的每个位置,解密相应的中间密文块以形成相关联的中间明文块,并且将相关联的中间明文块和先前的中间密文块组合用以为不在该组明码位置中的每个位置形成一明文块;确定多个次要密文块,其中多个次要密文块的每个对应于该组明码位置中的明码位置,并且是通过将相应的中间密文块和相应的噪声块相组合而形成;通过将上一中间密文块和不是由该组明码位置中的明码位置指定的多个数据块组合来计算输入校验和值;通过将噪声块和多个次要密文块组合来计算输出校验和值;以及验证认证标记。
在另一方面,提出了安全的数据传输的方法;其中第一部分的数据传输是作为明文发送的,第二部分的数据传输是作为密文发送的,并且所有的数据传输是经过认证的,所述方法包含:生成一组明码位置;将第一部分数据传输和第二部分数据传输加密为密文,其中所述第一部分数据传输由该组明码位置指定,而第二部分数据传输不与该组明码位置中任一相关联;使用不与该组明码位置中任一相关联的数据传输来生成输入校验和值;使用第一部分数据传输的密文来生成输出校验和值;使用输入校验和值和输出校验和值来生成认证标记;以及发送该明文、密文和认证标记,其中所述明文是由该组明码位置指定的数据传输的第一部分。
在另一方面,提出了解密和验证多个接收到的传输块的方法,所述方法包含:确定多个接受到的传输块的每个是否是由来自一组明码位置的明码位置所指定的;解码多个接收到的传输块,所述解码包含:如果不是由明码位置所指定的,那么就生成一组中间密文块,解密该组中间密文块以生成一组中间明文块,并生成一组明文块;如果是由明码位置所指定的,那么就将由明码位置所指定的多个接收到的传输块的每个与先前的中间密文块组合以生成中间明文块,并加密该中间明文块以获取中间密文块;以及验证多个接收到的传输块,所述验证包含:使用未由明码位置指定的该组明文块来形成输入校验和值;使用一组次要密文块来形成输出校验和值,其中所述次要密文块是从一组不与明码位置相关联的中间密文块获取的;以及将输入校验和值和输出校验和值用于与认证标记作比较。
在另一方面,提出了安全的数据传输的装置;其中第一部分的数据传输是作为明文发送的,第二部分的数据传输是作为密文发送的,并且所有的数据传输是经过认证的,所述方法包含:用于生成一组明码位置的装置;用于将第一部分数据传输和第二部分数据传输加密为密文的装置,其中所述第一部分数据传输由该组明码位置指定,而第二部分数据传输不与该组明码位置中任一相关联;用于使用不与该组明码位置中任一相关联的数据传输来生成输入校验和值的装置;用于使用第一部分数据传输的密文来生成输出校验和值的装置;用于使用输入校验和值和输出校验和值来生成认证标记的装置;以及用于发送该明文、密文和认证标记的装置,其中所述明文是由该组明码位置指定的第一部分的数据传输。
在另一方面,提出了解密和验证多个接收到的传输块的装置,所述装置包含:用于确定多个接受到的传输块的每个是否是由来自一组明码位置的明码位置所指定的装置;用于解码多个接收到的传输块的装置,所述解码包含:如果不是由明码位置所指定的,那么就生成一组中间密文块,解密该组中间密文块以生成一组中间明文块,并生成一组明文块;如果是由明码位置所指定的,那么就将由明码位置所指定的多个接收到的传输块的每个与先前的中间密文块组合以生成中间明文块,并加密该中间明文块以获取中间密文块;以及用于验证多个接收到的传输块的装置,这是通过使用未由明码位置指定的该组明文块来形成输入校验和值,使用一组次要密文块来形成输出校验和值,其中所述次要密文块是从一组不与明码位置相关联的中间密文块获取的;以及将输入校验和值和输出校验和值用于与认证标记作比较。
附图说明
图1A、1B和1C分别是基本密码***、对称加密***和非对称加密***的框图。
图2A和2B分别是对称认证***和非对称认证***的框图。
图3是完整性认识(Integrity Aware)加密块链接模式的框图。
图4A是CBC-IO模式的框图。
图4B是用于执行CBC-IO模式的装置的框图。
图5是解密和验证经由CBC-IO模式加密和认证的消息的框图。
图6A是用于执行解密和验证经由CBC-IO模式加密和认证的消息的装置的框图。
图6B、6C和6D是用于验证经由CBC-IO模式加密和认证的消息的不同实施例的框图。
具体实施方式
加密使得数据对未被认证方不可读。原始数据消息被称为明文消息或明文。经加密的被称为密文,其中加密包含任一将明文转换为密文的方法,例如分组密码、散列函数或任一其它的加密函数。解密包含任一将密文转换为明文的方法,即恢复原始消息。图1A说明了设计用作加密的基本密码***10。明文消息11由加密方案12操作以形成密文13。密文13于是通过通信信道(未示出)发送并在另一个站点(未示出)由解码方案14恢复明文15。明文和密文可以关于任何数据,包含以数字形式出现的音频和视频数据。
密码分析法是破获密码***的安全性的技术。执行密码分析法的实体在本领域中被称为对手或攻击者。加密方案的密码分析法是关于解密未经认证的消息。认证方案的密码分析法是针对合成可以被验证为由其他人发送的消息。
密码***是基于秘密的。一组实体共享该秘密,如果一组实体之外的实体不花费大量的资源就不能获得密钥。这个秘密被说成充当该组实体的安全关联。
一般地,秘密包含一个密钥或一组密钥,它们是以比特来计量的。密钥越长,该密钥具有越高的秘密安全性。对称密码***使用同解密消息一样的同一密钥来加密消息。对称加密***20在图1B中说明,其中加密和解密都使用相同的私钥。明文21由加密方案22操作。密钥23在加密方案22中使用以形成密文24。密文24在通信信道(未示出)上发送至另一站点,其中解密方案25使用同一密钥23来形成明文26。
相反地,非对称密码***使用第一密钥来加密消息,并使用不同的密钥来将其解密。图1C说明了被称为公钥密码***30的非对称加密***,其中公钥用于加密而私钥用于解密。公钥是公开的,这样任一用户可使用该公钥来加密任一消息。然而,只有私有的、未公开的密钥可以被用于解密这个经公钥加密的消息。明文31被输入加密方案32,所述加密方案使用与指定用户相关联并从公布中获取的公钥33。所得的密文34在通信信道(未示出)上发送至指定用户。该指定用户使用解密方案35中的密钥36将密文34转换成明文37。
对称加密一般比非对称加密快得多。然而,由于可能被对手中途截取,将密钥从发送者发送至接收者是有问题的。一个解决方案是使用可信的第三方来持有密钥,该第三方只会与经认证的用户共享密钥。这里所述的实施例不解决这个问题,而是假定发送者和接收者共享了一密钥。
上述密码***生成的密文的完整性一般由附加的某些认证数据提供给经发送的密文。该认证数据一般作为消息内容和完整性密钥的函数计算。
在对称认证***中,认证数据被称为消息认证代码(MAC)。该MAC是作为消息内容和完整性密钥的函数计算的,其中发送者和指定目标共享该完整性密钥。发送者发送消息并附加MAC。消息可以是明文或密文。接收者重新计算来自消息的MAC,并且只有当经重新计算的MAC与发送的MAC一致时才认可消息的完整性。理论上,只有消息的发送者能够生成该消息有效的签名,由此用于接收者认证该消息。
对称认证***40在图2A中说明,其中签名和验证都使用相同的密钥。用使用密钥43的认证方案42来运作消息41以形成认证数据44。认证数据44和消息41于是通过通信信道(未示出)发送至另一方(未示出)。用使用相同密钥43的验证方案45来对消息41操作以确定认证数据46。将由接收方生成的认证数据46与在通信信道上接收到的认证数据44相比较。
在非对称认证***中,认证数据被称为数据签名。数据签名作为消息内容和发送者的完整性密钥的函数计算。发送者向接收方发送数字签名,接收方于是使用发送者的公钥对数字签名执行验证。非对称认证***50在图1E中说明,其中签名使用私钥而认证使用相应的公钥。
在一些方案中,MAC或数字签名计算自包含对秘密消息的唯一数学描述的‘消息摘要’。消息摘要在长度上比原始消息要短,这样更容易地执行对消息摘要的计算。由于秘密消息或消息摘要不是保持恒定的,MAC或数字签名依靠秘密消息或消息摘要保证认证数据不是保持恒定的。如果认证数据对多个消息是保持恒定的,那么对手就可以非法地容易窃取到认证数据。
通常使用密码哈希函数来计算消息摘要。密码哈希函数从任一输入计算出一值(包含固定位数),而不管输入的长度。密码哈希函数的一个特性是给定一输出值,计算上难以确定会导致那个输出的输入。密码哈希函数的一个例子是SH-1,如联邦信息处理标准出版物(FIPS PUBS)发布的和国家标准技术局(NIST)出版的FIPPUB 180-1“Secure Hash Standard”中所描述的。
分组密码是对称加密方案,对于该方案到该方案的输入在位数上总是固定的长度。该长度被称为分组密码的块大小。分组密码的一个例子是数据加密标准(DES),如FIPS PUBS发布的和NIST出版的FIPS PUB 46-1“Data EncryptionStandard”中所描述的。DES的块大小为64位。分组密码的另一个例子是高级加密标准(AES),如FIPS PUBS发布的和NIST出版的FIPS PUB 46-1“AdvancedEncryption Standard”中所描述的。AES的块大小为128位。
分组密码的密钥长度是该密钥的位数长度。然而,密钥的熵是密钥的可能值的数目的对数(基数为2)。熵也是按照位数来写的。例如,DES具有64位的密钥,这些位数中的8位被用作校验和以检测密钥传输中的差错。从而,DES的密钥熵是(64-8)=56位。
给定分组密码的几对输入和相应的输出,对手就可导出该分组密码的密钥,所述对手测试所有可能的密钥值以确定那些输入导致正确的输出。这种类型的攻击被称为穷举密钥搜索。这种攻击的计算复杂性是攻击所需的加密操作的数目。因此,在穷举密钥搜索中,为了提取K位密钥的攻击需要大约2k加密操作来提取分组密码密钥。
分组密码对构造其它的密码实体是有用的。使用分组密码的方式被称为操作模式。已经为DES标准化四种模式的操作,并且在FIPS PUBS发布的和NIST出版的FIPS PUB 81“DES Modes of Opertaion”中描述了这四种模式。这四种模式是电子码本(ECB)、密码分组链(CBC)、输出反馈(OFB)和密码反馈(CFB)。为了说明起见,这里只讨论ECB和CBC来加密明文块P1,...,和Pm的序列。
在ECB模式中,依照以下关系,分组密码被用于将明文的每个块加密成密文块:
Ci=EK(Pi),
其中EK(Pi)标记为使用密钥K对块Pi的加密。在这里使用时,DK(Pi)表示使用密钥K对块Pi的解密。
在CBC模式中,用秘密初始值(IV)对第一明文块求异或形成一结果,该结果接着被加密。依照以下关系写出该过程的数学描述:
C1=EK(P1IV)。
此后,在加密前用先前的密文对每个明文块求异或,如下:
Ci=EK(PiCi-1)。
在对称密码***中,有效的加密和认证可能是有问题的。直到最近,满足这个需求的唯一解决方案是使用原始的方法:提供加密和认证为两个单独的功能。这两个功能需要大约等量的计算,因此使用两个功能的花费是只使用一个或另一个方法的两倍。
在论文“Encryption Modes with Almost Free Message Integrity”中,Jutla提出了两种方法,这两种方法提供了比单独加密或认证需要稍微多一点计算的加密和认证。这些方法具有一般的形式并且将分组密码用作密码核心。在密码界中,这样的方法也被称为“操作模式”。Jutla的操作模式之一,被称为完整性意识可平行模式(IAPM)模式,不在这个文件中讨论。Jutla的另一个操作模式,被称为完整性意识密码块链(IACBC)模式,在图3中示出。IACBC使用两个密钥:K0和K1。假设发送者希望加密和认证含有从P1到Pm-1的(m-1)个消息块的消息。发送者将t设置为等于大于(m+1)的对数(基数为2)的下一个整数。发送者选择一随机值(称为临时或初始值)以加密形成密文块C0。值r+1到r+t被加密以形成值W0到Wt-1,其中所述加密使用密钥K0。值W0到Wt-1接着被用于导出成对的独立值S0到St-1。这些值在这里被称为噪声块。如果均匀地分配给S0,...,Smn位随机数字,其具有以下特性:对于每对Si和Sj,其中i≠j,并且每对n位数常数c1和c2,Si=c1并且Sj=c2的概率是2-2n,那么值S0,...,Sm是成对独立的。对S0到Sm的实际计算与理解IACBC无关并且将不在下面描述。根据以下关系,对于1≤i≤m-1迭代地导出密文块c1到cm-1的值:
Mi =PiNi-1,
Ni =EK1(Mi),
Ci =NiSi,
其中密钥K1被用于每个密码块,并且初始值N0被设置为C0。这些值Mi被称为中间明文块,值Ni被称为中间密文块。发送者接着计算检验和值Pm,定义为:
Pm=P1P2...Pm-1。
通过用密钥K1加密(PmNi-1)和将经加密的结果与S0求异或,从Pm计算出MAC标记值Cm。数学上,该计算可如下表示:
Cm=EK1(PmNi-1)S0。
发送者发送C0...Cm。
假设接收者接收到C’0...C’m。接收者通过首先解密C’0以形成r’来开始解密过程,其中所述解密使用密钥K1。加密值r’+1到r’+t以形成值W’0至W’t-1,其中加密使用密钥K0。接收者接着计算值S’0到S’m。根据以下关系,对于1≤i≤m-1迭代地导出密文块P1到Pm-1的值:
N’i =C’i S’i,
M’i =DK1(N’i),
Pi =N’i-1M’i,
其中密钥K1被用于每个明文块,并且初始值N’0被设置为等于C’0。接收者接着计算检验和值P’m,定义为:
Pm’=P’1P’2...P’m-1。
通过使用密钥K1加密Pm和Nm-1的异或,接着将加密的结果与S’0求异或来计算出值X。数学上,可以如下描述该过程:
X=EK1(P’mN’m-1)S’0。
如果X与C’m相等,那么接收者可以确信精加密的消息的完整性。
Gligor和Donescu在论文“Fast Encryption and Anthenticaion:XCBCEncryption and XEBC Authentication Modes”中提出一相似的模式,称为扩展密文块链模式(XCBC模式),它使用相似的计算量提供加密和认证。XCBC和IACBC的主要区别是噪声块S0到Sm的表示法,其表示法与这个文件无关。
IACBC和XCBC模式的操作具有某些不合需要的特性。第一个不合需要的特性是这些模式需要所有的数据经加密被发送。在诸如IPSec等因特网协议中,发送所有数据都被加密的消息是不希望的。特别是,包含定址信息的头部必须以明文的形式发送。这里所描述的实施例提出了IACBC和XCBC模式的变形(此后称为CBC-IO模式),它允许数据块以明文发送,而只加上少量的处理。
应该注意数据或通信***中的硬件或软件都可以被配置成执行CBC-IO模式的不同实施例。硬件可以包含但不限于:处理元件,实现一组存储在计算机可读媒质上的指令,例如存储器,以执行下述的加密、认证、解密和验证过程。此外,使用位逻辑异或运算符描述了各种组合步骤。实施例的其它实现可以使用取模的整数加法运算来执行,其中两个输入被处理为整数的二进制表示,以这两个整数和的二进制表示构成中间值,通过将中间值截短成密码块的大小来构成输出。也可以适当修改地使用其它群运算符,然而,为了易于说明,这里只描述使用异或操作符的实施例。
CBC-IO模式的一个实施例在图4A中说明。该CBC-IO模式的操作使用两个密钥:K0和K1。假设发送者希望加密和认证由块P1到Pm-1的(m-1)消息组成的消息。
在步骤400处,发送者和接收者对该组明文块以不加密的形式发送达成一致。用U表示要以不加密形式发送的明文块的指数的集合,其中U的元素被称为明码位置。
在步骤402处,发送者选择临时值r并按照IACBC或XCBC模式来计算噪声块S0到Sm,以获取中间密文N0到Nm-1,并获取密文C0到Cm-1。即,N0=C0=Ek1(r),并且根据以下关系,对于1≤i≤m-1反复导出中间密文N0到Nm-1和密文块C1到Cm-1的值:
Mi =PiNi-1,
Ni =EK1(Mi),
Ci =NiSi
注意对每个密文块使用密钥K1。在一个替换实施例中,临时值r可以是一个由发送者和接收者都存储的预定的值,而非一导出的值。
在步骤410处,发送者计算校验和值CHK_IN和CHK_OUT,它们定义如下:
和
CHK_OUT=(i∈U Ci)S0。
在步骤420处,发送者通过用密钥K1加密CHK_IN计算MAC标记Cm,并将结果与CHK_OUT求异或。这个过程在数学上描述如下:
Cm=EK1(CHK_IN)CHK_OUT。
在步骤430处,发送者重新设置那些值Ci,其中i∈U(即,那些会不加密发送的明文),使得Ci=Pi。在步骤440处,发送者发送C0...Cm。
因为通过将信息和上一次加密的输入和输出组合计算出认证标记,这种模式被称为CBC-IO。使用CBC-IO模式生成认证标记的步骤与IACBC的不同在于生成CHK_IN和CHK_OUT的值。由于这个不同,在接收者处的解密和验证过程也必须不同地配置。
图4B是被配置成执行上述CBC-IO模式的硬件的框图。应该注意图4B说明了可以作为软件实现的替换的实现,其中处理器和存储器被配置成执行一组指令,用于执行上述的CBC-IO模式。存储器元件450存储明文块Pi,其中的一些要被加密且其中的全部要被认证。加密元件460A、460B、460C和460D被配置成对这些输入执行加密功能。为了说明起见,在图4B中示出了四个(4)加密元件用于加密明文块,但是本领域的技术人员理解可以实现较多或较少的加密元件而不影响本实施例的范围。
在这个实施例中,到加密块460A、460B、460C和460D的输入是在第一加密元件460A处的临时值r和各自在其相应的其余密文元件处的中间明文块M1到Mm-1。中间明文块M1到Mm-1是将元件462A、462B和462C组合的输出。一方面,组合元件462A、462B和462C是异或门。加密元件460A、460B、460C和460D的输出是中间密文块N0到Nm-1。通过组合元件464A、464B和464C中间密文块N0到Nm-1与相应的噪声块S1到Sm-1组合。组合元件464A、464B和464C的输出是密文块C1到Cm-1。
处理框(或校验和生成器)470被配置成通过使用要以加密形式发送的明文块和上一个中间密文块Nm-1来确定校验和值CHK_IN。处理框(或校验和生成器475)被配置成通过使用第一噪声块S0和对应于要以明文形式发送的明文块的密文块来确定校验和值CHK_OUT。上面已经描述了用于确定CHK_IN和CHK_OUT的公式。接着CHK_IN输入到加密元件480中。接着使用组合器元件490将加密元件480的输出和CHK_OUT组合。组合器元件490的输出是最后一个密文块Cm,它也被用作认证标记。
图5是解密和验证经CBC-IO模式加密和认证的消息的框图。在步骤500处,接收者接收模块C’0...C’m。注意对于i∈U,C’i是不加密发送的。在步骤510处,接收者使用密钥K1来解密C’0以获取r’。值r’和密钥K0被用于导出噪声块S’0到S’m的值。
在步骤520处,对于i,其中1≤i≤m,一迭代过程由是否i∈U的判定开始。如果
那么程序流进入到步骤530。如果i∈U,那么程序流进入到步骤540。在步骤530处,接收者确定中间密文N’i,其中
通过将C’i和S’i求异或以确定中间密文N’i,其中
这在数学上描述如下:
N’i=C’iS’i。
在步骤532处,接收者解码中间密文Ni,其中
M’i=DK1(N’i),
P’i=M’iN’i-1。
程序流进入步骤550。
对于i∈U,在步骤540,接收者确定P’i=C’i,其中i∈U。
在步骤542处,顺次前进经过值i∈U,接收者按照以下关系,将P’i和N’i-1组合以获取M’i:
M’i=P’iN’i-1,
N’i=EK1(M’i)。
程序流进入步骤550。在步骤550处,指数i加1并作出判定是否i>m。如果条件i>m为假,那么程序流回到步骤520处。如果条件i>m为真,那么程序流进入到步骤560,步骤560是验证过程的开始。
应该注意上述为明码位置确定中间密文块和中间明文块的步骤可以互换排序而不影响这些实施例的范围。也应该注意上述步骤可以容易地改变成适用于一组密文位置,而非明码位置,即这些步骤可以关于已被指定为加密的块来描述,而非关于已用明文发送的块。也应该注意在上述步骤中计算出的值被存储以进一步在迭代过程中使用。
接收者现在已解密了所有的密文,但是接收者现在需要验证完整性。为了验证完整性,在步骤560处,接收者首先按照以下关系构成次要密文C* i,其中i∈U:
C* i=N’iS’i,
在步骤570处,接收者计算校验和值CHK_IN’,定义如下:
在步骤580处,接收者计算校验和值CHK_OUT’,定义如下:
CHK_OUT’=(i∈U C* i)S’0。
在步骤590处,通过用密钥K1加密由CHK_IN’计算出值X,并将结果与CHK_OUT’求异或。这个过程在数学上描述如下:
X=EK1(CHK_IN’)CHK_OUT’。
接收者将X和C’m作比较以确定它们是否相等。如果它们是相等的,那么接收者可以确信消息的完整性。如果验证了消息的完整性,该消息是:
P=P1,...,Pm-1。
在替换实施例中,接收者使用替换值作比较。在一个实施例中,认证标记与CHK_OUT组合以构成测试加密输入校验和值。输入校验和值被加密,接着与测试加密输入校验和值作比较。如果测试加密输入校验和值与经加密的输入校验和值是相同的,那么验证了认证标记。在另一个实施例中,认证标记与输出校验和值组合以构成测试加密输入校验和值。该测试加密输入校验和被解密以获取测试输入校验和值;该测试输入校验和值接着与输入校验和值作比较。如果测试输入校验和值与输入校验和值是相同的,那么验证了认证标记。
在另一个替换实施例中,验证步骤560到590可以与解密步骤520到550并行执行。这种并行处理加快了接收者处理来自发送者的经加密和认证的传输的速度。
图6A是被配置成对用上述CBC-IO模式加密的消息执行解密的框图。图6B、6C和6D是被配置成使用上述CBC-IO模式认证的消息执行验证的框图。在图6A中,接受到的块C’0,C’1,...和C’m存储在存储器600中。解密元件610A、610B、610C、610D和610E被配置使用密钥K1执行解密功能,所述密钥K1在密钥协商过程期间在发送者和接收者之间达成一致,这里不讨论该协商过程的详情。到第一解密元件610A的输入是块C’0,它是来自发送者的第一个消息块。第一解密元件610a的输出是r’,它会被用于确定噪声块S’0,S’1,...,S’m-1,这是由这里未示出的硬件配置确定的。
到其它解密元件610B、610C、610D和610E的输入各自在每个相应的解密元件处生成中间密文块N’0到N’m。中间密文块N’1到N’m是通过对所有的
将相应的噪声块S’i和接收到的密文块C’i组合而形成的,其中所述组合是使用组合元件620A、620B、620C和620D,诸如,例如异或门或取模的整数加法器,来执行的。
使用组合元件622A、622B、622C和622D将解密元件610A、610B、610C、610D和610E的输出各自与相关联的中间密文块N’i相组合。组合元件622A、622B、622C和622D的输出是明文块P’i,其中
对于中间密文块N’i的生成,其中i∈U,加密元件630A、630B和630C使用密钥K1来加密前一个中间密文块N’i-1或中间密文块N’i。组合元件624A、624B和624C将前一个中间密文块N’i-1与明文块P’i组合以形成中间明文块M’i,中间明文块M’i是由加密元件630A、630B、630C和630D来加密的。应该注意在确定P’i后(其中 ),可以通过设置P’i=C’i(其中i∈U)可以简单地导出明文块P’i(其中i∈U)。包含了中间密文块Ni的生成,其中i∈U,以允许对于
迭代地确定明文块P’i,并生成第二密文块C*i用于验证。在这个实施例中,用控制线(未示出)实现转换器640A、640B、640C和640D,以利于按照是明码位置还是密文位置处于即时位置之前来选择合适的中间密文块。
输入校验和CHK_IN可以被确认为组合元件(未示出)的输出,所述组合元件将上一个中间密文块N’m和所有明文块P’i的组合(其中
)相结合。输出校验和CHK_OUT可以被确定为组合元件(未示出)的输出,所述组合元件将第一噪声块S’0和所有次要密文C* i的组合相结合,次要密文C* i的每一个被定义为相应的中间密文块N’i和相应的噪声块S’i的组合。次要密文块C* i是图6A中组合元件645A、645B和645C的输出。
图6B示出了验证认证标记的一个实施例。CHK_IN值被输入到加密元件650中。加密元件650的输出与CHK_OUT值在组合元件655处组合。接着,在比较元件657处将组合元件655的输出与接受到的块C’m作比较,所述块C’m是认证标记。图6C是验证认证标记的另一个实施例。CHK_IN值被输入到加密元件660中。在组合元件665处,将认证标记C’m与CHK_OUT值组合。在比较元件667处,将组合元件665的输出与加密元件660的输出作比较,以验证认证标记。图6D是验证认证标记的另一个实施例。在组合元件670处,将认证标记C’m与CHK_OUT值组合。组合元件670的输出被输入到解密元件675中。接着,在比较元件677处,将解密元件675的输出与CHK_IN值作比较。如果任一的比较显示匹配,那么就验证了认证标记C’m。
当接收者试图解密消息时,攻击者会使得接收者使用错误的明码位置组。为了防止这种类型的攻击,发送者和接收者必须使用其它的方法来验证应用到特定密文消息的明码位置。对这个问题有简单的解决方案。一个解决方案是对那些位置是明码位置有标准的协议。另一种方法是在数据块中包含明码位置集合U的表示,这样使得对密文的验证包含对明码位置集合的验证。
在检验和中包含值Ci,其中
构成了CBC-IO模式操作和由Jutla和Gligor和Donescu提出的模式操作之间的区别。注意在计算密文和认证标记时,CBC-IO使用分组密码加密。然而,在一些或全部的分组密码加密操作之处使用分组密码解密是同等有效的。这会导致在解密和消息完整性期间从分组密码解密到分组密码加密(反之亦然)的改变。
在CBC-IO模式中,如果基层的分组密码是安全的,那么加密和认证功能是安全的。本领域中对于短语“the encryption and authentication functions aresecure”“加密和认证功能呈安全的”什么意思有正式的表示法,然而这些正式的表达法与本发明的主题无关并不会在这里讨论。本领域的技术人员会熟悉短语“theencryption and authentication functions are secure”的意思。
虽然这里的实施例是基于AES分组密码关于CBC-IO模式描述的,这些实施例也可以应用到基于其它分组密码来构建CBC-IO模式。注意发送者可以选择发送Pi或Ci,这不会危害认证。这里所述的实施例允许一方发送经加密的或未经加密的块而不危害认证方案的安全性。如果Pi以明文发送,那么Pi的加密版本仍然是安全和不可预测的,并且可以被用作安全认证。
通常的做法是当使用认证模式时,仅将MAC定义并最终块的一部分。也可以改变本发明,这样使得只有一部分最终块作为MAC发送。
本领域的技术人员可以理解,信息和信号可以用多种不同技术和工艺中的任一种来表示。例如,上述说明中可能涉及的数据、指令、命令、信息、信号、比特、码元和码片可以用电压、电流、电磁波、磁场或其粒子、光场或其粒子或它们的任意组合来表示。
本领域的技术人员能进一步理解,结合这里所公开的实施例所描述的各种说明性的逻辑框、模块、电路和算法步骤可以为电子硬件、计算机软件或两者的组合来实现。为了清楚说明硬件和软件间的互换性,各种说明性的组件、框图、模块、电路和步骤一般按照其功能性进行了阐述。这些功能性究竟作为硬件还是软件来实现取决于特定的应用对总体***设计上的约束。熟练的技术人员可能对于每个特定应用不同的方式来实现所述功能,但这种实现决定不应被解释为就此背离本发明的范围。
结合这里所描述的实施例来描述的各种说明性的逻辑框、模块和算法步骤的实现或执行可以用:通用处理器、数字信号处理器(DSP)、之用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件或者为执行这里所述功能而设计的任意组合。通用处理器可能是微处理器,然而或者,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以用计算设备的组合来实现,如,DSP和微处理器的组合、多个微处理器、结合DSP内核的一个或多个微处理器或者任意其它这种配置。
结合这里所公开实施例描述的方法或算法的步骤可能直接包含在硬件中、由处理器执行的软件模块中或在两者当中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或本领域中已知的任何其它形式的存储媒质中。示例性存储媒质与处理器耦合,使得处理器可以从存储媒质读取信息,或把信息写入存储媒质。或者,存储媒质可以与处理器整合。处理器和存储媒质可能驻留在ASIC中。ASIC可能驻留在用户终端中。或者,处理器和存储媒质可能作为离散组件驻留在用户终端中。
提供上述优选实施例的描述为了使本领域的技术人员能制造或使用本发明。这些实施例的各种修改对于本领域的技术人员来说是显而易见的,这里定义的总的原则可以被应用于其它实施例中而不使用创造能力。因此,本发明并不要限于这里示出的实施例,而要符合与这里揭示的原理和新颖特征一致的最宽泛的范围。
Claims (22)
1.作为单个实体加密和验证数据的方法,所述方法包含:
将数据排列或多个明文块,根据密码块大小来定每个明文块的大小;
指定至少一个明码位置,对于此位置至少一个密文块会与相应的明文块相同;
使用临时值和第一密钥确定多个噪声块;
确定多个中间密文块,其中所述第一中间密文块对应于经加密的临时值,通过用第二密钥加密多个中间明文块迭代地计算出其余的中间密文,其中每个中间明文块是多个明文块之一和前一中间密文块的组合;
使用多个中间密文块和所述多个噪声块确定多个密文块,其中所述所述第一密文块与所述第一中间密文块相同,且通过将相应的中间密文块和相应的噪声块相组合导出其余的密文块;
基于多个明文块和对应于上一明文块的中间密文块计算输入校验和值;
基于多个密文块和一个噪声块计算输出校验和值;
通过用所述第二密钥加密输入校验和值并将经加密的输入校验和值和输出校验和值相组合来计算认证标记;
用相应的明文块来替代由明码位置指定的多个密文块的每一个;以及
附加所述认证标记。
2.如权利要求1所述的方法,其特征在于,其中所述加密使用分组密码加密。
3.如权利要求1所述的方法,其特征在于,其中所述加密包含:
选择应用分组密码加密或分组密码解密;
根据一组预定义的选择规则来选择分组密码以供使用;以及
通过将所选择的分组密码加密或分组密码解密应用到与前一中间密文块组合的多个明文块之一,形成多个中间密文块。
4.如权利要求1所述的方法,其特征在于,其中所述的计算输入校验和值包含:
将对应于不被指定为至少一个明码位置的一个位置的所有多个明文块组合;以及
将上一个噪声块和经组合的多个明文块相组合。
5.如权利要求1所述的方法,其特征在于,其中所述计算输出校验和值包含;
将对应于至少一个明码位置的所有多个密文块相组合;以及
将第一噪声块与经组合的多个密文块相组合。
6.如权利要求1所述的方法,其特征在于,其中组合是使用位异或操作来执行的。
7.如权利要求1所述的方法,其特征在于,其中组合是使用组群运算来执行的。
8.如权利要求7所述的方法,其特征在于,其中所述群运算符是取模整数加法运算符。
9.用于解密和验证伴有认证标记的多个数据块的方法,其中定义了一组明码位置,所述方法包含:
使用临时值和第一密钥来确定多个噪声块;
将多个不是由明码位置集中的明码位置指定的数据块的每个与相应的噪声块组合以确定多个中间密文块;
将由明码位置集中的一个明码位置指定的多个数据块的每个指定为多个明文块中的一个明文块;
对于明码位置集中的每个明码位置,将相应的明文块与前一中间密文块组合以形成中间明文块并加密所述中间明文块以形成对应于所述明码位置的中间密文块;
对于不在明码位置集中的每个位置,解密相应的中间密文块以形成相关联的中间明文块,并将相关联的中间明文块与前一中间密文块组合以为不在明码位置集中的每个位置形成明文块;
确定多个次要密文块,其中多个次要密文块中的每个对应于明码位置集中的明码位置,并且是通过将相应的中间密文块和相应的噪声块相组合来形成的;
通过将上一个中间密文块和不是由明码位置集中的一个明码位置指定的多个数据块组合来计算输入校验和值;
通过将噪声块和多个次要密文块相组合来计算输出校验和值;以及
验证所述认证标记。
10.如权利要求9所述的方法,其特征在于,其中验证认证标记包含:
通过用第二密钥加密输入校验和值,并将经加密的输入校验和值与输出校验和值结组来计算测试认证标记;以及
将测试认证标记和认证标记相比较,其中如果测试认证标记和认证标记是相同的,那么就验证了所述认证标记。
11.如权利要求9所述的方法,其特征在于,其中验证认证标记包含:
将认证标记和所述输出校验和值组合以形成测试加密输入校验和值;
加密所述输入校验和值;以及
将测试加密输入校验和值和加密输入校验和值作比较,其中如果测试加密输入校验和值和加密输入校验和值是相同的,那么就验证了所述认证标记。
12.如权利要求9所述的方法,其特征在于,其中验证认证标记包含:
将认证标记和所述输出校验和值相组合以构成测试加密输入校验和值;
解密测试加密输入校验和值以获取测试输入校验和值;以及
将测试输入校验和值与输入校验和值作比较,其中如果测试输入校验和值和输入校验值是相同的,那么就验证了所述认证标记。
13.用于加密和认证数据的装置,所述装置包含:
至少一个存储器元件;以及
至少一个处理元件,被配置成执行一组存储在存储器元件中的指令,所述指令组用于:
将数据排列成多个明文块,根据密码块大小来定每个明文块的大小;
指定至少一个明码位置,对此位置至少一个密文块会与相应的明文块相同;
使用临时值和第一密钥确定多个噪声块;
确定多个中间密文块,其中所述第一中间密文块对应于经加密的临时值,通过用第二密钥加密多个中间明文块迭代地计算出其余的中间密文,其中每个中间明文块是多个明文块之一和前一中间密文块的组合;
使用多个中间密文块和所述多个噪声块确定多个密文块,其中所述第一密文块与所述第一中间密文块相同,且通过将相应的中间密文块和相应的噪声块相组合导出其余的密文块;
基于多个明文块和对应于上一明文块的中间密文块计算输入校验和值;
基于多个密文块和一个噪声块计算输出校验和值;
通过用所述第二密钥加密输入校验和值并将经加密的输入校验和值和输出校验和值相组合来计算认证标记;
用相应的明文块来替代由一明码位置指定的多个密文块的每一个;以及
附加所述认证标记。
14.用于加密和认证数据的装置,所述装置包含:
至少一个存储器元件;以及
至少一个处理元件,被配置成执行一组存储在存储器元件中的指令,所述指令组用于:
使用临时值和第一密钥来确定多个噪声块;
将多个不是由明码位置集中的一个明码位置指定的数据块的每个与相应的噪声块组合以确定多个中间密文块;
将由明码位置集中的一个明码位置指定的多个数据块的每个指定为多个明文块中的明文块;
对于明码位置集中的每个明码位置,将相应的明文块与前一中间密文块组合以形成中间明文块并加密所述中间明文块以形成对应于所述明码位置的中间密文块;
对于不在明码位置集中的每个位置,解密相应的中间密文块以形成相关联的中间明文块,并将相关联的中间明文块与前一中间密文块组合以为不在明码位置集中的每个位置形成明文块;
确定多个次要密文块,其中多个次要密文块中的每个对应于明码位置集中的明码位置,并且是通过将相应的中间密文块和相应的噪声块相结合来形成的;
通过将上一个中间密文块和不是由明码位置集中明码位置指定的多个数据块组合来计算输入校验和值;
通过将噪声块和多个次要密文块相结合来计算输出校验和值;以及
验证所述认证标记。
15.用于作为单个实体加密和认证数据的方法,所述方法包含:
指定一组明码位置和一组密文位置,其中所述该组明码位置用于指示在明码位置中的块是未加密的,而该组密文位置用于指示在密文位置中的块是加密的;
如果数据块在明码位置中,那么:
设置明文块等于所述数据块;
将明文块与前一中间密文块求异或以构成中间明文块;
加密中间明文块以形成中间密文块;
如果数据块在密文位置中,那么:
将数据块与对应于来自一组序列的数据块的序列求异或以形成相应的中间密文块;
解密相应的中间密文块以形成中间明文块;以及
将中间明文块与前一中间密文块求异或以构成明文块;
使用所有中间块计算认证标记;
使用认证标记、来自所述序列组的第一序列和来自所述序列组的上一序列计算上一密文块;以及
发送所述密文块和所述认证标记。
16.用于安全数据传输的方法,其中第一部分的数据传输作为明文发送,第二部分的数据传输作为密文发送,且所有的数据传输是认证的,所述的方法包含:
生成一组明码位置;
将所述第一部分的数据传输和所述第二部分的数据传输加密为密文,其中所述第一部分的数据传输由该组明码位置指定,且第二部分的数据传输不与该组明码位置组中任何一个相关联;
使用不与该组明码位置中任何一个相关联的数据传输来生成输入校验和值;
使用所述第一部分的数据传输的密文生成输出校验和值;
使用所述输入校验和值和输出校验和值生成认证标记;以及
发送所述明文、密文和认证标记,其中所述明文是由该组明码位置指定的数据传输的第一部分。
17.用于解密和验证多个接收到的传输块的方法,所述方法包含:
确定多个接收到的传输块的每一个是否是由来自一组明码位置的一个明码位置所指定的;
解密多个接收到的传输块,所述的解密包含;
如果不是由明码位置指定的,那么生成一组中间密文块、解密该组中间密文块以生成一组中间明文块,并生成一组明文块;
如果是由明码位置指定的,那么将由明码位置指定的多个接收到的传输块的每一个与前一中间密文块组合以形成中间明文块,并加密该中间明文块以获取中间密文块;以及
验证多个接收到的传输块,所述验证包含:
使用不是由明码位置指定的该组明文块形成输入校验和值;
使用一组次要密文块构成输出校验和值,其中所述次要密文块是从不与明码位置相关联的一组中间密文块导出的;以及
使用所述输入校验和值和所述输出校验和值用于与所述认证标记作比较。
18.如权利要求9所述的方法,其特征在于,其中所述解密是与所述验证江行执行的。
19.用于加密和认证数据的装置,所述装置包含:
至少一个存储器元件,用于存储一组明文块;
至少一个组合元件,用于组合输入块;
至少一个加密元件,用于对输入执行加密功能;
至少一个选择元件,用于选择明文块或密文块在传输流中的指定位置上传输;
至少两个校验和生成器;以及
至少一个处理元件,其中所述至少一个处理是用于控制所述至少一个存储器元件、所述至少一个组合元件、所述至少一个加密元件、所述至少两个检验和生成器和至少一个选择元件,使得:
所述至少一个组合元件的第一部分是用于将明文块与前一阶段的中间密文块相结合以输出中间明文块,所述至少一个加密元件的第一部分是用于从所述中间明文块生成当前阶段的中间密文块,所述至少一个组合元件的第二部分是用于从将当前状态的密文块与噪声块相组合输出密文块,所述第一校验和生成器是用于从一组指定的明文块输出第一校验和,至少一个加密元件的第二部分是用于加密所述第一校验和,所述第二校验和生成器是用于从一组指定的密文块输出第二校验和,以及至少一个组合元件的第三部分是用于将经加密的第一校验和与所述第二校验和相结合以构成认证标记。
20.用于解密和验证数据的装置,所述装置包含:
至少一个存储器元件,用于存储一组数据传输块;
至少一个组合元件,用于组合输入块;
至少一个加密元件,用于对输入执行第一加密功能;
至少一个解密元件,用于对输入执行第二加密功能,其中所述第二加密功能是所述第一加密功能的相反;
至少一个转换元件,用于从至少一个加密元件选择一输出或从至少一个组合元件选择一输出;
至少两个校验和生成器,用于基于所指定的明文块组生成输入校验和以及基于次要密文块组生成输出校验和;以及
至少一个处理元件,其中所述至少一个处理是用于控制所述至少一个存储器元件、所述至少一个组合元件、所述至少一个加密元件、所述至少一个解密元件、所述至少两个检验和生成器和至少一个转换元件,使得:
所述至少一个组合元件的第一部分是用于将数据传输块与噪声块相组合以构成中间密文块,所述至少一个解密元件是用于解密所述中间密文块以形成中间明文块,所述至少一个组合元件的第二部分是用于将所述中间明文块与前一阶段的中间密文块相结合以形成明文块,所述至少一个组合元件的第三部分是用于将所述数据传输块与前一阶段的中间密文块相组合以形成第二中间明文块,所述至少一个加密元件是用于加密所述第二中间明文块以构成第二中间密文块,所述至少一个转换元件是用于选择所述第一中间密文块或所述第二中间密文块,以及所述至少一个组合元件的第二部分是用于将所述噪声块与所述第二中间密文块相组合以形成次要密文块。
21.用于安全数据传输的装置,其中第一部分的数据传输作为明文发送,第二部分的数据传输作为密文发送,且所有的数据传输是认证的,所述的方法包含:
生成一组明码位置的装置;
将所述第一部分的数据传输和所述第二部分的数据传输加密为密文的装置,其中所述第一部分的数据传输由该组明码位置指定,且第二部分的数据传输不与该组明码位置组中任何一个相关联;
使用不与该组明码位置中任何一个相关联的数据传输来生成输入校验和值的装置;
使用所述第一部分的数据传输的密文生成输出校验和值的装置;
使用所述输入校验和值和输出校验和值生成认证标记的装置;以及
发送所述明文、密文和认证标记的装置,其中所述明文是由该组明码位置指定的数据传输的第一部分。
22.用于解密和验证多个接收到的传输块的装置,所述方法包含:
确定多个接收到的传输块的每一个是否是由来自一组明码位置的一个明码位置所指定的装置;
解密多个接收到的传输块的装置,所述的解密包含;
如果不是由明码位置指定的,那么生成一组中间密文块、解密该组中间密文块以生成一组中间明文块,并生成一组明文块;
如果是由明码位置指定的,那么将由明码位置指定的多个接收到的传输块的每一个与前一中间密文块组合以形成中间明文块,并加密该中间明文块以获取中间密文块;以及
验证多个接收到的传输块的装置,所述验证是通过:使用不是由明码位置指定的该组明文块形成输入校验和值,使用一组次要密文块形成输出校验和值,其中所述次要密文块是从不与明码位置相关联的一组中间密文块导出的;以及使用所述输入校验和值和所述输出校验和值用于与所述认证标记作比较。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/205,132 | 2002-07-24 | ||
US10/205,132 US6950517B2 (en) | 2002-07-24 | 2002-07-24 | Efficient encryption and authentication for data processing systems |
PCT/US2003/023562 WO2004038975A2 (en) | 2002-07-24 | 2003-07-24 | Efficient encryption and authentication for data processing systems |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010298229XA Division CN101938499B (zh) | 2002-07-24 | 2003-07-24 | 用于数据处理***的有效加密和认证 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1682479A true CN1682479A (zh) | 2005-10-12 |
CN1682479B CN1682479B (zh) | 2013-07-17 |
Family
ID=30770000
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN038224305A Expired - Fee Related CN1682479B (zh) | 2002-07-24 | 2003-07-24 | 用于数据处理***的加密和认证/解密和验证的方法和设备 |
CN201010298229XA Expired - Fee Related CN101938499B (zh) | 2002-07-24 | 2003-07-24 | 用于数据处理***的有效加密和认证 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010298229XA Expired - Fee Related CN101938499B (zh) | 2002-07-24 | 2003-07-24 | 用于数据处理***的有效加密和认证 |
Country Status (11)
Country | Link |
---|---|
US (1) | US6950517B2 (zh) |
EP (1) | EP1529365B1 (zh) |
JP (1) | JP2006502451A (zh) |
KR (1) | KR20050027254A (zh) |
CN (2) | CN1682479B (zh) |
AT (1) | ATE405050T1 (zh) |
AU (1) | AU2003296888B2 (zh) |
CA (1) | CA2493569A1 (zh) |
DE (1) | DE60322909D1 (zh) |
RU (1) | RU2340108C2 (zh) |
WO (1) | WO2004038975A2 (zh) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2428946C (en) * | 2000-11-14 | 2010-06-22 | Scientific-Atlanta, Inc. | Networked subscriber television distribution |
US8127326B2 (en) * | 2000-11-14 | 2012-02-28 | Claussen Paul J | Proximity detection using wireless connectivity in a communications system |
CA2438599C (en) * | 2001-02-26 | 2011-09-20 | Nagravision S.A. | Encryption of a compressed video stream |
US20030192047A1 (en) * | 2002-03-22 | 2003-10-09 | Gaul Michael A. | Exporting data from a digital home communication terminal to a client device |
AUPS169002A0 (en) * | 2002-04-11 | 2002-05-16 | Tune, Andrew Dominic | An information storage system |
US20050271246A1 (en) * | 2002-07-10 | 2005-12-08 | Sharma Ravi K | Watermark payload encryption methods and systems |
US7305084B2 (en) * | 2002-07-24 | 2007-12-04 | Qualcomm Incorporated | Fast encryption and authentication for data processing systems |
US6948067B2 (en) | 2002-07-24 | 2005-09-20 | Qualcomm, Inc. | Efficient encryption and authentication for data processing systems |
US7254233B2 (en) * | 2002-07-24 | 2007-08-07 | Qualcomm Incorporated | Fast encryption and authentication for data processing systems |
US7516470B2 (en) * | 2002-08-02 | 2009-04-07 | Cisco Technology, Inc. | Locally-updated interactive program guide |
US20040068752A1 (en) * | 2002-10-02 | 2004-04-08 | Parker Leslie T. | Systems and methods for providing television signals to multiple televisions located at a customer premises |
US20040068754A1 (en) * | 2002-10-02 | 2004-04-08 | Russ Samuel H. | Expandable tuning capability |
US7908625B2 (en) * | 2002-10-02 | 2011-03-15 | Robertson Neil C | Networked multimedia system |
US20040133911A1 (en) * | 2002-10-04 | 2004-07-08 | Russ Samuel H. | Subscriber network in a satellite system |
US7360235B2 (en) * | 2002-10-04 | 2008-04-15 | Scientific-Atlanta, Inc. | Systems and methods for operating a peripheral record/playback device in a networked multimedia system |
US8046806B2 (en) | 2002-10-04 | 2011-10-25 | Wall William E | Multiroom point of deployment module |
US7545935B2 (en) * | 2002-10-04 | 2009-06-09 | Scientific-Atlanta, Inc. | Networked multimedia overlay system |
US20040083360A1 (en) * | 2002-10-28 | 2004-04-29 | Rod Walsh | System and method for partially-encrypted data transmission and reception |
JP2004157892A (ja) * | 2002-11-08 | 2004-06-03 | Hitachi Ltd | 計算機システム、記憶装置、アクセス管理方法及びプログラム |
US8094640B2 (en) | 2003-01-15 | 2012-01-10 | Robertson Neil C | Full duplex wideband communications system for a local coaxial network |
US7454443B2 (en) * | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
US7321659B2 (en) * | 2003-10-01 | 2008-01-22 | International Business Machines Corporation | Simple universal hash for plaintext aware encryption |
US7545928B1 (en) | 2003-12-08 | 2009-06-09 | Advanced Micro Devices, Inc. | Triple DES critical timing path improvement |
US7580519B1 (en) | 2003-12-08 | 2009-08-25 | Advanced Micro Devices, Inc. | Triple DES gigabit/s performance using single DES engine |
WO2005091547A2 (en) * | 2004-03-18 | 2005-09-29 | Digimarc Corporation | Watermark payload encryption methods and systems |
US8127137B2 (en) * | 2004-03-18 | 2012-02-28 | Digimarc Corporation | Watermark payload encryption for media including multiple watermarks |
US8977859B2 (en) * | 2004-05-04 | 2015-03-10 | Elsevier, Inc. | Systems and methods for data compression and decompression |
GB2414834A (en) * | 2004-06-03 | 2005-12-07 | Mdl Information Systems Inc | Visual programming with automated features |
US7885405B1 (en) * | 2004-06-04 | 2011-02-08 | GlobalFoundries, Inc. | Multi-gigabit per second concurrent encryption in block cipher modes |
US7526085B1 (en) | 2004-07-13 | 2009-04-28 | Advanced Micro Devices, Inc. | Throughput and latency of inbound and outbound IPsec processing |
US7783037B1 (en) | 2004-09-20 | 2010-08-24 | Globalfoundries Inc. | Multi-gigabit per second computing of the rijndael inverse cipher |
US20060117354A1 (en) * | 2004-11-29 | 2006-06-01 | Mark Schutte | Consolidating video-on-demand (VOD) services with multi-room personal video recording (MR-PVR) services |
US20060225105A1 (en) * | 2005-04-05 | 2006-10-05 | Scientific-Atlanta, Inc. | Networked multi-room system ad insertion |
US8677123B1 (en) | 2005-05-26 | 2014-03-18 | Trustwave Holdings, Inc. | Method for accelerating security and management operations on data segments |
US7876998B2 (en) | 2005-10-05 | 2011-01-25 | Wall William E | DVD playback over multi-room by copying to HDD |
KR100713370B1 (ko) | 2006-03-10 | 2007-05-04 | 텔레캅서비스 주식회사 | 무선센서 네트워크를 이용한 무인경비 시스템의 보안방법 |
JP4810289B2 (ja) * | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
US8356178B2 (en) * | 2006-11-13 | 2013-01-15 | Seagate Technology Llc | Method and apparatus for authenticated data storage |
US8538012B2 (en) * | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
KR101363519B1 (ko) * | 2007-11-12 | 2014-02-17 | 삼성전자주식회사 | 통신 단말기 및 그의 정보 보안 방법 |
US10447657B2 (en) * | 2008-08-22 | 2019-10-15 | Qualcomm Incorporated | Method and apparatus for transmitting and receiving secure and non-secure data |
JP5500923B2 (ja) * | 2008-11-27 | 2014-05-21 | キヤノン株式会社 | 情報処理装置 |
RU2446449C2 (ru) * | 2010-06-23 | 2012-03-27 | Федеральное государственное военное образовательное учреждение высшего профессионального образования Военная академия Ракетных войск стратегического назначения имени Петра Великого МО РФ | Генератор биективных криптографических математических функций |
US9626373B2 (en) | 2012-10-01 | 2017-04-18 | Western Digital Technologies, Inc. | Optimizing data block size for deduplication |
WO2014084886A1 (en) * | 2012-11-29 | 2014-06-05 | Blackberry Limited | Authenticated encryption method using working blocks |
RU2546614C1 (ru) * | 2013-09-26 | 2015-04-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Пензенский государственный университет" (ФГБОУ ВПО "Пензенский государственный университет") | Способ маскирования аналоговых речевых сигналов |
CN104219027A (zh) * | 2014-09-05 | 2014-12-17 | 四川长虹电器股份有限公司 | 纠正文件传输错误的分布式文件安全存储***及其方法 |
US9806887B1 (en) * | 2014-09-23 | 2017-10-31 | Amazon Technologies, Inc. | Authenticating nonces prior to encrypting and decrypting cryptographic keys |
FR3028697B1 (fr) * | 2014-11-14 | 2018-06-29 | Oberthur Technologies | Amelioration de l'integrite authentique de donnees a l'aide du dernier bloc chiffrant ces donnees en mode cbc |
KR102628466B1 (ko) * | 2014-12-03 | 2024-01-23 | 나그라비젼 에스에이알엘 | 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 |
CN105184187A (zh) * | 2015-08-18 | 2015-12-23 | 重庆大学 | 一种计算机存储器的加密方法和解密方法 |
US10354065B2 (en) | 2015-10-27 | 2019-07-16 | Infineon Technologies Ag | Method for protecting data and data processing device |
US11372964B2 (en) * | 2016-07-25 | 2022-06-28 | Apple Inc. | System for and method of authenticating a component of an electronic device |
JP7189868B2 (ja) | 2016-10-14 | 2022-12-14 | アウロ テクノロジーズ エンフェー. | 改変されたペイロードチェックサムを用いてペイロードをスクランブルすることによって、誤同期を回避する記録デバイス及び再生デバイス |
US11063758B1 (en) * | 2016-11-01 | 2021-07-13 | F5 Networks, Inc. | Methods for facilitating cipher selection and devices thereof |
US11463235B2 (en) * | 2018-02-21 | 2022-10-04 | Nec Corporation | Encryption device, encryption method, program, decryption device, and decryption method |
US10922439B2 (en) * | 2018-06-29 | 2021-02-16 | Intel Corporation | Technologies for verifying memory integrity across multiple memory regions |
DE102019216203A1 (de) * | 2019-10-21 | 2021-04-22 | Infineon Technologies Ag | Auf Blockverschlüsselung basierender Proof-of-Work |
US11436342B2 (en) | 2019-12-26 | 2022-09-06 | Intel Corporation | TDX islands with self-contained scope enabling TDX KeyID scaling |
US20210089388A1 (en) * | 2020-07-14 | 2021-03-25 | Intel Corporation | System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4918728A (en) * | 1989-08-30 | 1990-04-17 | International Business Machines Corporation | Data cryptography operations using control vectors |
JPH06161353A (ja) * | 1992-11-25 | 1994-06-07 | Matsushita Electric Ind Co Ltd | 暗号化装置 |
US5757913A (en) * | 1993-04-23 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for data authentication in a data communication environment |
CA2162125C (en) * | 1993-05-05 | 2005-09-20 | Zunquan Liu | A repertoire of mappings for a cryptosystem |
ATE270804T1 (de) * | 1998-07-13 | 2004-07-15 | Ibm | Verfahren zur übertragung von informationsdaten von einem sender zu einem empfänger über einen transcoder |
JP3396693B2 (ja) * | 1998-07-16 | 2003-04-14 | リコーシステム開発株式会社 | 暗号化/復号化装置と公開鍵暗号化システム |
FR2782431B1 (fr) * | 1998-08-17 | 2000-09-29 | Gemplus Sca | Procede et dispositif d'authentification a algorithme symetrique |
AU2001249511A1 (en) * | 2000-03-31 | 2001-10-15 | Vdg Inc. | Authentication method and schemes for data integrity protection |
US7046802B2 (en) * | 2000-10-12 | 2006-05-16 | Rogaway Phillip W | Method and apparatus for facilitating efficient authenticated encryption |
-
2002
- 2002-07-24 US US10/205,132 patent/US6950517B2/en not_active Expired - Fee Related
-
2003
- 2003-07-24 JP JP2004546694A patent/JP2006502451A/ja active Pending
- 2003-07-24 AU AU2003296888A patent/AU2003296888B2/en not_active Ceased
- 2003-07-24 CN CN038224305A patent/CN1682479B/zh not_active Expired - Fee Related
- 2003-07-24 WO PCT/US2003/023562 patent/WO2004038975A2/en active Application Filing
- 2003-07-24 AT AT03809499T patent/ATE405050T1/de not_active IP Right Cessation
- 2003-07-24 DE DE60322909T patent/DE60322909D1/de not_active Expired - Lifetime
- 2003-07-24 KR KR1020057001143A patent/KR20050027254A/ko active IP Right Grant
- 2003-07-24 CA CA002493569A patent/CA2493569A1/en not_active Abandoned
- 2003-07-24 CN CN201010298229XA patent/CN101938499B/zh not_active Expired - Fee Related
- 2003-07-24 EP EP03809499A patent/EP1529365B1/en not_active Expired - Lifetime
- 2003-07-24 RU RU2005104945/09A patent/RU2340108C2/ru not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2004038975A2 (en) | 2004-05-06 |
EP1529365B1 (en) | 2008-08-13 |
JP2006502451A (ja) | 2006-01-19 |
CA2493569A1 (en) | 2004-05-06 |
RU2005104945A (ru) | 2005-07-20 |
WO2004038975A3 (en) | 2004-12-02 |
EP1529365A2 (en) | 2005-05-11 |
EP1529365A4 (en) | 2006-05-10 |
CN101938499B (zh) | 2012-08-29 |
US6950517B2 (en) | 2005-09-27 |
AU2003296888A1 (en) | 2004-05-13 |
AU2003296888B2 (en) | 2008-08-28 |
KR20050027254A (ko) | 2005-03-18 |
DE60322909D1 (de) | 2008-09-25 |
RU2340108C2 (ru) | 2008-11-27 |
CN1682479B (zh) | 2013-07-17 |
US20040017913A1 (en) | 2004-01-29 |
ATE405050T1 (de) | 2008-08-15 |
CN101938499A (zh) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1682479A (zh) | 用于数据处理***的有效加密和认证 | |
CN100576789C (zh) | 用于数据处理***的有效加密和认证 | |
US8126139B2 (en) | Partial encryption and full authentication of message blocks | |
US7305084B2 (en) | Fast encryption and authentication for data processing systems | |
CN101202623B (zh) | 消息验证码产生方法、验证/加密和验证/解密方法 | |
EP3476078B1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
CN1729647A (zh) | 生成和/或使用附条件电子签名以报告状态变化的方法、装置以及计算机程序 | |
US7254233B2 (en) | Fast encryption and authentication for data processing systems | |
CN1801693A (zh) | 分组加密算法中对短分组的处理方法 | |
US20210165914A1 (en) | Cryptographic method for verifying data | |
US20200351100A1 (en) | Cryptographic method for verifying data | |
CN111314050A (zh) | 一种加解密方法及装置 | |
Kasodhan et al. | A new approach of digital signature verification based on BioGamal algorithm | |
Housley | Cryptographic message syntax (cms) authenticated-enveloped-data content type | |
CN113347153A (zh) | 一种结合身份认证和动态密钥的文件加密传输方法 | |
Turner | Algorithms for Asymmetric Key Package Content Type | |
Gohel | Introduction to Network & Cybersecurity | |
KR20050023447A (ko) | 데이터 처리 시스템을 위한 효율적인 암호화 및 인증 | |
CN111654376A (zh) | 基于环签名的区块链匿名数据传输的方法及装置 | |
Gupta et al. | A fail-fast mechanism for authenticated encryption schemes | |
CN117254919A (zh) | 一种基于区块链的Ed25519算法的公私钥对加解密方法 | |
Housley | RFC 5083: Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Data Content Type | |
JP2003333034A (ja) | 認証付暗号方法及び装置及び認証付暗号プログラム及び認証付暗号プログラムを格納した記憶媒体及び認証付復号方法及び装置及び認証付復号プログラム及び認証付復号プログラムを格納した記憶媒体 | |
Bernales et al. | A hybrid encryption system with a Token device to avoid leak of information in corporate email | |
Kyi et al. | Implementation of E-mail Security System Using NTRU Cryptosystem and SHA-1 Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1081019 Country of ref document: HK |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1081019 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130717 Termination date: 20180724 |
|
CF01 | Termination of patent right due to non-payment of annual fee |