1.本发明涉及一种用于在从发送方到接收方连续传输加密数据分组时使所述接收方的接收方初始化向量与所述发送方的发送方初始化向量同步的方法。
背景技术:
2.为此,首先一方面产生密钥而另一方面产生具有n位计数器的初始化向量。因此,所述初始化向量具有带有n位的计数器。因此所述计数器是n位计数器。在此,n是大于零的整数。
3.向发送方和接收方预给定所述密钥,并使用所述初始化向量对发送方初始化向量和接收方初始化向量进行初始化。这特别是意味着,所述发送方初始化向量具有根据所述初始化向量的计数器的发送方计数器,并且所述接收方初始化向量具有根据所述初始化向量的计数器的接收方计数器。首先,所述发送方初始化向量和所述接收方初始化向量具有所述初始化向量的值。
4.在现有技术中每次传输数据分组时,发送方执行以下步骤:
‑
使用所述密钥和所述发送方初始化向量根据加密方法对消息进行加密,以保证机密性。
5.‑
利用加密的消息和所述发送方计数器产生数据分组,并发送所述数据分组。
6.‑
然后,将所述发送方初始化向量的发送方计数器递增。
7.在现有技术中每次传输数据分组时,接收方执行以下步骤:
‑
接收具有消息和发送方计数器的数据分组。
8.‑
从所述数据分组中提取所述发送方计数器。
9.‑
用所述发送方计数器更新接收方计数器。
10.‑
使用所述密钥和所述接收方初始化向量,根据所述加密方法对所述消息进行解密。
11.连续传输是通过发送方和接收方连续执行上述步骤来完成的。传输包括发送和接收。
12.由于发送方和接收方使用相同的密钥,因此所述加密方法是对称加密方法。所述密钥必须是机密的,以保证机密性,而所述计数器允许是已知的。因此,计数器的未加密传输意味着不会损害已使用所述计数器加密的消息的机密性。
13.为了保证机密性,应当使用由所述密钥和所述发送方初始化向量构成的唯一组合对消息进行加密。该组合的唯一性是通过以下方式保证的,即在每次对消息加密后所述发送方初始化向量中的发送方计数器如上所述递增。
14.消息的成功解密需要所述接收方初始化向量等于所述发送方初始化向量。在当前情况下,当所述接收方计数器与已用于加密所述消息的发送方计数器相同时,就是这种情况,因为接收方初始化向量和发送方初始化向量的必要时存在的其他分量都是恒定的。通过将发送方计数器与经过加密的消息一起在数据分组中发送并用所述发送方计数器来更
新接收方计数器,保证所述发送方计数器和所述接收方计数器的相同。通过这种方式,在现有技术中使得所述接收方初始化向量与所述发送方初始化向量同步。
15.然而,现有技术中已知的方法具有缺点。每个数据分组都传输发送方计数器一方面增加了数据分组的大小,并且另一方面增大了传输数据分组所需的能量。
技术实现要素:
16.因此,本发明的任务是说明一种用于连续地使接收方初始化向量与发送方初始化向量同步的方法,其中至少减轻了上面展示的缺点。
17.该任务通过根据专利权利要求1的方法来解决。该方法如下所述修改了现有技术中已知的方法。
18.每次传输数据分组时,发送方执行以下步骤:
‑
利用所述发送方初始化向量的计数器(即,发送方计数器)中小于n位的最低m位形成发送方子计数器。因此,所述发送方子计数器是m位计数器。在此,m是大于零且小于n的整数。
19.‑
使用所述密钥和所述发送方初始化向量根据加密方法对消息进行加密,以保证机密性。
20.‑
利用加密的消息和所述发送方子计数器产生数据分组,并发送所述数据分组。
21.‑
然后,将所述发送方初始化向量的计数器递增。
22.每次传输数据分组时,接收方执行以下步骤:
‑
接收具有加密的消息和发送方子计数器的数据分组。
23.‑
从所述数据分组中提取所述发送方子计数器。
24.从所述接收方初始化向量的计数器(即,接收方计数器)中形成具有小于n位的最低m位的接收方子计数器。
25.‑
在所述接收方子计数器和所述发送方子计数器之间进行比较。因此在该比较期间,比较来自接收方子计数器和发送方子计数器的值。
26.‑
如果所述比较得出发送方子计数器比接收方子计数器高,则将所述接收方初始化向量的计数器的最低m位替换为所述发送方子计数器。下面也将该比较结果称为比较结果a。
27.‑
如果所述比较得出发送方子计数器比接收方子计数器低,则将所述接收方初始化向量的计数器的最低m位替换为所述发送方子计数器,然后将所述接收方初始化向量的计数器的值增加2
m
。下面也将该比较结果称为比较结果b。
28.‑
然后,使用所述密钥和所述接收方初始化向量根据所述加密方法对所述消息进行解密,然后将所述接收方初始化向量的计数器递增。
29.除了较高的(比较结果a)和较低的(比较结果b)发送方子计数器作为接收方子计数器之外,所述比较的第三种可能结果是所述发送方子计数器和接收方子计数器相同。该比较结果在下面也称为比较结果c,并且与比较结果a和b相比不需要任何其他步骤,因为所述接收方计数器已经具有正确值。
30.下表示出了针对n=16位计数器从发送方向接收方连续发送数据分组的示例,因此发送方计数器和接收方计数器也分别是16位计数器且m=8位,因此发送方子计数器和接收
方子计数器分别是8位计数器。以下标“b”结尾的数字是二进制数字,并且以下标“d”结尾的数字是十进制数字。在该示例中,由接收方接收的每个数据分组都已成功解密。如果数据分组不仅被发送而且被接收,则该数据分组的传输是成功的。
31.在第1行中,数据分组从发送方到接收方的传输是成功的,因此接收方子计数器和发送方子计数器之间的比较提供比较结果a。最后,在发送方侧将发送计数器递增。最终在接收方侧将接收方计数器递增,因为已接收到数据分组。如果未接收到数据分组,则接收方计数器不递增。递增的计数器分别在下一行(这里是第2行)才显示。
32.在第2行中传输同样成功了,因此执行与第1行相同的操作。
33.在第3行中传输未成功,因为数据分组虽然由发送方发送,但未被接收方接收。因此也不进行比较,而且虽然发送方计数器未递增,但是接收方计数器递增。
34.在第4行中传输同样未成功,因此执行与第3行相同的操作。
35.在第5行中传输成功。发送方计数器的值为513
d
,而发送方子计数器的值为1
d
。由于前两次传输未成功,接收方计数器仅具有值511
d
,而接收方子计数器具有值255
d
。因此,该比较提供比较结果b。在此,通过将接收方计数器的最低8位(1111,1111
b
)替换为发送方子计数器(0000,0001
b
),然后将接收方计数器增加2
8d
=256
d
,使得接收方计数器与发送方计数器同步。同步之后对数据分组成功地解密。最后,在发送方侧将发送方计数器递增。在接收方侧将接收方计数器递增,因为已接收到数据分组。
36.在第6行中传输成功,因此执行与第1行和第2行相同的操作。
37.在第7行中传输未成功,因此执行与第3行和第4行相同的操作。
38.在第8行中传输成功。发送方计数器的值为516
d
,而发送方子计数器的值为4
d
。由于先前的传输未成功,接收方计数器仅具有值515
d
,而接收方子计数器具有值3
d
。因此,该比较提供比较结果a。在此,通过将接收方计数器的最低8位(0000,0011
b
)替换为发送方子计数
器(0000,0100
b
),使得接收方计数器与发送方计数器同步。最后,在发送方侧将发送方计数器递增。最后,在接收方侧将接收方计数器递增,因为已接收到数据分组。
39.与现有技术中已知的方法相比,根据本发明的方法具有以下优点:为了使接收方初始化向量和发送方初始化向量同步不必再在数据分组中传输发送方计数器,而是较小的发送方子计数器就足够了。由此减小了数据分组的大小,并降低了传输该数据分组所需的能量。这特别适用于现有技术中在应用层上运行的其他方法。该方法还保证在传输未成功之后进行同步。
40.超过2
m
个数据分组的传输可能无法成功进行。在这种情况下,解密最初是不成功的。因此,在该方法的一种设计中接收方首先检查该解密是否成功。如果该解密不成功,则接收方将接收方初始化向量的计数器的值进一步增加2
m
,然后根据所述加密方法使用密钥和接收方初始化向量重新对消息解密。
41.必须向发送方和接收方预给定所述密钥和所述初始化向量。在该方法的一种设计中,由初始化器产生所述密钥和所述初始化向量并向发送方和接收方预给定。所述初始化器例如是除了发送方和接收方之外的另一设备。替代于此,例如在发送方或接收方中实现所述初始化器,并且根据公钥方法在发送方与接收方之间进行所述密钥和/或所述初始化向量的交换。
42.在该方法的一种设计中,所述加密方法实现了高级加密标准。高级加密标准(advanced encryption standard)缩写为aes。
43.在该方法的一种设计中,发送方一方面产生用于消息的消息认证码,以保证所述消息的真实性和/或完整性,并且另一方面产生具有所述消息认证码的数据分组。对应地,接收方通过评估所述消息认证码来检查所述消息的真实性和/或完整性。因此,根据该设计,所述数据分组除了具有所述消息和所述发送方子计数器之外还具有所述消息认证码。所述消息认证码也称为messsage authentication code,并缩写为mac。
44.在上述设计的替代设计中,发送方一方面产生用于所述消息和所述发送方子计数器的消息认证码,以保证所述消息和所述发送方子计数器的真实性和/或完整性,并且另一方面产生具有所述消息认证码的数据分组。对应地,接收方通过评估所述消息认证码来检查所述消息和所述发送方子计数器的真实性和/或完整性。与以上设计相反,在该设计中不仅仅为所述消息产生消息认证码,而是为所述消息和所述发送方子计数器一起产生消息认证码。由此不仅确保对消息的操纵被发现,而且确保对发送方子计数器的操纵被发现。
45.在上述两个替代设计的扩展中,发送方和接收方实现ccm或gcm模式,优选地具有aes,以产生和检查所述消息认证码。
46.ccm模式是区块编码器(blockchiffre)的一种运行模式,其从区块编码器中制作出一种认证加密方法来保证消息的机密性和完整性。ccm模式将用于加密的计数器模式与用于保证完整性的cbc
‑
mac模式组合。计数器模式是区块编码器的一种运行模式,在该模式下所述区块编码器产生流编码器。cbc
‑
mac模式规定将密码区块链模式(缩写为cbc模式)用于保证消息的完整性,其方式是将所述密码区块链模式的初始化向量设置为零,并且将cbc模式下最后加密的区块或区块部分作为mac添加到所述数据分组中。
47.gcm模式是一种运行模式,在该运行模式中可以运行区块编码器以对消息进行对称加密。该运行模式为消息提供了一种经过认证的加密方法,该方法保证真实性和机密性
两者。gcm模式代表galois计数器模式。
48.在该方法的一种设计中,产生具有随机数的所述初始化向量,以改善对机密性或真实性和完整性的保证。随机数是尽可能随机的字符组合。因此在该设计中,所述初始化向量除了计数器之外还具有随机数。通过所述初始化向量中的随机数,使预计算攻击更加困难。在使用所述初始化向量对发送方初始化向量和接收方初始化向量进行了初始化之后,两个初始化向量同样具有随机数。
49.在该方法的一种设计中,为了将数据分组从发送方传输到接收方而使用无线电技术,优选蓝牙低功耗。蓝牙低功耗在蓝牙规范中进行了描述,例如在蓝牙5规范中。蓝牙低功耗缩写为ble。该设计是特别有利的,因为ble的目的是使用尽可能少的能量来传输数据分组,并且该方法与现有技术相比降低了所需的能量。
附图说明
50.具体地,给出了很多设计和扩展该方法的可能性。为此,既参考从属于专利权利要求1的专利权利要求,又参考以下结合附图对优选实施例的描述。图1示出了用于使接收方初始化向量与发送方初始化向量同步的方法的示意图。
具体实施方式
51.附图示出了发送方1和接收方2。只有发送方1和接收方2是设备,也就是说,它们具有物理设计。其余组件没有物理设计。因此其余组件是虚拟的。这些虚拟组件的表示仅用于说明以下描述的方法,该方法用于在将加密的数据分组从发送方1连续传输到接收方2时将接收方2的接收方初始化向量3与发送方1的发送方初始化向量4同步。
52.首先产生密钥5和初始化向量。所述初始化向量具有64位的随机数6和具有n=16位的计数器。然后,向发送方1和接收方2二者预给定密钥5,使得所述密钥由发送方1和接收方2使用。此外,用所述初始化向量对接收方初始化向量3和发送方初始化向量4初始化。在该初始化之后,接收方初始化向量3具有随机数6和接收方计数器7,而发送方初始化向量4具有随机数6和发送方计数器8。接收方计数器7和发送方计数器8分别是16位计数器,它们在所述初始化之后具有相同的值。
53.发送方1执行以下步骤:
‑
利用发送方计数器8中小于n=16位的最低m=8位形成发送方子计数器9。发送方子计数器9因此是8位计数器。
54.‑
使用密钥5和发送方初始化向量4,根据加密方法对消息10进行加密,以保证机密性。为此读入消息10、密钥5和发送方初始化向量4。所述加密方法实现了aes。
55.‑
为消息10产生消息认证码12,以保证消息10的真实性和完整性。为了所述产生而实现了ccm模式。
56.‑
用加密的消息10、发送方子计数器9和消息认证码12产生数据分组11,并发送该数据分组。
57.‑
然后将发送方计数器8递增。
58.接收方2执行以下步骤:
‑
接收具有加密消息10、发送方子计数器9和消息认证码12的数据分组11。
59.‑
从数据分组11中提取发送方子计数器9。
60.‑
用接收方计数器7中小于n=16位的最低m=8位形成接收方子计数器13。接收方子计数器13因此是8位计数器。
61.‑
在接收方子计数器13和发送方子计数器9之间进行比较。
62.‑
如果该比较得出发送方子计数器9比接收方子计数器13高,则将接收方计数器7的最低m=8位替换为发送方子计数器9。
63.‑
如果该比较得出发送方子计数器9低于接收方子计数器13,则将接收方计数器7的最低m=8位替换为发送方子计数器9,然后将接收方计数器7的值增加2
m
=28。
64.‑
通过评估消息认证码12来检查消息10的真实性和完整性。
65.‑
使用密钥5和接收方初始化向量3,根据所述加密方法对消息10进行解密。为此读入密钥5。输出经过解密的消息10。然后将接收方计数器7递增。
66.最后两个步骤是在确保接收方初始化向量和发送方初始化向量一致之后进行的。在此,数据分组11从发送方1到接收方2的传输,即发送和接收,是使用蓝牙低功耗进行的。
67.附图标记1
ꢀꢀꢀꢀ
发送方2
ꢀꢀꢀꢀ
接收方3
ꢀꢀꢀꢀ
接收方初始化向量4
ꢀꢀꢀꢀ
发送方初始化向量5
ꢀꢀꢀꢀ
密钥6
ꢀꢀꢀꢀ
随机数7
ꢀꢀꢀꢀ
接收方计数器8
ꢀꢀꢀꢀ
发送方计数器9
ꢀꢀꢀꢀ
发送方子计数器10
ꢀꢀꢀ
消息11
ꢀꢀꢀ
数据分组12
ꢀꢀꢀ
消息认证码13
ꢀꢀꢀ
接收方子计数器
再多了解一些
本文用于企业家、创业者技术爱好者查询,结果仅供参考。