运行在计数器模式下运行以安全传输数据的密钥流生成器的方法、具有用于安全传输数据的计数器模式运行的密钥流生成器和用于产生密钥流的计算机程序产品技术

技术编号:30135653 阅读:24 留言:0更新日期:2021-09-23 14:42
用于运行在计数器模式下运行的密钥流生成器以安全传输数据的方法、具有用于安全传输数据的计数器模式运行的密钥流生成器以及用于产生密钥流的计算机程序产品。为了保护在计数器模式下运行的密钥流生成器免于重复或不正确地产生已生成的密钥流,并且保护数据传输免于重复使用密钥流,即所谓的重用,建议在实现选项方面选择性地在两种运行类型之一中运行密钥流生成器(SSG),所述两种运行类型中一种运行类型是“加密”,一种运行类型是“解密”,其中在“加密”运行类型下,将基于第一控制数据集(SDS1)产生的密钥流(SST

【技术实现步骤摘要】
【国外来华专利技术】运行在计数器模式下运行以安全传输数据的密钥流生成器的方法、具有用于安全传输数据的计数器模式运行的密钥流生成器和用于产生密钥流的计算机程序产品


[0001]本专利技术涉及根据权利要求1的前序部分的用于运行在计数器模式下运行以安全传输数据的密钥流生成器的方法、根据权利要求15的前序部分的具有用于安全传输数据的计数器模式运行的密钥流生成器以及根据权利要求18的前序部分的用于产生密钥流的计算机程序产品。

技术介绍

[0002]从EP 3 422 657 A1已知用于划分和同步密码功能性的系统和方法,所述密码功能性例如是加密、密码完整性保护,其中在模块化构建的设备内进行为此所需要的协议适配以对网络业务进行密码处理。所述划分的目的是将信息交换限制在绝对必要的最低限度。任何组件都不应访问完成特定于组件的任务所需的数据。由此减少了对各个组件所需的信任,例如通过不可信的、特别是受到操纵的组件。这种模块化可以用于在基本控制设备和安全模块之间分配任务。
[0003]在该文献中对密码处理本身进一步细分。根据该细分,第一密码处理单元应在安全模块上提供密钥流,而第二密码处理单元应将有用数据与所述密钥流合并。第一密码处理单元的参数化,例如密钥和初始化向量的选择,是借助于标签而以标签控制的方式进行的。
[0004]在此有意义的还有,同样在基本控制设备上细分控制器功能性。第一控制器接管有用数据的分类,而第二控制器执行密码处理和后处理。在这个变型中,第一密码处理单元仅看见标签而不能访问有用数据。这提供了可信度方面的优点,并且降低了基本控制设备与安全模块之间接口的带宽,因为有用数据不必传递给安全模块。
[0005]在生成密钥流时,使用基于对称块密码(Blockchiffre)并在所谓的计数器模式下运行的密钥流生成器。在此,使用块密码对连续的计数器(counter)进行加密。结果是取决于所使用的块密码密钥的伪随机密钥流。然后将该密钥流与有用数据链接,从而创建密码。为了可以安全地使用生成的密钥流,重要的是每个计数器值恰好只使用一次,以便产生用于对有用数据进行加密的密钥流。
[0006]在计数器模式下,计数器的初始值通常被预给定为初始化向量。在EP 3 422 657 A1中描述的用于划分和同步密码功能性的系统和方法中,可能的攻击是多次传递相同的初始化向量或选择初始化向量,使得在运行期间导致计数器被使用两次。
[0007]在与从EP 3 422 657 A1已知的系统不同的系统中预计不会有这种攻击,因为在这些不同的系统中,与从EP 3 422 657 A1已知的将加密逻辑细分为多个(两个)信任区的系统不同,完整的加密逻辑发生在唯一的、非细分的信任区中。

技术实现思路

[0008]本专利技术所基于的任务是说明一种用于运行在计数器模式下运行的密钥流生成器以安全传输数据的方法、具有用于安全传输数据的计数器模式运行的密钥流生成器以及用于产生密钥流的计算机程序产品,其中保护所述密钥流生成器免于重复或不正确地产生已生成的密钥流,并且保护数据传输免于重复使用密钥流,即所谓的重用。
[0009]该任务是基于在权利要求1的前序部分中定义的方法通过特征部分中说明的方法特征来解决的。
[0010]此外,该任务是基于权利要求15的前序部分中定义的服务器通过特征部分中说明的服务器特征来解决的。
[0011]此外,该任务是基于权利要求18的前序部分中定义的用于产生密钥流的计算机程序产品通过特征部分中引用的根据权利要求1至14之一所述的方法特征来解决的。
[0012]根据在权利要求1、15和18中分别说明的技术教导,本专利技术所基于的思想在于:为了安全传输数据,在计数器模式下并且在实现选项方面选择性地在两种运行类型之一中运行密钥流生成器,所述两种运行类型中一种运行类型是“加密”,一种运行类型是“解密”,其中在“加密”运行类型下,将基于第一控制数据集产生的密钥流用于将数据、特别是有用数据加密为密码,即加密的数据或有用数据的产物,并且在“解密”运行类型下,将基于第二控制数据集产生的密钥流用于解密所述密码,其中仅当通过使用块密码密钥对在计数器模式下运行的密钥流生成器的计数器值进行加密而产生的所述密钥流无错误时才输出所述密钥流。
[0013]在本专利技术/本申请的意义上,“加密”运行类型中的术语“加密”应理解为数据或有用数据的加密和/或认证,其中因此在“加密”运行类型中产生密钥流以用于对数据或有用数据进行加密和/或认证。
[0014]在本专利技术/本申请的意义上,“解密”运行类型中的术语“解密”应理解为数据或有用数据的解密、认证和/或验证,其中因此在“加密”运行类型中产生密钥流以用于对数据或有用数据进行解密、认证和/或验证。
[0015]密钥流是如下形成的,即通过利用块密码密钥对位于有限的计数器值范围内(例如在大于2
32
的数量级中)的计数器值进行加密来形成所述密钥流,所述计数器值以与控制数据集相关的密钥流生成器调用的形式连续地确定,并且最初由包含在所述控制数据集中的初始化向量(IV=i1)给出。
[0016]在所述密钥流生成器中保持计数器的所有已经使用的计数器读数通常效率不高,因为计数器的值范围典型地在大于或等于2
32
的数量级中,这一事实是朝着本专利技术所基于的思想方向考虑的出发点。
[0017]在本专利技术的用于安全数据通信和无错误地生成密钥流的场景中,在密钥流生成器的“加密”运行类型中以日志方式记录计数器值的顺序使用,并且通过以日志方式记录来识别是否错误地使用了具有相同计数器值的块密码密钥。在此,错误地使用可能意味着具有相同计数器值的块密码密钥已被多次或顺序地多次使用,即先后多次使用。根据权利要求15在密钥流生成器的密钥流形成模块的日志存储模块中进行所述以日志方式记录,并且由于所述以日志方式记录而识别出是否错误地使用了具有相同计数器值的块密码密钥根据权利要求15发生在密钥流生成器中的密钥流形成模块的检查识别模块中。
[0018]如果在所述检查识别模块中的该识别由于以日志方式记录的计数器值表明发生了错误的使用,则接着由所述密钥流生成器输出错误消息或不输出密钥流。
[0019]相反,如果发生了无错误的使用,则所述密钥流生成器输出用于对数据加密的密钥流。
[0020]此外,在无错误使用的情况下针对“解密”运行类型下的有效性检查生成校验码,该校验码对于“加密”运行类型而言与秘密绑定。所述秘密在根据权利要求15的密钥流生成器中在密钥流形成模块的秘密模块中产生,或者从外部引入到所述密钥流生成器中并且然后存储在所述秘密模块中。为了产生所述校验码(在“加密”运行类型下)并验证该校验码(在“解密”运行类型下)需要所述秘密。从而例如可以通过推导函数从块密码密钥中产生所述秘密。然而在最简单的情况下,所述秘密被选择为与所述块密码密钥相同。
[0021]由于所述秘密对于一些实施方式(例如对称的“消息认证代码<MAC>”)而言在两个秘密模块(用于“加密”运本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于运行在计数器模式下运行的密钥流生成器(SSG)以安全传输数据的方法,其中为了传输数据(DT)、特别是有用数据(NDT),使用由密钥流生成器(SSG)基于第一控制数据集(SDS1)产生的密钥流(SST
VS
)将所述数据(DT,NDT)加密为密码(CHF)并且使用由所述密钥流生成器(SSG)基于第二控制数据集(SDS2)产生的密钥流(SST
ES
)对所述密码(CHF)中的数据(DT,NDT)进行解密,其中通过使用块密码密钥(BCS)对位于有限的计数器值范围内、特别是在大于2
32
的数量级中的计数器值进行加密来形成所述密钥流(SST
VS
,SST
ES
),所述计数器值以与控制数据集相关的密钥流生成器(SSG)调用(i1,i
3,
...)的形式连续地确定,并且最初由包含在所述控制数据集(SDS1,SDS2)中的初始化向量(IV)给出,其中IV=i1,其特征在于,a)在“加密”运行类型下a1)以日志方式记录所述计数器值的顺序使用,并且通过以日志方式记录来识别是否错误地,特别是多次或顺序多次地使用了具有相同计数器值的块密码密钥(BCS),其中a11)在错误使用的情况下,输出错误消息(FM)或不输出密钥流(SST
VS
),或a12)在无错误使用的情况下输出用于对所述数据(DT,NDT)加密的密钥流(SST
VS
)以及生成校验码(PRC
GH
),所述校验码针对“加密”运行类型与生成器特定的秘密(GH)绑定,所述秘密特别是在所述密钥流生成器中产生或从外部引入到所述密钥流生成器中,并且b)在“解密”运行类型下b1)基于生成的作为第二控制数据集(SDS2)的校验码(PRC
GH
)在基于所述秘密(GH)执行的所述校验码(PRC
GH
)的有效性检查过程中识别出所述块密码密钥(BCS)和计数器值的错误使用、特别是多次或顺序多次使用,并且由此识别出生成的代表所述第二控制数据集(SDS2)的校验码(PRC
GH
)是否有效,其中b11)如果校验码有效性检查的结果为否定,即所述校验码(PRC
GH
)不正确,则输出另外的错误消息(FM')或不输出密钥流(SST
ES
),或b12)如果校验码有效性检查的结果是肯定的,即所述校验码(PRC
GH
)是正确的,则输出用于对所述密码(CHF)解密的密钥流(SST
ES
)。2.根据权利要求1所述的方法,其特征在于,检查所述校验码(PRC
GH
)的有效性,使得在“解密”运行类型中,基于所述秘密(GH)产生另外的校验码(PRC
GH
'),并将所述另外的校验码(PRC
GH
')与在“加密”运行类型中生成的校验码(PRC
GH
)进行比较以确定一致性。3.根据权利要求1所述的方法,其特征在于,所述校验码(PRC
GH
)用于保护基于初始化向量的计数器值。4.根据权利要求1或3所述的方法,其特征在于,为了对所述初始化向量(IV)进行认证,所述校验码(PRC
GH
)是非对称签名或对称的“消息认证码<MAC>”。5.根据权利要求1、3或4中任一项所述的方法,其特征在于,在“加密”运行类型下,

在首次与控制数据集相关地调用(i1)所述密钥流生成器(SSG)时将IV=i1的初始化向量(IV)作为所述第一控制数据集(SDS1)给出,

在随后的密钥流生成(i2)时需要来自所述计数器值范围的“n”个计数器值,直到计数
器读数i2=i1+n为止,

为了以日志方式记录而存储计数器读数i2=i1+n,

在随后第二次与控制数据集相关地调用(i3)所述密钥流生成器(SSG)时,选择另外的初始化向量(IV)且i3≥i2=i1+n作为另外的第一控制数据集(SDS1)。6.根据权利要求1、3或4中任一项所述的方法,其特征在于,在“加密”运行类型下,

在首次与控制数据集相关地调用(i1)所述密钥流生成器(SSG)时将IV=i1的初始化向量(IV)作为所述第一控制数据集(SDS1)给出,

在随后的密钥流生成(i2)时需要来自所述计数器值范围的“n”个计数器值,直到计数器读数i2=i1+n为止,

为了以日志方式记录而存储计数器读数i2=i1+n,

在随后第二次与控制数据集相关地调用(i3)所述密钥流生成器(SSG)时,输入另外的初始化向量(IV)且IV=i3作为另外的第一控制数据集(SDS1),

将在第二次调用(i3)所述密钥流生成器(SSG)时输入的另外的初始化向量(IV)与存储的计数器读数进行比较,以确定是否满足初始化向量

计数器读数条件i3≥i2=i1+n,并且在此过程中如果满足所述条件,则输出用于数据加密的密钥流(SST
VS
),或者如果不满足所述条件,则输出所述错误消息(FM)。7.根据权利要求1、3或4中任一项所述的方法,其特征在于,使用所述错误消息(FM,FM')来显示和/或设置错误状态,例如作为输出的错误比特。8.根据权利要求1至4任一项所述的方法,其特征在于,随着在“解密”运行类型下的另外的错误消息(FM'),防止输出用于对所述密码(CHF)解密的密钥流(SST
ES

【专利技术属性】
技术研发人员:H
申请(专利权)人:西门子股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1