单向认证转让专利

申请号 : CN200580004862.0

文献号 : CN1922816B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 斯科特·A·万斯通谢里·E·香农万斯通

申请人 : 塞尔蒂卡姆公司

摘要 :

一种在现有的、易受重演攻击但是包括随机分量的认证协议中无需修改所述协议而防止这类攻击的加密系统。负责认证的实体存储以前使用过的、从与随机分量关联的认证消息的一部分中提取的比特模式的列表。如果以前见过所述比特模式,拒绝所述消息;如果以前没见过所述比特模式,接受所述消息。

权利要求 :

1.一种在数据通信系统中由一通信方执行的用于确认由该数据通信系统中另一通信方生成的消息的原创性的方法,所述方法包括:所述一通信方处的加密处理器经由所述数据通信系统中的通信链路从所述另一通信方获得所述消息,所述消息包含要在所述一通信方和所述另一通信方之间传送的信息以及随机数据,所述随机数据对于所述消息而言是唯一的,并被合并到所述消息中;所述随机数据是在执行特定加密协议的过程中产生的,以便验证所述消息的真实性,而不需要对所述加密协议进行修改;所述加密处理器从所述消息中提取表示所述随机数据的比特模式;所述加密处理器将所述比特模式和以前提取的比特模式进行比较,所述以前提取的比特模式与以前接收到的消息相关联,并被存储在存储器中;以及如果所述比特模式以前提取过,所述加密处理器拒绝所述消息。

2.根据权利要求1所述的方法,其中所述以前提取的比特模式保存在所述一通信方的数据库中。

3.根据权利要求2所述的方法,其中构建所述数据库以进行与先前从所述另一通信方获得的比特模式的比较。

4.根据权利要求1至3中任一项所述的方法,其中所述随机数据从临时公共密钥得到。

5.根据权利要求4所述的方法,其中所述消息包括在所述一通信方与所述另一通信方之间交换的信息以及对所述信息的签名,以及其中所述随机数据是所述签名的一部分。

6.根据权利要求5所述的方法,其中根据ECDSA执行所述签名。

7.根据权利要求5所述的方法,其中所述签名被作为RSA签名来执行。

8.根据权利要求5至7中任一项所述的方法,其中所述随机数据用于验证对所述信息的所述签名。

9.根据权利要求8所述的方法,其中在确定所述消息的原创性之前,通过比较所述比特模式执行所述验证。

10.根据权利要求2所述的方法,其中如果比较表明提取得到的比特模式先前没有被提取过,将所述提取得到的比特模式加入所述数据库。

11.一种用于在数据通信系统的一通信方中的加密处理装置,用于确认由该数据通信系统中另一通信方生成的消息的原创性,所述加密处理装置包括:用于经由所述数据通信系统中的通信链路从所述另一通信方获得所述消息的装置,所述消息包含要在所述一通信方和所述另一通信方之间传送的信息以及随机数据,所述随机数据对于所述消息而言是唯一的,并被合并到所述消息中;所述随机数据是在执行特定加密协议的过程中产生的,以便验证所述消息的真实性,而不需要对所述加密协议进行修改;

用于从所述消息中提取表示所述随机数据的比特模式的装置;

用于将所述比特模式和以前提取的比特模式进行比较的装置,所述以前提取的比特模式与以前接收到的消息相关联,并被存储在所述一通信方的存储器中;以及用于在所述比特模式以前提取过的情况下拒绝所述消息的装置。

12.根据权利要求11所述的加密处理装置,其中所述以前提取的比特模式保存在所述一通信方的数据库中。

13.根据权利要求12所述的加密处理装置,其中所述数据库被构建以进行与先前从所述另一通信方获得的比特模式的比较。

14.根据权利要求11至13中任一项所述的加密处理装置,其中所述消息包括在所述一通信方与所述另一通信方之间交换的信息以及对所述信息的签名,所述随机数据是所述签名的一部分,以及所述加密处理装置包括用于验证所述签名的验证装置。

15.根据权利要求14所述的加密处理装置,其中,所述验证装置执行ECDSA验证。

16.根据权利要求14所述的加密处理装置,其中所述验证装置执行RSA验证。

17.根据权利要求14至16中任一项所述的加密处理装置,其中所述验证装置使用随机数据来验证对所述信息的所述签名。

18.根据权利要求17所述的加密处理装置,其中在确定所述消息的原创性之前,所述验证装置通过比较所述比特模式来验证所述签名。

19.根据权利要求12所述的加密处理装置,其中,所述加密处理装置包括:用于在比较表明提取得到的比特模式先前没有被提取过的情况下将所述提取得到的比特模式加入所述数据库的装置。

说明书 :

单向认证

技术领域

[0001] 本发明涉及加密系统和用于这类系统的协议。

背景技术

[0002] 为了确保在数据通信系统中通信对之间传输的消息的机密性或消息认证的安全,通常采用一个或多个加密协议以保证消息的安全。这样的协议必须能够抵抗多种攻击,所述攻击可能是由企图破解协议的入侵者制造的。一种这样的攻击是重演攻击(replay attack)。“重演攻击”试图在后来的时间通过记录消息和复制协议,重复早先传输中执行的行为以获得关于通信方的私人信息或用于加密的密钥。
[0003] 这样的攻击可以通过增加协议复杂性为代价来防止,例如使用时间随机数(nonce)。然而,在许多情况下,特别是传统运算(legacyoperation),在协议上增加时间随机数要求对协议和/或消息的数据结构的重大改变,有些情况经常不能被传统系统接受。由于这样的变化要求标记的修改和重新配置,这样的变化在具有大量认证标记的配置基础的传统系统(legacy system)中是有问题的。需要一种不需要改变构建基础的防止重演攻击的方法。
[0004] 因此本发明的目标是避免或减轻上述缺陷。
[0005] 概括地,本发明利用提供在消息签名期间生成的用于验证签名的可辨别的随机分量,以验证消息的原创性并且禁止对协议的重演攻击。

发明内容

[0006] 本发明的一个方面应用于签名方案,其中所述签名包括随机分量,即在每次计算签名时从随机产生的比特流中得出的分量。为了符合协议,所述签名必须包括随机分量。所述分量的一部分提供了可以用于禁止重演攻击的比特模式。
[0007] 负责认证的实体存储了以前被发送方使用并从与随机分量关联的签名消息的一部分中提取出来的比特模式列表。如果以前已经见过所述比特流,则认为所述消息不是原始的并且拒绝所述消息,即所述消息以前收到过;如果以前没见过所述比特流并且所述签名是真实的,则将所述比特模式加入存储列表并且接受所述消息。

附图说明

[0008] 在结合下列附图的以下详细描述中,本发明的优选实施例的特征以及其它特征将更加清楚:
[0009] 图1是数据通信系统的示意图;
[0010] 图2是表示签名消息的数据流的示意图;
[0011] 图3是在图1所示的系统中的信息流的示意图;
[0012] 图4是利用ECDSA签名协议的实施例的详细示意图;
[0013] 图5是类似于图4、应用于RSA签名方案的实施例的详细示意图。

具体实施方式

[0014] 参考图1,通常表示为10的数据通信系统包括由数据通信链路16相互连接的通信对12、14。通信对12、14中的每一个包括执行一组程序指令的计算装置18和连接在计算装置18和通信链路16之间的加密模块20。
[0015] 很容易理解通信对12、14可以是通用的计算机或在客户机/服务器关系中的专用设备,比如通过链路16与金融机构连接的销售点设备、PDA或移动电话。
[0016] 在运行中,计算装置18准备由加密单元20处理并且通过链路16作为数据流26发送的消息。通信方14的加密单元20对数据流进行处理,从而在传递给计算装置18之前恢复和鉴别所接收到的消息。
[0017] 通信方14包括数据库22,所述数据库包括由处理器20接收到的签名中所选的一部分的比特模式(bit pattern)列表24。数据库22可以由计算装置18访问并且方便地组成列表24从而为特定初始通信方12进行接收消息的比特模式和包含在数据库中的比特模式之间的比较。
[0018] 加密装置20可以执行多个不同的协议,比如密钥生成、加密/解密或签名以及验证。为了说明优选实施方式可以假设通信方12在计算装置18中准备由加密装置20签名的信息包。一旦在通信方14接收到,加密处理器20验证签名并且将信息传送到计算装置18。
[0019] 在运行中,通信方12在计算装置18中生成信息I并且将所述信息转发到加密处理器20。加密处理器20利用一个生成随机分量r的协议对信息I签名。表示信息I的比特和包含随机分量的签名分量被组合到数据流26中以表示签名消息28。
[0020] 通过链路16以数据流发送签名消息28,并且在通信方14通过加密单元20接收。根据签名表以常规的方式验证所述签名。如果所述验证被认证为真,则与随机分量r对应的签名消息部分被定位。然后,表示所述部分的比特流与包含在数据库22中的比特流进行比较以保证没有相同的随机分量在之前的签名消息中使用。如果所述比特流之前没有使用过,也就是在数据库22中没有匹配,由于之前没有收到过,所以所述签名被看作原创消息并被接受。如果找到了匹配则签名消息不被接受。
[0021] 下面参考图4利用ECDSA签名协议描述了一个可用于执行上述技术的已建立的签名协议的实例。
[0022] 信息I应当通过使用具有公知参数的椭圆曲线密码系统(ECC)中的通信方12的长期私有密钥d进行签名,所述参数包括n次的生成点P:
[0023] 通信方12随机生成临时私有密钥k并且计算相应的表示坐标点(x,y)的临时公共密钥kP。
[0024] 为了计算签名的第一分量r,将临时公共密钥kP的第一坐标转换为整数。由于是根据随机私有密钥k确定的,第一分量本身是随机的。
[0025] 通过求解签名的第二分量s的签名等式ks=H(I)+dr(mod n)生成签名的第二分量s,其中H是适当的加密哈希函数(hash function),比如SHA1。
[0026] 将信息和签名组合为在限定的位置上包含(I,r,s)的数据流26,然后通过链路16作为签名消息28发送。
[0027] 一旦在通信方14接收到签名消息28,加密处理器20对该签名进行认证。所述认证通常如下进行:
[0028] 首先,通过计算s-1(H(I)P+rA)来计算临时公共密钥kP,其中A是通信方12的长期公共密钥。
[0029] 在kP还原(recovery)后,将kP的第一坐标按照与通信方12相同的过程转换为整数。所获得的整数应该与包含在传输中的数字r相对应,如果是这样的话就接受所述签名。如果不是,不验证所述签名并且拒绝该签名。
[0030] 为了禁止重演攻击,从签名消息28中提取或导出数字r的子集f(r)。将所述子集f(r)与之前在通信方12的数据库22中存储的子集列表24进行比较。所述数据库22适宜由进行比较的通信方组建。公知的掩码和移位技术可以用于有效地提取和比较比特流。如果只涉及到重演攻击,则将接收自同一个通信方的子集进行比较就足够了,但是为更高的安全性可以将之前所有的子集进行比较。
[0031] 如果子集f(r)在所述列表中,则拒绝所述认证,表示所述子集在以前使用过。如果子集f(r)不在所述列表24中,该进程继续进行并且利用公知的存-取技术将子集f(r)以允许后续有效读取的方式加入数据库22。
[0032] 应该理解,优选地,可以在子集的比较之后执行签名验证。还应该注意到用于检测潜在的重演的子集是用于签名验证的签名分量r的一部分,并且同样已经存在于签名消息中。从而,附加的认证既不影响带宽也不影响协议,因此避免了冗余。
[0033] 从随机分量中选择的比特数取决于应用所需要的安全等级和可利用的存储空间。从随机分量中选择的比特数还应该足够大以保证抵抗“生日惊喜”(birthday surprise),其中在存储m+1比特的情况下,计算出在匹配之前发生的事件的预期数量为趋近例如,存储40位,可期望得到不少于130万个签名的匹配;存储60位,可期望得到不少于13亿个签名的匹配。
[0034] 在如图5所示的第二个优选实施例中,签名方案是公知的具有RSA-PSS附件的RSA整数-因数分解方案,如PKCS#1 2.1版中所定义的。
[0035] 信息I按照如下描述进行编码:
[0036] i)对信息I进行哈希处理,所述哈希值根据预填充字节和附加的随机字节r分类(bracket),得出分类哈希值E。
[0037] ii)进一步对分类哈希值E进行哈希处理,得到比特串H。
[0038] iii)比特串H用于掩码生成函数,并且用于对附加于信息I的哈希值的随机字节进行掩码的所述函数的输出。
[0039] iv)编码后的信息被组合而组成包括来自步骤iii)掩码输出、来自步骤ii)的进一步哈希值即比特串H、以及填充字节的串联。
[0040] 然后,将编码后的信息转换为数字。在具有通信方12的私有指数的数字上进行RSA运算,并且将结果转换为用作签名的信息I的比特串s。
[0041] 然后将具有签名(I,s)的消息通过链路16作为数据流28发送到通信方14。
[0042] 一旦通信方14收到所述数据流(I,s),验证和认证过程如下:
[0043] 在通信方14的加密处理器中,将签名s转换为数字。
[0044] 然后在具有通信方12的公共指数的数字上进行RSA运算,生成被转换为所谓分类哈希值E’的另一个数字。
[0045] 所谓分类哈希值E’被哈希处理,并且被分离为所谓掩码输出和所谓原始消息的哈希值。
[0046] 利用所谓掩码输出和所谓哈希值,提取出所谓随机字节。
[0047] 对适当的填充、所谓分类哈希值的哈希值以及所谓随机字节的串联进行哈希处理,并且与原始消息的所谓哈希值进行比较。如果两者一致,则认为所述签名可被验证和接收。
[0048] 为了禁止重演攻击,在验证之前或验证之后,提取数字s的子集f(s),其中f是预定的函数。子集f(s)从相应于附加随机字节的签名中选择并且与数据库22中通信方12以前存储的子集列表24进行比较。
[0049] 如果子集在所述列表中,拒绝认证。如果子集不在所述列表中,接受所述签名并且将所述子集加入列表。因此,通过使用签名分量的一部分,再次禁止了重演攻击,所述签名分量是随机的并且在签名验证中被协议使用。
[0050] 以上描述的在签名验证背景中的实例也可以用于生成随机比特模式的其它协议。例如,MQV协议可以用于密钥协商协议以及签名协议。
[0051] 在密钥协商协议中,交换每个通信方的临时公共密钥并且组成消息的一部分。所述临时公共密钥是随机的并且用于认证各方。从而,可以提取表示所述密钥的数据的子集,并且与现存的数据库进行比较以验证所述交换消息的原创性。
[0052] 应该理解,尽管在上面的说明书中数据库22被表示为与通信方14相关联,然而在需要免受这种攻击的系统中类似的数据库可以与每个通信方相关联。