用于与保密相关用途的使用授权装置的制作方法

文档序号:7609458阅读:305来源:国知局
专利名称:用于与保密相关用途的使用授权装置的制作方法
技术领域
本发明涉及用于与保密相关的用途的,尤其是对保密区域的访问控制的或者用于保障交通工具安全的使用授权装置,所述使用授权装置具有用户端密钥装置,用于产生连续的交替用户代码信息,所述连续的交替用户代码信息具有连续的函数值序列vi+1=F(vi,const),对于i=0,...,N,通过重复使用单向函数F(vi,const)求出,所述函数值以逆序用于所述序列信息,以便建立所述连续的用户代码信息;以及应用端处理单元,用于确定取决于从所述密钥装置接收的所述用户代码信息的实际授权信息并且用于通过把所述实际授权信息与所述应用端所需的授权信息比较来执行使用授权检查过程,以及用于产生取决于所述比较的结果的使用释放信息,其中,所述所需的授权信息具有函数值vi,所述函数值vi已经从以前肯定的使用授权操作中处理过的所述用户代码信息转换过来。
例如,从德国专利44 11 449 C1已知这样的一种使用授权装置,其中提供将车辆加密并作为停车装置的一部分的这里所描述的使用授权装置。
这样的一种使用授权装置在所谓交替代码方法的基础上工作,其中借助于每一次使用授权检查(亦称鉴别过程)代码信息都变化的事实,增大了阻止截取发送的代码信息之后对与保密相关的应用程序的未经授权的使用的安全性。这种代码变化只可以借助于从所述密钥端至所述应用端的代码信息单向传输实现,使得关于基数或起始值和算法的机密信息既保存在密钥端又保存在应用端,按照这些算法可以从所述起始值推演出顺序的代码信息。这样,在应用端可以通过把在密钥端产生的代码信息与在密钥端发送的代码信息加以比较来检查使用授权。
为了达到代码信息单向传输的目的,指定单向函数F(vi,const),即使有可能,该函数也只有花费相当长的时间和/或财政支出才能反转。具体地说,这里可能是高级非线性布尔函数或散列函数。根据起始值v0,可以借助于以下公式,通过迭代算出新的函数值vi+1=F(vi,const),i=(0,...,N) (1)其中只有其最后一个是变量参数,其中参数const是常数和/或特定指标i的函数值和/或只有密钥装置和访问控制单元才可以知道的值。函数值以递减的顺序,从vmax至v0,供使用授权单元使用。适当的实现方案需要数值v0和const,以便以递增的顺序计算v0和vmax之间的所有函数值。在密钥装置端以及在与保密相关的应用端,起始值v0和const都必须是已知的。
此刻应该指出,为完整起见,以前所描述的类型的使用授权装置不只有限于停车装置;另一个重要的使用领域是例如对所有类型的保密区域(其中密钥必须向锁定装置本身授权)的访问控制系统。
一般说来,如果存在预期的大量的授权(例如,100,000个),那么把所有所需的数值都保存在密钥装置中是不方便的。因而,密钥装置必须有一种方法来在已知函数F的情况下,从方程式(1)和从起始值v0计算目前所需的一个或几个输出值vi。实现上述使用授权装置的简单方法的一般缺点是,就计算时间和/或在运行过程中计算各个连续的输出值所需的存储空间而言的支出波动相当大,这使它难以或甚至不可能用于资源有限的系统。在存储空间和计算时间方面具有可伸缩的成本的技术对这种类型的系统是不可缺少的。另外,在发送两个连续的输出值之间,所述系统应该运行预先精确地限定的一段时间,以便能够相应地使不同的系统参数同步。
因而,在本文开始时指定的类型的使用授权装置的情况下,本发明建议提供若干数目的层次G,其中可以借助于单向函数F(vi,const)在每一层完成若干数目的叠代函数值计算,其中存在G=[L(N)/b]个层次,其中N是起始值,L(N)是在所述双系统中表示N所需要的位数,而b是基数,用于定义每一个叠代步骤中的层次数目和函数值计算的次数([x]是大于或等于x的最小整数)。
本发明适合于实现上述单向加密方法,所述方法对在易失性和非易失性存储空间,例如RAM(随机存取存储器)和EEPROM和/或计算机性能,诸如可编程的或不可编程的方面资源有限的装置,所谓嵌入式控制器具有特别有利的效果。当本发明用在低成本嵌入式控制器上(用于例如汽车制造工业中的远程无密钥输入)时,有一些特别积极的优点,诸如执行过程的程序时间短、所述方法在运行过程中存储空间需求方面的一致性、存储器需求和执行时间方面的可伸缩性以及在运行过程中对中断的健壮响应(诸如在感应式操作的密钥单元的情况下电源中断)。另外,同样还适用于以硬接线逻辑装置的形式来实现本发明。
最好存在为每一层提供的支持点s(i),其中i=(1,...,G)。这里,以所谓支持点的形式来建立某些函数值,所述函数值或者是系统默认值或者是在算法开始以前由实际密钥装置借助于叠代算出。可以借助于每个层次或只针对某些层次的其它支持点来减少计算工作量。
从以下方程式方便地确定这些支持点s(i)的数值s(i)=N-Σj=1i(2b)j---(2)]]>其中N是在方程式(1)中定义的输出值的起始值。通常,对于负指标不计算函数值,这把方程式(2)的应用限于具有正指标的支持点。
参数b最好应该以这样的方式适应指定的支持点数目,即,把每次使用授权的函数值计算量减到最少。
通常,从当前支持点s(i)开始,应当存在在每一层中以递减顺序算出的并作为中间值保存的若干数目的函数值。一旦己经把作为新的支持点的这种中间值向下转移到下一个层次,就应当在该层次中顺序地复位作为层的支持点的中间值。
为了允许任何起始值N,可以或者以起始值N=(2b)G的形式同样地提供相应的必要的中间值,或者以起始值N=(2b)G的形式预先规定相应的必要的中间值,在这种情况下,所述方法可以是用(2b)G开始,并且执行该方法直至指标i=N。
但是,作为另一方案,还可以设想N∈{(2b)G-1,...,(2b)G-1} (3)应用于起始值,它允许方程式(2)的在计算支持点方面的无约束应用。这可以通过适当的系统默认值来实现。
若为保存从函数值算出的中间值,则设置几个缓冲区是方便的。为了在保存中间值时减少写入操作,每层次可以设置在旋转的基础上写入和读出的几个缓冲区并且将其设计成FIFO(先进先出)存储器。
将参照下文中描述的实施例阐述本发明的这些及其他方面,使其显而易见。
附图中

图1示出按照本发明的使用授权系统的推荐实施例的方框图;图2示出图解说明支持点和中间值的排列以及图1使用授权系统初始化之后的各个支持点之间的空间的示意图;图3示出图解说明支持点和中间值的排列以及在输出第八数值期间各个支持点之间的空间的示意图;以及图4示出图解说明支持点和中间值的排列以及在输出第九数值期间各个支持点之间的空间的示意图。
下面的描述涉及使用授权系统的推荐实施例,图1中根据本文中实现的方法图解说明该系统,它导致在两个连续的值的输出之间对工作存储器(例如,RAM和/或EEPROM)的不变的需求。根据所用的支持点数目,当工作存储器需要上升或相反时,是否要求较少执行时间是可伸缩的,而同时对程序存储器(ROM)的需求实际上仍旧不受其影响。
如前所述,存在默认的单向函数F(vi,const),它不能反转或只有花费相当大的支出才能反转(例如,高级、非线性布尔函数或散列函数)。根据起始值v0,可以借助于下式通过迭代算出新的函数值viVi+1=F(vi,const),i=(0,...,N) (1)其中只有最后函数值是变量参数。参数const可以是常数和/或特定指标i的函数值或只有所述使用授权装置才知道的数值。
目的是以递减顺序从vmax至v0输出函数值。因为不知道F的反函数,所以为了计算v0和vmax之间所有数值,执行过程需要v0和const。这里描述的方法需要某些函数值,作为所谓支持点,它们后者是已经存在的或者是在这里描述的算法开始以前可以从所述给定的起始值借助于叠代算出。
函数值vi必须针对指标i从N至0输出,其中,正如上面描述的,只有vi+1=F(vi,const)可以是在每一种情况下算出的。L(N)是在双系统中显示N所所需的位数,而b是基数,后者确定多少支持点是绝对必要的,以及每个层次所需的叠代函数计算的最大次数。因为总的实现是以指标i为依据的,基数b的值也可以解释为i中连续的位数位0至b形成层次1的计数器,位b+1至2b形成层次2的计数器,等等。实际的层数由下式算出G=[L(N)b]---(3)]]>这还同时对应于绝对必要的支持点数目,因为每一层要求至少一个支持点。在下文中这些支持点被指为s(i),其中,对于每一个层i,i=(1,...,G)。
可以区分所述支持点值的两种情况情况1在N=(2b)G的情况下,s(g)=N-Σj=1g(2b)j,]]>其中g=(1,...,G)。
因而,s(G)是负的。若所述数值不能算出,则这在下面描述的算法中引起轻微的变化,尽管这并不影响基本序列。
情况2在N={(2b)G-1,...,(2b)G-1}的情况下,这足以模拟下面描述算法直到指标达到N为止,并输出中间值和支持点,然后保存并将其用作初始化值。
若以b=3和N=(23)4=4096使用上面情况1,则G=4并利用方程式(3)确定支持点S(1)=vN-8=v4088s(2)=vN-72=v4024s(3)=vN-584=v3512s(4)=vN-4680=v-584这里采用s(4),如果它不能从v0算出。在输出第一个数值vN=4096之后,计数器C的值为 亦即,各个基数b=3层的计数器c(i)中的每一个都是c(i)=(111)b=7。
支持点的排列以及各个支持点之间空间的排列,如上面描述的,以图示方式表示在图2中,同时代表用于下面描述的采样算法的基数。
现在应该根据图1中图解说明的配置算出第二输出值。按照计数器的值c(i),借助于F(vi)的叠代应用通过支持点s(i)算出中间值z(i)。
它们由下式给出s(4)=v-584z(4)=v-577c(4)=7s(3)=v3512z(3)=v3519c(3)=7s(2)=v4024z(2)=v4031c(2)=7s(1)=v4088z(1)=v4095c(1)=7C=4095=(111.111.111.111)bz(1)是这里求出的第二输出值。
为了计算第三输出值,以层次计数器c(4)=7,c(3)=7,c(2)=7和c(1)=6重复整个过程,这是从计数器 推演出来的。相应地改变的中间值z(i)用于所有层次,除层次1之外,因为起始值不是s(i)。但是,s(1)总是用于层次1。对于中间值,这引起以下变化s(4)=v-584z(4)=v-570c(4)=7s(3)=v3512z(3)=v3526c(3)=7s(2)=v4024z(2)=v4038c(2)=7s(1)=v4088z(1)=v4094c(1)=6C=4094=(111.111.111.110)b而所需的输出值出现在z(1)中。一旦算出其余六个输出值,就采取以下数值s(4)=v-584z(4)=v-528c(4)=7s(3)=v3512z(3)=v3568c(3)=7s(2)=v4024z(2)=v4080c(2)=7s(1)=v4088z(1)=v4088c(1)=0C=4088=(111.111.111.000)b因而,按照它的层次计数器c(i)和前面的每次通过函数F的7次叠代,对于每一个输出值所述层次都大于1。在层次1算出各自的输出值,其中引用当前计数器c(1)来根据s(1)表示F的叠代次数。所述状态图解说明于图3。
为了针对C=4087=(111.111.110.111)b计算下一个输出数值,在输出v4088之后s(1)必须被代替。以这样的方式设计所述方法,即,一旦计数器表示c(1)=0,便使求出的数值自动地出现在z(2)中。因而,设置s(1)=z(i),并再一次把z(2)=s(2)复位到原来的数值,在计算下一个输出值之后,产生以下结果s(4)=v-584z(4)=v-521c(4)=7s(3)=v3512z(3)=v3575c(3)=7s(2)=v4024z(2)=v4030c(2)=6s(1)=v4080z(1)=v4087c(1)=7C=4087=(111.111.110.111)b图4图解说明第一次下溢之后的这种状态。
现在可以顺序地重复用于输出针对C=4087至C=4080的数值的上述各步骤,其中c(4)=7,c(3)=7和c(2)=6。在C=4080的情况下,采用于下状态s(4)=v-584z(4)=v-472c(4)=7s(3)=v3512z(3)=v3617c(3)=7s(2)=v4024z(2)=v4066c(2)=6s(1)=v4080z(1)=v4080c(1)=0C=4080=(111.111.110.000)b每次在c(1)发生下溢时,发生替代s(1)=z(i)和z(2)=s(2)。当计数器示出C=4032时,采用以下结果s(4)=v-584z(4)=v-136c(4)=7s(3)=v3512z(3)=v3960c(3)=7s(2)=v4024z(2)=v4024c(2)=0s(1)=v4032z(1)=v4032c(1)=0C=4032=(111.111.000.000)b因而,除现存的c(1)下溢之外,下一个步骤中在c(2)也发生下溢。由于所述设计的缘故,对于向上的下一个层次,s(2)的新数值处在中间值z(3)中。然后相应地设置s(2)=z(3)和z(2)=s(2)以及s(1)=z(2)和z(1)=s(1)。其结果是,对于C=4031采用于下数据s(4)=v-584z(4)=v-129c(4)=7s(3)=v3512z(3)=v3518c(3)=6s(2)=v3960z(2)=v3967c(2)=7s(1)=v4024z(1)=v4031c(1)=7C=4031=(111.110.111.111)b连续地继续进行作为向下的下一个层次的新的支持点的中间值的转入以及把所述中间值复位为同一层次用的支持点。最大的计算工作量基本上是从两个连续的输出值之间函数计算vk+1=F(vk,const)的最大次数推演出来的,因而,是从c(i)数值的最大数目(即,上述示例中28=4.7)导出的。
为了允许使用任何起始值N,或者必须提供适当的所需的支持点s(i),或者所述方法可以以(2b)G开始并可以一直进行到指标i=N,而同时在它用上述方法继续进行以前将所述系统初始化。也可以借助于每个层次,或只针对某些层次的其它支持点来减少计算工作量。也可以以这样的方式针对指定的支持点数目适配参数b,即,把每次使用授权的函数值的计算量减到最少,这也用来在整个运行时间内把系统所需的函数值计算总数减到最小。最后,在其中有些支持点带有负指标,而无法计算函数值的地方,可以在i=0下进行查询。
为了减少保存中间值时的写入操作,可以每个层次设置几个缓冲区,在旋转的基础上写入和读出,因而,设计为FIFO存储器。
权利要求
1.一种用于与保密相关的用途的,尤其是对保密区域的访问控制的或者用于保障交通工具安全的使用授权装置,所述使用授权装置具有用户端密钥装置,用于产生连续的交替用户代码信息,所述连续的交替用户代码信息具有连续的函数值序列vi+1=F(vi,const),对于i=0,...,N,通过重复使用单向函数F(vi,const)求出,所述函数值以逆序用于所述序列信息,以便建立所述连续的用户代码信息;以及应用端处理单元,用于确定取决于从所述密钥装置接收的所述用户代码信息的实际授权信息并且用于通过把所述实际授权信息与所述应用端所需的授权信息比较来执行使用授权检查过程,以及用于产生取决于所述比较的结果的使用释放信息,其中,所述所需的授权信息具有函数值vi,所述函数值vi已经从以前肯定的使用授权操作中处理过的所述用户代码信息转换过来;其特征在于设置一定数量的层次G,可以从所述各层次G,在每一层上借助于所述单向函数F(vi,const)执行一定次数的叠代函数值计算,以及存在G=[L(N)/b]各层次,其中,N是起始值,L(N)是在所述双系统中表示N所需要的位数,而b是基数。
2.如权利要求1所述的装置,其特征在于存在为每一个层次提供的支持点s(i),其中i=(1,...,G)。
3.如权利要求2所述的装置,其特征在于从以下方程式确定所述支持点s(i)的值s(i)=N-Σj=1i(2b)j]]>
4.如权利要求2或3中任何一个所述的装置,其特征在于对于具有负指标的支持点,可以不计算函数值。
5.如权利要求2至4中至少一个所述的装置,其特征在于所述参数b以这样的方式适合于指定的支持点数目,即,把每次使用授权的函数值的计算减到最少。
6.如权利要求2至5中至少一个所述的装置,其特征在于从当前支持点s(i)开始,应当存在以递减顺序在每一层次中算出的一定数目的函数值并将其作为中间值保存。
7.如权利要求2所述的装置,其特征在于一旦所述中间数值已经以新的支持点的形式向下转移到下一个层次,在所述层次中用于层次中的支持点的中间数值应当被相继复位。
8.如上述权利要求中至少一个所述的装置,其特征在于所述起始值是N=(2b)G。
9.如权利要求1至7中至少一个所述的装置,其特征在于所述起始值是N∈{(2b)G-1,...,(2b)G-1}。
10.如上述权利要求中至少一个所述的装置,其特征在于设置几个缓冲区,用于保存从所述函数值算出的中间值。
11.如权利要求10所述的装置,其特征在于所述缓冲区是FIFO存储器。
全文摘要
描述一种用于与保密相关的用途的,尤其是对保密区域的访问控制的或者用于保障交通工具安全的使用授权装置,所述使用授权装置具有用户端密钥装置,用于产生连续的交替用户代码信息,所述连续的交替用户代码信息具有连续的函数值序列v
文档编号H04L9/32GK1890918SQ200480036858
公开日2007年1月3日 申请日期2004年12月6日 优先权日2003年12月15日
发明者S·肖尔策 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1