对消息加密的方法以及对消息解密的方法

文档序号:7682667阅读:200来源:国知局
专利名称:对消息加密的方法以及对消息解密的方法
技术领域
根据本发明的方法和设备涉及对消息进行加密,更具体地讲,涉及为了 保持消息完整性而对消息进行加密。
背景技术
近来,加密算法已被广泛用于保护数据。通常,加密算法被用于保证安 全、完整性和认证。
所述安全表示仅预定的个体能够使用数据。完整性表示处理数据时数据 是否被更改。认证表示数据是由谁产生的。
为了保证数据的安全,加密算法已被广泛使用。为了保证数据的完整性, 可使用哈希算法、消息认证码(MAC)以及数字签名。为了保证认证,可使 用MAC或数字签名。为了保证安全、完整性和认证,可使用上述方法的组 合。
例如,为了保证消息M的安全和完整性,如等式l所示,可使用通过使 用MAC、哈希函数等处理的数据。 [等式l]
Ek[M], MACk(M) Ek[M], MACk(Ek[M]) Ek[M, H(M)]
即,通过4吏用私钥K对消息M进行加密、计算消息M的MAC、并组合 加密的消息Ek[M]和作为消息M的MAC的MACk(M)来获得等式1的第一数据。
此外,通过^f吏用私钥K对消息M进^f于加密、计算加密的消息Ek[M]的MAC、并组合加密的消息Ek[M]和作为加密的消息Ek[M]的MAC的 MACk(Ek[M]来获得等式1的第二数据。
最后,通过使用私钥K对消息M和消息M的哈希值H (M)进行加密来 获得第三数据。
通过构造等式1所示的发送的数据可以保证数据的安全和完整性。即, 由于仅具有私钥K的用户可通过使用私钥K对加密的数据解密来提取消息 M,因此可实现数据的安全。此外,可根据MAC和哈希函数的特性(沖突避 免(collosion free ))来保证数据的完整性。
然而,在上述现有技术的加密方法中,当攻击者通过故意忽略检查是否 保持发送的数据的完整性的过程来攻击数据时,不可能保护数据免受攻击。
此外,在现有技术中,为了安全地删除完整性被破坏的数据,使用0或 l多次(例如,7次)重写数据。然而,当安全性被破坏的数据大小非常大时 或者当所述数据的量非常多时,重写过程可能使系统过载。在此情况下,不 能有效地执行重写过程。

发明内容
本发明提供一种用于保持消息的完整性的对消息进行加密的方法和设 备,所述方法和设备能够避免完整性被破坏的加密的消息被重用。
根据本发明的一方面,提供一种用于保持消息的完整性的加密设备对消 息进行加密的方法,所述方法包括产生随机数,并通过使用所述随机数对 所述消息进行加密来产生第一密文;计算第一密文的"^合希值,并通过使用第 一密文的哈希值和预定的共享密钥产生加密密钥;通过使用所述加密密钥对 所述随机数进行加密产生第二密文;组合第一密文和第二密文。
所述方法还可包括计算所述消息的哈希值;通过使用所述加密密钥产 生所述消息的哈希值的认证码,其中,在所述组合第一密文和第二密文的步 骤中,组合第一密文、第二密文以及所述消息的哈希值的认证码。
所述方法还可包括产生第一密文的哈希值的认证码,其中,在所述组 合第一密文和第二密文的步骤中,组合第一密文、第二密文以及第一密文的 哈希值的认证码。
通过Y吏用MAC来构造所述i人证码。
所述方法还可包括计算所述消息的哈希值;通过使用所述加密设备的私钥对所述消息的哈希值进行加密来产生第三密文,其中,在所述组合第一 密文和第二密文的步骤中,组合第一密文、第二密文以及第三密文。
所述方法还可包括通过使用所述加密设备的私钥对第一密文的哈希值
进行加密来产生第三密文,其中,在所述组合第一密文和第二密文的步骤中, 组合第一密文、第二密文以及第三密文。
在产生加密密钥的步骤中,通过使用以第一密文的哈希值和所述共享密
钥作为输入来产生加密密钥的密钥导出函数(KDF)产生加密密钥,其中, 所述KDF由所述加密设备和对加密的消息进行解密的解密设备共享。
所述预定的共享密钥可由所述加密设备和对由加密设备产生的消息进行 解密的解密设备共享。
所述消息包括文本、音频、视频和图像中的至少一种。
根据本发明的另 一方面,提供一种用于保持消息的完整性的加密设备对 消息进行加密方法,所述方法包括通过将所述消息划分为多个消息块来产 生多个消息块;产生随机数,并通过使用所述随机数在高级加密标准(AES) 的密码块链接(CBC)模式下对所述多个消息块进行加密,以产生多个加密 的消息块;通过使用所述多个加密的消息块的一部分和预定的共享密钥产生 加密密钥;通过组合所述多个加密的消息块产生第一密文;通过^f吏用所述加 密密钥对所述随机数进行加密产生第二密文;组合第一密文和第二密文。
所述方法还可包括通过使用所述加密密钥或所述加密设备的私钥对所 述多个加密的消息块的一部分进行加密来产生第三密文,其中,在所述组合 第一密文和第二密文的步骤中,组合第一密文、第二密文以及第三密文。
所述多个加密的消息块的 一部分可以是在所述多个加密的消息块中最后 产生的加密的消息块。
所述预定的共享密钥可由所述加密设备和对由加密设备产生的消息进行 解密的解密设备共享。
根据本发明的另 一方面,提供一种用于保持消息的完整性的对加密的消 息进行解密的方法,所述方法包括接收通过组合包括第一密文和第二密文 而获得的加密的消息,其中,通过使用预定的随机数对消息进行加密获得第 一密文,通过使用由第一密文的哈希值和预定的共享密钥产生的加密密钥对 所述预定的随机数进行加密获得第二密文;使接收的加密的消息的第一密文 和第二密文彼此分离,并计算第一密文的哈希值;通过使用第一密文的哈希值和预定的共享密钥产生解密密钥;通过使用解密密钥对第二密文解密来提 取预定的随机数;使用预定的随机数对第一密文解密。
所述方法还可包括在接收消息的步骤中,当接收组合有通过使用加密 密钥产生的第一密文的哈希值的认证码的加密的消息,或者组合有通过对第 一密文的哈希值进行加密获得的第三密文的加密的消息时,确定加密的消息 是否被更改,其中,在提取随机数的步骤中,基于所述确定结果,选择性地 对第二密文进行解密。
确定接收的消息是否被更改的步骤包括当接收的消息还组合有所述认 证码时,通过使用解密密钥产生第一密文的哈希值的认证码;通过对使用解 密密钥产生的认证码和接收的认证码进行比较来确定4矣收的消息是否被更 改。
确定接收的消息是否被更改的步骤包括当接收的消息还组合有第三密 文时,通过使用与所述私钥相对应的7>钥对第三密文进4亍解密;通过比4交通 过对第三密文进行解密提取的第 一密文的哈希值和根据接收的第 一密文计算 第一密文的哈希值来确定接收的消息是否被更改。
根据本发明的另 一方面,提供一种用于保持消息的完整性的对加密的消 息进行解密的方法,所述方法包括接收通过组合第一密文和第二密文而获 得的加密的消息,其中,通过组合在高级加密标准(AES )的密码块链接(CBC ) 模式下使用预定的随机数对多个消息块进行加密获得的多个加密的消息块获 得第一密文,通过使用预定的加密密钥对所述预定的随机数进行加密产生第 二密文;使接收的加密的消息的第一密文和第二密文彼此分离,并通过使用 包括在第一密文中的多个加密的消息块的一部分和预定的共享密钥产生解密 密钥;通过使用解密密钥对第二密文进行解密提取所述预定的随机数;通过 在AES的CBC模式下使用提取的随机数对第一密文进行解密,并通过組合 所述多个解密的消息块产生解密的消息,其中,通过使用包括在第一密文中 的所述多个解密的消息块的一部分和所述预定的共享密钥产生加密密钥。
接收消息的步骤还包括当接收的消息还组合有通过使用加密密钥或执 行加密的加密设备的私钥加密的第三密文时,确定接收的消息是否被改变, 其中,在提取随机数的步骤中,基于确定的结果选择性地对第二密文进行解 密。
确定接收的消息是否被改变的步骤包括当接收的消息还组合有通过使用加密密钥加密的第三密文时,通过使用解密密钥对第三密文进行解密;通
过比较通过对第三密文进行解密获得的结果值和包括在接收的第一密文中的 用于产生加密密钥的多个消息块的 一部分来确定加密的消息是否被更改,
确定接收的消息是否被改变的步骤包括当接收的消息还组合有通过使 用私钥加密的第三密文时,通过使用与所述私钥相对应的公钥对第三密文进 行解密;通过比较通过对第三密文进行解密获得的结果值和包括在接收的第 一密文中的用于产生加密密钥的多个消息块的一部分来确定加密的消息是否 被更改。
根据本发明的另 一方面,提供一种用于保持消息的完整性的对消息进行 加密的加密设备,所述加密设备包括随机数产生单元,产生随机数;加密 单元,通过使用所述随机数对所述消息进行加密,并产生第一密文;运算单 元,计算第一密文的哈希值;加密密钥产生单元,通过使用第一密文的哈希 值和预定的共享密钥产生加密密钥;组合单元,组合第一密文和第二密文, 其中,通过使用所述加密密钥对所述随机数进行加密来产生第二密文。
所述加密设备还可包括认证码产生单元;其中,运算单元计算所述消 息的哈希值;其中,认证码产生单元通过使用所述加密密钥产生所述消息的 哈希值的认证码;其中,组合单元组合第一密文、第二密文以及所述认证码。
根据本发明的另一方面,提供一种用于保持消息的完整性的对消息进行 加密的加密设备,所述加密设备包括消息分离单元,通过将所述消息划分 为多个消息块产生所述多个消息块;随机数产生单元,产生随机数;加密单 元,通过使用所述随机数,在高级加密标准(AES)的密码块链接(CBC) 模式下对所述多个消息块进行加密,以产生多个加密的消息块;加密密钥产 生单元,通过使用所述多个加密的消息块的一部^^和预定巧—真享密钥产生加 密密钥;组合单元,组合第一密文和第二密文,其中,通过组合所述多个加 密的消息块产生第一密文,通过对所述随机数进行加密产生第二密文。
根据本发明的另一方面,提供一种用于保持消息的完整性的对加密的消 息进行解密的解密设备,所述解密设备包括接收单元,接收通过组合第一 密文和第二密文获得的加密的消息,其中,通过使用预定的随机数对消息进
行加密获得第一密文,其中,通过使用由第一密文的哈希值和预定的共享密 钥产生的加密密钥对所述预定的随机数进行加密获得第二密文;消息分离单 元,使接收的加密的消息的第一密文和第二密文彼此分离;运算单元,计算第一密文的哈希值;解密密钥产生单元,通过使用第一密文的哈希值和预定 的共享密钥产生解密密钥;解密单元,通过使用解密密钥对第二密文解密来 提取预定的随机数,并通过使用预定的随机数对第一密文解密。
所述解密设备还可包括认证单元,当接收到单元接收组合有通过使用 加密密钥产生的第一密文的哈希值的认证码的加密的消息,或者组合有通过 对第 一 密文的哈希值进行加密获得的第三密文的加密的消息时,所述认证单 元确定加密的消息是否被更改,其中,解密单元基于所述确定结果,选择性 地对第二密文进行解密。
认证单元包括认证码产生单元,当接收的消息还组合有所述认证码时, 所述认证码产生单元通过使用解密密钥产生第一密文的哈希值的认证码;确 定单元,通过对使用解密密钥产生的认证码和接收的消息中组合的认证码进 行比较来确定接收的消息是否被更改。
根据本发明的另一方面,提供一种用于保持消息的完整性的对加密的消 息进行解密的解密设备,所述解密设备包括接收单元,接收通过组合第一 密文和第二密文获得的加密的消息,其中,通过组合在高级加密标准(AES) 的密码块链接(CBC)模式下使用预定的随机数对多个消息块进行加密所获 得的多个加密的消息块而获得第一密文,通过^f吏用预定的加密密钥对预定的 随机数进行加密产生第二密文;消息分离单元,使接收的加密的消息的第一 密文和第二密文彼此分离;解密密钥产生单元,通过使用包括在第一密文中
的多个消息块的一部分和预定的共享密钥产生解密密钥;解密单元,通过4吏 用解密密钥对第二密文进行解密来提取预定的随机数;通过在AES的CBC 模式下使用预定的随机数对第一密文进行解密;组合单元,通过组合多个解 密的消息块产生消息,其中,通过使用包括在第一密文中的所述多个消息块 的一部分和预定的共享密钥产生加密密钥。
所述解密设备还可包括认证单元,当接收单元接收到还组合有通过使 用加密密钥或执行加密的加密设备的私钥对第 一密文中包括的所述多个消息 块的一部分进行加密所获得的第三密文的加密的消息时,所述认证单元确定 加密的消息是否被改变,其中,解密单元基于确定的结果选4奪性地对第二密 文进行解密。


ii通过下面结合附图对本发明的示例性实施例进行的详细描述,本发明的
上述和其它方面将会变得更加清楚,其中
图1示出根据本发明的第一示例性实施例的用于保持消息的完整性的对
消息进行加密的方法;
图2示出根据本发明的第二示例性实施例的用于保持消息的完整性的对 消息进行加密的方法;
图3示出根据本发明的第三示例性实施例的用于保持消息的完整性的对 消息进行加密的方法;
图4示出在AES的CBC模式下的加密方法;
图5示出根据本发明的第四示例性实施例的用于保持消息的完整性的对 消息进行解密的方法;
图6示出根据本发明的第五示例性实施例的用于保持消息的完整性的对 消息进行解密的方法;
图7示出根据本发明的第六示例性实施例的用于保持消息的完整性的对 消息进行解密的方法;
图8示出在AES的CBC^莫式下的解密方法;
图9示出根据本发明的第七示例性实施例的用于保持消息的完整性的对 消息进行加密的设备;
图10示出才艮据本发明的第八示例性实施例的用于保持消息的完整性的 对消息进行加密的设备;
图11示出根据本发明的第九示例性实施例的用于保持消息的完整性的 对消息进行解密的设备;
图12示出根据本发明的第十示例性实施例的i/v证单元;
图13示出根据本发明的第十一示例性实施例的用于保持消息的完整性 的对消息进行解密的设备。
具体实施例方式
以下,通过参照附图解释本发明的示例性实施例来详细描述本发明。 图1示出根据本发明的第一示例性实施例的用于保持消息的完整性的对 消息进行加密的方法。
在操作110,产生随机数N。在操作120,通过使用产生的随机数N对消息M进行加密来产生第一密
此时,所述消息可包括文本、音频、;视频和图^^。
第一密文由C产EN[M]表示。
在操作130,计算第一密文d的哈希值H(d)。
在操作140,通过使用第一密文d的哈希值H(d)和共享密钥Kc。匪来产 生加密密钥KE。
这里,由用于执行根据本发明的示例性实施例的用于保持消息的完整性 的对消息进行加密的方法的加密设备和用于对所述加密设备产生的消息进行 解密的解密设备共享所述共享密钥
如图1所示,可通过使用以第一密文d的哈希值H(d)和共享密钥IQ。腿 作为输入的密钥导出函数(KDF)来产生加密密钥KE。
此时,由用于执行根据本发明的示例性实施例的用于保持消息的完整性 的对消息进行加密的方法的加密设备和用于对所述加密设备产生的消息进行 解密的解密设备共享所述KDF函数。即,如果输入相同,则在所述加密设备 和解密设备中可产生相同的密钥。
在示例性实施例中,如果第一密文d被攻击者更改,则由于第一密文 d的哈希值H(d)用于产生加密密钥KE,所以加密密钥Ke也被更改。
在第一密文d被攻击者更改的情况下,如果解密设备通过使用KDF产 生解密密钥,则所述解密密钥与加密密钥Ke不同。当通过使用上述解密密钥 对通过使用加密密钥KE加密的消息进行解密时,获得与原始消息不同的新消 息。因此,在本发明的示例性实施例中,通过使用上述特性可保持消息完整 性。
在操作150,通过使用加密密钥KE对随机数N进行加密来产生第二密文。
此时,第二密文C2可由C^E^[N]表示。
在操作160,组合第一密文d和第二密文C2。
另 一方面,在根据本发明的示例性实施例的用于保持消息的完整性的对 消息进行加密的方法中,可通过包括用于确定加密的消息是否被更改的认证 码来对消息进行加密。
图2示出根据本发明的第二示例性实施例的用于保持消息的完整性的对 消息进行加密的方法。由于图2的操作210至操作250与图1的操作110至操作150相同,因 此省略对操作210至操作250的描述。
在操作260,通过使用加密密钥KE来产生第一密文d的哈希值的认证 码AUm
此时,认证码被用于^r查第一密文d的哈希值H(d)是否被更改。如图 2所示,可通过4吏用MAC将iU正码构造为AUTH = M4CKe(H(CJ) 。 i人i正码不限 于此。可通过使用能够检查消息完整性的所有函数来产生认证码。
此外,可不将认证码构造为第一密文d的哈希值H(d)的认证码,而是 将认证码构造为消息的哈希值H(M)的认证码AUTH = CKe (H(M))。然而,为 了使用消息的哈希值H(M)的认证码,需要单独计算消息的哈希值H(M)。因 此,如果使用第一密文d的哈希值H(d)的认证码,则可减少计算量。
另 一方面,可根据另 一示例性实施例产生执行与认证码相同功能的第三
密文C3。
例如,可通过使用加密设备的私钥Kp跟对第一密文d的哈希值H(d) 进行加密来产生第三密文C3,其中,所述加密设备用于执行根据本发明的示 例性实施例的用于保持消息的完整性的对消息进行加密的方法。
此时,第三密文C3可被表示为C3 = EK;w[H(CJ]。
此外,当产生第三密文C3时,可使用消息的哈希值H(M)来代替第一密 文d的哈希值H(d)。
在操作270,组合第一密文d、第二密文C2和认证码AUTH。
另一方面,当产生加密密钥KE时,可通过^f吏用任意值产生加密密钥KE 来实现相同的效果,这样加密的消息是否被更改取决于第一密文d是否被更 改,而不是第一密文d的哈希值H(d)是否被更改。
图3示出根据本发明的第三示例性实施例的用于保持消息的完整性的对 消息进行加密的方法。
在搡作310,通过将消息划分为多个块来产生多个消息块。
在操作320,产生随机数N。
在操作330,在高级加密标准(AES)的密码块链接(CBC)模式下, 通过使用产生的随机数N对所述多个消息块进行加密。 图4示出在AES的CBC模式下的加密方法。 参照图4,通过AES加密顺序地对消息块]V^至Mx进行加密。即,当在AES的CBC模式下,通过使用加密密钥KA将通过将随机数N 添加到第一消息块Mi获得的值加密为值E"(MJ时,在AES的CBC模式下, 通过使用加密密钥KA将通过将加密的值E"(M,)添加到第二消息块M2获得的 值加密为值E^(M》。如上所述,消息块的加密结果用于对下一消息块加密。 相应地,通过使用消息块]V^至Mx产生加密的消息(MJ至(Mx)。
当在AES的CBC ^^莫式下对消息块进行加密时,所述消息块的加密结果 被用于对下一消息块进行加密。如果加密的消息块中的一个^L改变,则随后 的消息块的加密结果^^皮改变。在本发明的该示例性实施例中,如下所述,通 过使用部分加密的消息块产生认证密钥,从而保持消息完整性。
在操作340,通过组合多个在AES的CBC才莫式下^^皮加密的加密的消息 块来产生第一密文d。
在操作350,通过使用包括在第一密文d中的部分消息块和共享密钥来 产生加密密钥KE。
此时,所述第一密文d中的部分消息块可以是一个或多个消息块。在此 情况下,必须要有用于确定包括在第一密文d中的哪些消息块被用于产生加 密密钥KE的规则。例如,存在这样的规则使用多个加密的消息块中的位于 中心的消息块或第20个消息块。使用预先预定的消息块来产生加密密钥。
优选但不是必须的,如图3所示,所述第一密文d中的部分消息块可以 是在第一密文Q中最后产生的消息块。在最后产生的消息块被用于产生加密 密钥KE的情况下,如果所述多个消息块的任意一个被改变,则最后的消息块 的值总被改变。如果存在由攻击者造成的消息的更改,则认证密钥总是更改。 因此,使用最后产生的消息块产生加密密钥Ke在保持消息完整性方面是有效 的。
在操作360,通过使用加密密钥KE对随机数N进行加密来产生第二密文C2。
在操作370,通过对包括在第一密文d中的预定消息块E"(MJ进行加
密来产生第三密文C3。
上述第三密文C3用于在解密过程中确定消息完整性。将参照图7来描述 通过使用第三密文C3确定消息完整性的过程。 然而,才艮据示例性实施例可省略才喿作370 。 在操作380,组合第一密文d至第三密文Q。此时,当由于省略操作370而没有产生第三密文C3时,仅组合第一密文
d和第二密文C2。
至此,已经描述了根据本发明的例性实施例的用于保持消息的完整性的
对消息进行加密的方法。以下,将参照图5至图7描述#^居本发明的示例性 实施例的用于保持消息的完整性的对消息进行解密的方法。
图5示出根据本发明的第四示例性实施例的用于保持消息的完整性的对 消息进行解密的方法。
在操作510,接收通过组合使用随机数N加密的第一密文d和使用加密
密钥Ke加密的第二密文C2荻得的消息。
此时,通过使用第一密文d的哈希值H(d)和共享密钥IQ。皿来产生加 密密钥KE。
在操作520,接收的消息的第一密文d和第二密文C2彼此分离。计算分 离的第一密文d的^^合希值H(Q)。
在操作530,通过使用第一密文d的哈希值H(d)和共享密钥Ke。誦来产 生解密密钥KD。
此时,通过使用以第一密文d的哈希值H(d)和共享密钥IQ。腿作为输 入的KDF来产生解密密钥KD。
如上所述,如果接收的加密消息没有被更改,则使用KDF产生的解密密 钥必定具有与加密密钥Ke相同的植。然而,如果接收的加密消息被更改,则 由于第一密文Q的哈希值H(d)被更改,所以解密密钥Ko具有与加密密钥
KE不同的值。
在操作540,通过使用解密密钥Ko对第二密文C2进行解密来提取随机 数N。
在操作550,通过使用提取的随机数N对第一密文d进行解密。
此时,如果加密的消息没有被更改,则通过对第一密文d解密获得的消 息M具有与原始消息M相同的值。如果加密的消息;故更改,则通过对第一 密文Q解密获得的消息M具有与原始消息M不相关的值。
因此,如果加密的消息被更改,则由于解密的结果不是期望的结果而是 由随机数构成的无意义的数据,所以用户可识别出婆:据-故更改。
如上所述,如果数据被更改,则解密结果具有与原始消息不相关的无意 义的值。因此,没有必要对被更改的数据多次进行重写以安全地删除被更改的数据。必须一次删除被更改的数据。
另 一方面,根据本发明的例性实施例的用于保持消息的完整性的对消息 进行解密的方法还包括确定加密的消息是否被更改的过程。
图6示出根据本发明的第五示例性实施例的用于保持消息的完整性的对 消息进行解密的方法。
在操作610,接收通过组合使用随机数N加密的第一密文Cp使用加密
密钥Ke加密的第二密文C2和第一密文d的哈希值的认证码AUTH获得的消 自
此时,可接收通过使用对接收的消息进行加密的加密设备的私钥对第一
密文Q的哈希值进行加密获得的第三密文C3来代替第一密文G的哈希值的 认证码AUTH。
此时,第三密文Q可由C^Ek,[H(C,)]表示。
在操作620,计算第一密文d的哈希值H(d)。
在操作630,通过使用第一密文d的哈希值H(d)和共享密钥Kc。,来
产生解密密钥Ko。
在操作640,通过使用第一密文d的哈希值H(d)来确定接收的消息是 否被更改。
此时,将描述确定接收的消息是否被更改的过程。
首先,通过使用解密密钥KD产生第一密文d的哈希值H(d)的认证码 MACkd[H(C,)]。
其次,确定通过使用解密密钥Ko产生的认证码与接收的认证码AUTH 是否相同。
此时,如果所述两个值相同,则确定消息没有^^皮更改。否则,确定消息 被更改。
作为确定的结果,如果确定接收的消息被更改,则停止随后的解密过程。 另一方面,当接收到第三密文Q时,通过使用与对第三密文C3进行加
密的加密设备的私钥相对应的公钥对第三密文Q解密。通过对在第三密文
C3的解码过程提取的第一密文d的哈希值H(d)和根据接收的第一密文d
计算的哈希值H(d)进行比较来确定消息是否被更改。
由于操作650和660与图5的操作540和550相同,所以将省略对操作
650和660的描述。图7示出根据本发明的第六示例性实施例的用于保持消息的完整性的对 消息进行解密的方法。
在操作710,接收通过将通过组合使用随机数N在AES的CBC模式下 加密的多个消息块获得的第一密文d、通过使用加密密钥KE对随机数N加
密获得的第二密文C2和通过使用加密密钥KE或私钥Kpwv对包括在第一密文
Q中的消息块的一部分E^(M,)进行加密产生的第三密文C3进行组合而获得 的消息。
这里,通过使用包括在第一密文Q中的消息块的一部分E"(MJ和共享
密钥Ke。m^来产生加密密钥KE。
这里,通过使用加密密钥KE产生的第三密文C3可由E&[E^[MJ]表示。 由私钥KPRIV产生的第三密文Q可由EK_[EKa[Mx]]表示。
在操作720,接收的消息的第一密文d和第二密文C2彼此分离。通过使 用包括在第一密文C,中的消息块的一部分E^(MJ和共享密钥JQ。,来产生 解密密钥KD。
在操作730,通过使用包括在第一密文Ct中的消息块的一部分E^(MJ来 确定接收的消息是否被更改。
此时,包括在第一密文d中的消息块的一部分消息块可以是一个或多个 消息块。在此情况下,必须要有用于确定包括在第一密文d中的哪些消息块 被用于产生加密密钥KE的规则。
优选但不是必须的,包括在第一密文C!中的消息块的一部分消息块可以 是最后产生的消息块。
以下,将描述确定消息是否被更改的方法。
首先,将描述通过^f吏用加密密钥KE产生接收的消息的第三密文Q的情况。
此时,通过所使用解密密钥Ko对第三密文E^[E^[MJ]进行解密。 其后,通过将包括在通过对第三密文C3解码而I是:取的第一密文C1中的
消息块的一部分E^(M,)和包括在第一密文d中的用于产生加密密钥KE的部
分消息块进行比较来确定消息是否被更改。
作为确定结果,如果确定接收的消息被更改,则停止随后的解密过程。 另 一方面,如果接收的消息是通过使用对接收的消息进行加密的加密设
备的私钥加密的第三密文C3,则通过使用与所述私钥相对应的公钥对第三密文EK,w [EKa [Mx ]]进行解密,并通过对解密的第三密文EK,w [EKa [Mx ]和包括在接 收的第一密文C1中的用于产生加密密钥KE的消息块部分E^(MJ进行比较来 确定接收的消息是否被更改。
在操作740,通过使用解密密钥Ko对第二密文C2进行解码来提取随机 数N。
在操作750,通过使用提取的随机数N在AES的CBC模式下对第一密 文Ci进行解码。
图8示出在AES的CBC模式下的解密方法。
参照图8,通过使用在AES的CBC模式下用于解密的解密密钥KA对密 文E^(M,)进行解码,并通过将随机数N添加到密文E"(M,)来获得消息块M!。 通过使用解密密钥KA对密文E^(MJ进行解码,并通过将密文E"(Mi)添加到 密文E^(MJ来获得消息块M2。这里所述的添加操作是指异或操作。可通过 上述解密过程来获得消息块Mi至Mx。
在操作760,通过组合通过解密产生的多个消息块来产生消息M。
至此,已经描述了根据本发明的示例性实施例的用于保持消息的完整性 的对消息进行加密和解密的方法。以下,将描述根据本发明的示例性实施例 的用于保持消息的完整性的对消息进行加密和解密的设备。
图9示出根据本发明的第七示例性实施例的用于保持消息的完整性的对 消息进行加密的设备。
参照图9,根据本发明的示例性实施例的用于保持消息的完整性的对消 息进行加密的设备包括随机数产生单元910、加密单元920、运算单元930、 加密密钥产生单元940以及组合单元960。
随机数产生单元910产生随机数。
加密单元920通过使用产生的随机数对消息进行加密产生第一密文。 运算单元930计算第一密文的哈希值。
加密密钥产生单元940通过使用第一密文的哈希值和共享密钥产生加密密钥。
当运算单元930计算消息的p合希值时,认证码产生单元950通过使用加 密密钥产生所述p合希值的认证码。加密单元920还通过4吏用由加密密钥单元 940产生的加密密钥对所述随机数进行加密来产生第二密文。
然而,根据示例性实施例,可省略认证码产生单元。组合单元960组合第一密文、第二密文以及认证码。
然而,根据示例性实施例,可组合第一密文和第二密文。
图10示出根据本发明的第八示例性实施例的用于保持消息的完整性的 对消息进行加密的设备。
参照图10,才艮据本发明的示例性实施例的用于保持消息的完整性的对消 息进行加密的设备包括消息划分单元1010、随机数产生单元1020、加密单 元1030、加密密钥产生单元1040以及组合单元1050。
消息划分单元1010通过将消息划分为多个消息块来产生多个消息块。
随机数产生单元1020产生用于加密单元1030的加密的随机数。
加密单元1030通过使用随机数产生单元1020产生的随机数在AES的 CBC模式下对所述多个消息块进行加密来产生多个加密的消息块。
加密密钥产生单元1040通过使用由加密单元1030加密的多个消息块的 一部分和共享密钥产生加密密钥。
加密单元1030通过使用由加密密钥产生单元1040产生的加密密钥对所 述随机数进行加密来产生第二密文。
此外,加密单元1030通过使用加密密钥或加密设备的私钥对包括在第一 密文中的一部分消息块进行加密来产生第三密文。
组合单元1050通过组合所述多个加密的消息块产生第一密文,并组合产 生的第一密文和由加密单元1030产生的第二密文和第三密文。
图11示出根据本发明的第九示例性实施例的用于保持消息的完整性的 对消息进行解密的设备。
参照图11,根据本发明的示例性实施例的用于保持消息的完整性的对消 息进行解密的设备包括接收单元1110、消息分离单元1120、运算单元1130、 解密密钥产生单元1140、认证单元1150以及解密单元1160。
接收单元1110接收这样的消息,所述消息是通过组合通过使用随机数加 密的第一密文、通过使用由第一密文的哈希值和共享密钥产生的加密密钥对 该随机数进行加密获得的第二密文以及使用加密密钥产生的第一密文的哈希 值的认证码而获得的。
然而,根据示例性实施例,接收单元1110可接收通过组合第一密文和第 二密文获得的消息。选择性地,接收单元1110可接收通过组合第一密文和第 二密文以及通过使用加密设备的私钥对第一密文的哈希值进行加密获得的第三密文而不是通过组合第一密文和第二密文以及认证码而获得的消息,其中, 所述加密设备对接收的消息进行加密。
消息分离单元1120将接收的消息的第 一 密文和第二密文彼此分离。
运算单元1130计算分离的第一密文的哈希值。
解密密钥产生单元1140使用第一密文的哈希值和共享密钥产生解密密钥。
认证单元1150确定接收的消息是否被更改。 图12示出根据本发明的第十示例性实施例的认证单元。 参照图12,根据示例性实施例的认证单元包括认证码产生单元1152 以及更改确定单元1154。
如果接收的消息是通过组合第一密文和第二密文以及认证码而获得的, 则认证码产生单元1152产生第一密文的哈希值的^人i正码。
更改确定单元1154通过对使用解密密钥产生的iU正码和接收单元1110 接收的认证码进行比较来确定接收的消息是否被更改。
另 一方面,如果接收的消息是通过使用对第一密文和第二密文以及接收 的消息进行的加密设备的私钥被加密的,并且如果解密单元1160通过使用与 该私钥相对应的公钥对第三密文进行解密,则根据本发明的另一示例性实施 例的认证单元通过比较通过对第三密文解密提取的第一密文的哈希值和根据 由接收单元1110接收的第一密文计算的第一密文的哈希值来确定接收的消息 是否被更改。
解密单元1160通过使用解密密钥对第二密文进行解密来提取随机数,并 通过使用提取的随机数对第 一密文解密。
作为认证单元1150的确定结果,如果确定接收的消息被更改,则解密单 元1160停止对第二密文的解密。即,只有接收的消息没有被更改,解密单元 1160才执行解密过程并输出消息。
图13示出根据本发明的第十一示例性实施例的用于保持消息的完整性 的对消息进行解密的设备。
参照图13,才艮据本发明的示例性实施例的用于保持消息的完整性的对消 息进行解密的设备包括接收单元1310、消息分离单元1320、解密密钥产生 单元1330、认证单元1340、解密单元1350以及组合单元1360。
接收单元1310接收这样的消息,所述消息是通过组合对在AES的CBC模式下加密的多个消息块进行组合获得的第一密文、通过使用加密密钥对随 机数进行加密产生的第二密文以及通过使用加密密钥或用于对接收的消息进 行加密的加密设备的私钥进行加密产生的第三密文而获得的。 此时,可接收到第一密文和第二密文。
消息分离单元1320将第一至第三密文彼此分离。
解密密钥产生单元1330通过使用包括在第一密文中的部分消息块以及 共享密钥产生解密密钥。
如果组合在接收的消息中的第三密文是通过使用加密密钥被加密的,则 认证单元1340通过使解密单元1350对第三密文进行解密,从解密单元1350 接收对第三密文进行解密获得的解密结果,并对解密结果值和接收单元接收 的包括在第一密文中的用于产生加密密钥的部分消息块进行比较来确定接收 的消息是否^L更改。
此外,如果组合在接收的消息中的第三密文是通过使用对接收的消息进 行加密的加密设备的私钥被加密的,则认证单元1340使解密单元1350通过 使用与所述私钥相对应的公钥对第三密文进行解密,并通过使用通过对第三 密文进行解密获得的解密结果来确定接收的消息是否被更改。
解密单元1350通过使用解密密钥对第二密文进行解密来提取随机数,并 通过使用提取的随机数在AES的CBC模式下对第一密文进行解密。此时, 如果认证单元1340确定接收的消息被更改,则解密单元不对第二密文进行解 密。即,只有接收的消息没有被更改,解密单元1350才执行解密过程并最终 丰俞出消息。
组合单元1360通过组合在AES的CBC 4莫式下由解密单元1350解密的 多个消息块来产生消息。
在本发明中,产生随机数,通过使用产生的随机数对消息进行加密来产 生第一密文,通过使用第一密文的哈希值和共享密钥来产生加密密钥,通过 使用加密密钥对随机数进行加密来产生第二密文,并组合第一密文和第二密 文。因此,可避免消息完整性被破坏的加密的消息被重用。
本发明的示例性实施例可被编写为计算机程序,并且可使用计算机可读 介质在执行程序的通用数字计算机中被实施。
计算机可读记录介质的示例包括磁存储介质(例如,只读存储器(ROM )、 软盘、硬盘等)、光学记录介质(例如,压缩盘(CD )或数字多功能盘(DVD ))以及诸如载波(例如,通过互联网的传输)的存储介质。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的 技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况 下,可以对其进行形式和细节上的各种改变。示例性实施例应被认为仅是描 述性的,而不是为了限制的目的。因此,本发明的范围不是由本发明的详细 描述而是由权利要求来限定的,并且所述范围内的所有不同应^C解释为包括 在本发明中。
权利要求
1、一种加密设备对消息进行加密的方法,所述方法包括产生随机数,并通过使用所述随机数对所述消息进行加密来产生第一密文;计算第一密文的哈希值,并通过使用第一密文的哈希值和共享密钥产生加密密钥;通过使用所述加密密钥对所述随机数进行加密产生第二密文;组合第一密文和第二密文。
2、 如权利要求1所述的方法,还包括 计算所述消息的哈希值;通过使用所述加密密钥产生所述消息的哈希值的认证码, 其中,在所述组合第一密文和第二密文的步骤中,组合第一密文、第二 密文以及所述消息的哈希值的认证码。
3、 如权利要求l所述的方法,还包括通过使用所述加密密钥产生第一 密文的哈希值的认证码,其中,在所述组合第一密文和第二密文的步骤中,组合第一密文、第二 密文以及第 一 密文的哈希值的认证码。
4、 如权利要求2所述的方法,其中,通过使用消息认证码来构造所述认 证码。
5、 如权利要求1所述的方法,还包括 计算所述消息的哈希值;通过使用所述加密设备的私钥对所述消息的哈希值进行加密来产生第三 密文,其中,在所述组合第一密文和第二密文的步骤中,组合第一密文、第二 密文以及第三密文。
6、 如权利要求l所述的方法,还包括通过使用所述加密设备的私钥对 第一密文的哈希值进行加密来产生第三密文,其中,在所述组合第一密文和第二密文的步骤中,组合第一密文、第二 密文以及第三密文。
7、 如权利要求l所述的方法,其中,在产生加密密钥的步骤中,通过使用以第一密文的哈希值和所述共享密钥作为输入来产生加密密钥的密钥导出 函数来产生加密密钥,其中,所述密钥导出函数由所述加密设备和对加密的消息进行解密的解 密设备共享。
8、 如权利要求l所述的方法,其中,所述共享密钥由所述加密设备和对 加密的消息进行解密的解密设备共享。
9、 如权利要求l所述的方法,其中,所述消息包括文本、音频、视频和 图像中的至少一种。
10、 一种加密设备对消息进行加密的方法,所述方法包括 通过划分所述消息产生多个消息块;产生随机数,并使用所述随机数在AES的CBC ^f莫式下对所述多个消息 块进行加密;通过使用多个加密的消息块的一部分和共享密钥产生加密密钥; 通过组合所述多个加密的消息块产生第 一 密文; 通过使用所述加密密钥对所述随机数进行加密来产生第二密文; 组合第一密文和第二密文。
11、 如权利要求IO所述的方法,还包括通过使用所述加密密钥和所述 加密设备的私钥的至少 一个对所述多个加密的消息块的 一部分进行加密来产 生第三密文,其中,在所述组合第一密文和第二密文的步骤中,组合第一密文、第二 密文以及第三密文。
12、 如权利要求IO所述的方法,其中,所述多个加密的消息块的一部分 是在所述多个加密的消息块中最后产生的加密的消息块。
13、 如权利要求IO所述的方法,其中,所述共享密钥由所述加密设备和 对加密的消息进^"解密的解密设备共享。
14、 一种对加密的消息进行解密的方法,所述方法包括 接收包括第一密文和第二密文的加密的消息,其中,通过使用随机数对消息进行加密获得第一密文,通过使用由第一密文的哈希值和共享密钥产生的加密密钥对所述随机数进行加密获得第二密文;分离第一密文和第二密文,并计算第一密文的哈希值; 通过使用第一密文的哈希值和共享密钥产生解密密钥;通过使用解密密钥对第二密文解密来提取随机数; 使用随机数对第一密文解密。
15、 如权利要求14所述的方法,还包括通过对解密密钥和加密密钥进 行比较来确定加密的消息是否被更改。
16、 如权利要求14所述的方法,还包括确定加密的消息是否被更改, 其中,加密的消息还包括第一密文的哈希值的认证码和第三密文的至少一个,其中,通过使用加密密钥产生第一密文的哈希值的认证码,通过使用 产生加密密钥的加密设备的私钥对第一密文的哈希值进行加密获得第三密 文,其中,在提取随机数的步骤中,基于确定加密的消息是否被更改的结果, 选择性地对第二密文进行解密。
17、 如;K利要求16所述的方法,其中,如果加密的消息还包括所述认证码,则确定加密的消息是否被更 改的步骤包括通过使用解密密钥产生第一密文的哈希值的认-〖正码;和通过对产生的认证码和包括在加密的消息中的认证码进行比较来确定接 收的消息是否被更改,其中,如果加密的消息还包括第三密文,则确定加密的消息是否被更改 的步骤包括通过使用与所述私钥相对应的公钥对第三密文进行解密,以提取第一密 文的哈希值;和通过比较通过对第三密文进行解密提取的第一密文的哈希值和根据第一 密文计算的哈希值来确定接收的消息是否被更改。
18、 一种对加密的消息进行解密的方法,所述方法包括 接收包括第一密文和第二密文的加密的消息,其中,第一密文包括通过在AES的CBC模式下使用随机数对多个消息块进行加密获得的多个加密的 消息块,通过使用加密密钥对随机数进行加密产生第二密文;分离第一密文和第二密文,并通过使用所述多个加密的消息块的一部分 和共享密钥产生解密密钥;通过使用解密密钥对第二密文进行解密来提取随机数;通过使用随机数对第一密文进行解密,并通过组合多个解密的消息块产生解密的消息,其中,通过使用所述多个加密的消息块的 一部分和共享密钥产生加密密钥。
19、 如权利要求18所述的方法,其中,接收加密的消息的步骤还包括确定加密的消息是否被更改, 其中,加密的消息还包括加密的第三密文,所述第三密文通过使用加密密钥和产生加密的消息的加密设备的私钥的至少 一个被加密,其中,在提取随机数的步骤中,基于确定加密的消息是否被更改的结果选择性地对第二密文进行解密。
20、 如权利要求19所述的方法,其中,如果第三密文通过使用加密密钥;故加密,则确定加密的消息是否 被更改的步骤包括通过使用解密密钥对第三密文进行解密;通过比较通过对第三密文进行解密获得的结果值和包括在第 一 密文中的 所述用于产生加密密钥的多个消息块的一部分来确定加密的消息是否被更 改,其中,如果第三密文通过使用所述私钥被加密,则确定加密的消息是否被更改的步骤包括通过使用与所述私钥相对应的公钥对第三密文进行解密; 通过比较通过对第三密文进行解密获得的结果值和包括在第一密文中的所述用于产生加密密钥的多个消息块的一部分来确定加密的消息是否被更改。
21、 一种在其上包含有用于执行权利要求1-20的任意一个方法的计算机 程序的计算机可读记录介质。
全文摘要
提供一种对消息加密的方法以及对消息解密的方法。在用于消息完整性的对消息加密的方法中,产生随机数,并通过使用产生的随机数对所述消息进行加密来产生第一密文,计算第一密文的哈希值,并通过使用第一密文的哈希值和共享密钥产生加密密钥,通过使用所述加密密钥对所述随机数进行加密产生第二密文,组合第一密文和第二密文。
文档编号H04L9/18GK101291325SQ200810003089
公开日2008年10月22日 申请日期2008年1月18日 优先权日2007年4月17日
发明者慎峻范, 朴志淳 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1