用于改进随机数发生器使之更耐电流测量的攻击的方法

文档序号:6657244阅读:259来源:国知局
专利名称:用于改进随机数发生器使之更耐电流测量的攻击的方法
技术领域
本发明涉及一种对产生随机数或随机源的方法的改进,特别涉及一种在密码记录系统中开发的源,诸如智能卡上的随机数发生器。
具体来讲,它用于在以下类型电子设备的测试和验证中实现智能卡;个人计算机存储卡国际协会(PCMCIA)卡;徽章;非接触卡,或其他手持、便携或手提的设备。
大多数公钥密码系统(也称为“非对称密码”系统)和大多数密钥系统(也称为“对称密码”系统)需要形成秘密随机数。这样的随机数(随后将作为密钥使用),必须是不可预测的先验以及没有任何规律使它们能够通过穷举或改进的穷举搜索策略被找到,在这些搜索策略中首先查找最可能的密钥。
在一个很难计算反函数的函数的基础上构建一个随机源是可能的。用f表示这样一个函数。有可能通过这样来构建一个随机源开始先选择一个随机初始化变量s,并将函数f应用于一序列值s,s+1,s+2,……。该随机源的输出被定义为f(s),f(s+1),f(s+2),……。作为所用函数f的性质的一个函数,最好仅保留输出f(s),f(s+1),f(s+2),……的几位。
在美国国家标准协会标准X9.17中规定了一种用于在很难计算反函数的函数的基础上产生随机数的方法。该方法使用带有一个必须只在该算法中使用的密钥K的数据加密标准(DES)算法。该用于产生随机数的方法将一个64位随机秘密整数s和一个整数m作为输入,并返回m个64位随机整数x1,x2,...,xm作为输出。该方法地特征在于以下三个步骤1)利用DES算法,使用密钥K对一个表示日期数据的值D加密,并将结果放入整数变量I。
2)对j从1到m的范围,执行以下步骤;2)a)用s XOR I替换s。
2)b)将通过使用密钥K的DES算法加密s的结果放入xj。
2)c)用xjXOR I替换s。
2)d)将通过使用密钥K的DES算法加密s所得的结果放入s。
3)返回序列(x1,x2,...,xm)作为输出。
有可能在一个应用中使用这个随机数发生器,该应用中已经具有该随机数发生器,但被视为品质不充分,例如在一个智能卡的微处理器板上的随机数发生器。在该情况中,使用上述方法以改进随机数发生器的品质。该方法将一个64位随机秘密整数s和一个整数m作为输入,并返回m个64位随机整数x1,x2,...,xm作为输出。该方法使用带有必须只在该算法中使用的密钥K的数据加密标准(DES)算法。该方法使用一个源S,其品质被视为对于不充分的64位随机整数。该方法的特征在于以下三个步骤1)对j从1到m的范围;1)a)通过源S产生整数I。
1)b)用s XOR I替换s。
1)c)将通过使用密钥K的DES算法加密s的结果放入xj。
1)d)通过源S产生一个整数I。
1)e)用xjXOR I替换s。
1)f)将通过使用密钥K的DES算法加密s所得的结果放入s。
2)返回序列(x1,x2,...,xm)作为输出。
显然在一个智能卡上实现一个密钥密码算法(例如DES算法)会遭受包含电流消耗的示差分析也就是差动功率分析(DPA)使之可能发现密钥的攻击。这种DPA攻击的原理是基于微处理器执行指令的功率消耗(也就是消耗的电流)会根据被处理的数据项而变化这一事实。为了发现该密钥,必须知道该密码算法的输入或输出消息。
因此,上述两种产生随机数的方法都会遭受DPA类型的攻击。作为上述两种方法的输出返回的随机数是密码算法的输出消息。于是在该智能卡的功率消耗的基础上,有可能发现密码密钥K,然后因此可以预测出该随机数发生器的输出。
本发明中的方法包括对上述产生随机数的方法的一个改进,以便使它们能够经得起DPA类型的攻击。
用于产生随机数的第一种改进方法使用具有必须只在该算法中使用的密钥K的数据密码标准(DES)算法。它将一个64位的随机秘密整数s和一个整数m作为输入,然后将m个64位随机整数x1,x2,...,xm作为输出返回。该方法使用一个中间整数变量y。该方法的特征在于以下三个步骤1)利用DES算法,使用密钥K对一个表示日期数据的值D加密,并将结果放入整数变量I。
2)对j从1到m的范围,执行以下步骤;2)a)用s XOR I替换s。
2)b)将通过使用密钥K的DES算法对s加密的结果放入整数变量y中。
2)c)将y XOR s的结果放入xj。
2)d)用y XOR I替换s。
2)e)将通过使用密钥K的DES算法加密s的结果放入s。
3)返回序列(x1,x2,...xm)作为输出。
在这个用于产生随机数的改进方法中,DPA类型的电流测量攻击是不可能的,因为该DES密码算法的输入和输出消息是不知道的。
用于产生随机数的第二种改进方法是用于增加一个被认为品质不充分的随机数发生器的品质。该方法将一个64位的随机秘密整数s和一个整数m作为输入,然后将m个64位随机整数x1,x2,...,xm作为输出返回。该方法使用具有必须只在该算法中使用的密钥K的数据密码标准(DES)算法。该方法使用一个品质被视为不充分的64位随机整数源S。该方法特征在于以下两个步骤1)对j从1到m的范围;1)a)通过源S产生一个整数I。
1)b)用s XOR I替换s。
1)c)将通过使用密钥K的DES算法加密s的结果放入y。
1)d)将y XOR s的结果放入xj。
1)e)用y XOR I替换s。
1)f)将通过使用密钥K的DES算法加密s的结果放入s。
2)返回序列(x1,x2,...,xm)作为输出。
在该用于产生随机数的改进方法中,DPA类型的电流测量攻击是不可能的,因为DES密码算法的输入和输出消息是不知道的。
于是,前述的本发明的两种产生随机数的方法使获得一个经得起DPA类型电流测量攻击的随机数发生器成为可能。
权利要求
1.一种用于使用带有必须用于该算法中的密钥K的数据密码标准(DES)算法产生随机数的方法,所述方法将一个64位的随机秘密整数s和一个整数m作为输入,所述方法将m个64位随机整数x1,x2,...,xm作为输出返回,所述方法的特征在于其包括如下三个步骤1)利用DES算法,使用密钥K对一个表示日期数据的值D加密,并将结果放入整数变量I;2)对j从1到m的范围2)a)用s XOR I替换s;2)b)将通过使用密钥K的DES算法对s加密的结果放入整数变量y中;2)c)将y XOR s的结果放入xj;2)d)用y XOR I替换s;2)e)将通过使用密钥K的DES算法加密s的结果放入s;3)返回序列(x1,x2,...,xm)作为输出。
2.一种用于产生随机数、并使之有可能改进一个被认为品质不充分的随机数发生器的品质的方法,所述方法将一个64位的随机秘密整数s和一个整数m作为输入,并将m个64位随机整数x1,x2,...,xm作为输出返回,所述方法使用了具有必须用于该算法中的密钥K的数据密码标准(DES)算法,所述方法使用一个整数中间变量y,所述方法使用一个品质被认为不充分的64位x1,x2,...,xm随机整数的源S,所述方法的特征在于包括如下两个步骤1)从j从1到m的范围1)a)通过源S产生一个整数I;1)b)用s XOR I替换s;1)c)将通过使用密钥K的DES算法加密s的结果放入y;1)d)将y XOR s的结果放入xj;1)e)用y XOR I替换s;1)f)将通过使用密钥K的DES算法加密s的结果放入s;2)返回序列(x1,x2,...,xm)作为输出。
3.一种实现了根据权利要求1或2所述的方法的设备,所述设备特征在于,它是一种手持的、便携的或手提的设备。
4.如权利要求3所述的电子设备,其特征在于,它是一个智能卡。
5.如权利要求3所述的电子设备,其特征在于,它是一个非接触卡。
6.如权利要求3所述的电子设备,其特征在于,它是一个个人计算机存储卡国际协会(PCMCIA)卡。
7.如权利要求3所述的电子设备,其特征在于,它是一枚徽章;
8.如权利要求3所述的电子设备,其特征在于,它是一个智能表。
全文摘要
本发明涉及两种用于改进随机数发生器以便使它们更耐电流测量攻击的方法。其特别设计为在电子设备如智能卡、PCMCIA卡、徽章、非接触卡或其手提设备中实现。它包括利用使用密钥K的DES算法加密一个表示一个日期信息的值D,然后将该结果放入一个整数变量I;2)对j从l到m的范围:2a)以s XOR I代替s;2b)将利用使用密钥K的DES算法加密s的结果放入y;2c)将y XOR s的结果放入x
文档编号G07F7/10GK1360692SQ00810279
公开日2002年7月24日 申请日期2000年7月12日 优先权日1999年7月15日
发明者J·-S·科伦, D·纳卡彻 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1