使用单向函数的数学约束型密钥的生成的制作方法

文档序号:7609514阅读:242来源:国知局
专利名称:使用单向函数的数学约束型密钥的生成的制作方法
背景技术
本发明涉及一种用于生成密钥的方法及装置。采用单向函数及质数测试来提供高度保密的模数。例如,可提供用于Rivest-Shamir-Adleman(RSA)公共密钥加密算法的模数。本发明例如可用于加密数据,该数据经由如卫星分布网络或有线电视网络这样的宽带通信网络而与译码器族群通信,或者用于任何其它安全装置。
与宽带通信网络的译码器族群通信的视频、音频及其它数据在头端器的一个或多个密钥下经过加密,以提供对数据的存取控制。在可寻址接收器制造时,生成并使其载入仔数(seed)数据。从而当在通信网络中运用这种接收器时,其即可处理包含密钥的信息。然而,有敌意的攻击者也可通过各种已知的攻击方法(例如芯片的拆封、探测等)获得这种仔数数据。一旦攻击者具有该仔数信息,其即能解密送至该接收器的所有信息,从而永久地或在长期地使该接收器泄密。
一种在接收器制造时克服这个问题的方法是由接收器使用一预定的函数来处理预置仔数(pre-seed),从而导出仔数。其后即使该预置仔数随后为攻击者所发现,除非攻击者知道该预定函数,否则攻击者仍无法获得仔数。
此预定函数可为单向函数(one-way function)。一单向函数基本上是不可逆的,以致经该单向函数处理的输入数据无法由未经授权人员所恢复。单向函数可包含分布散列函数(distribution hash function),其中以一种或多种加密算法将输入数据加密,并且例如使用异或(XOR)函数,将所得加密的数据与输入数据散列。因而,假定有一仔数,通过用单向函数处理预置仔数来获得仔数,则在不知道该单向函数的情况下通过尝试-错误型的攻击来复原该仔数基本上是不可能的。
一般而言,例如从芯片读取储存信息(而非用以生成该储存信息的预置仔数载入信息)的攻击者通过一单向函数(OWF)而反向工作,以重建预置仔数载入信息。因为该攻击者不能反向执行这一单向函数,并且因其没有用以将预置仔数载入芯片的原预置仔数载入信息(pre-seedload message),故其无法将有效的仔数载入接收器中的芯片。OWF的这种运用通常仅发生在生产译码器的工厂而非网络。因而本领域中的译码器通常并不接收使用这种技术的信息。
当预置仔数是对应于例如数据加密标准(DES)的位串或密钥时,上述将预置仔数供至译码器的技术是适当的。有效的DES密钥基本上包含任何随机的56位串。因此,受单向函数处理的DES密钥导致可用做另一DES密钥的输出数据。尽管DES密钥在许多情况下可提供适当的安全性,然而用RSA密钥可达到与公共密钥加密相关的不同安全特性。
RSA公共密钥密码系统是在公共密钥密码技术中广泛使用的标准。在这一系统中,将信息Y加密以获得密文(cyphertext)X=YK2(模数N)。公共密钥由(K2,N)所定义,其中K2为公共指数,模数N为二个大质数P及Q的乘积。此外,K2<N,而且K2对于欧拉_函数_=(P-1)·(Q-1)为相对质数。如两个整数无共同的质数因子,则互为相对质数。亦即,它们唯一的共同因子为1。系统的安全性基于将N分解为其P及Q两个分量的困难。在解密操作时,信息Y从密文X恢复成Y=XK1(模数N),其中K1为私有密钥或私有指数(private exponent),而K2-1=K1模数(_)。
因为数目越大(例如56位及更长的位串),则质数的发生率就越不大可能发生,所以受单向函数处理的有效RSA密钥K2极不可能导致另一有效的RSA密钥。


图1显示位长度与质数数目百分比之间已知的渐近线关系。特别是质数定理说明了对于X值,小于X的质数的数目渐近地等于X除以X的对数。x轴110显示质数的位数,而y轴120显示质数的百分比。例如,对于56位的二进制数,全部数目中仅有约0.025%为质数。如曲线130所示,此比例随位长度降低。即使将单向函数用于随机生成,随机生成的数字为质数的概率也符合同一比例。不大可能以单向函数处理RSA密钥,从而生成有效的RSA密钥。同样,因为单向函数的输出最好以随机数模式化,该输出不太可能满足任何罕见的数学约束(improbablemathematical constraint),质数性仅为一例。
因此,希望能提供一种计算上有效(computational efficient)的系统,用于以单向函数来生成数学约束型的密钥,例如有效的RSA密钥。这一系统应提供一种高度安全的密钥,例如预置仔数,其受到选定加密系统及单向函数两者的保护。
还希望提供一种具有传输站或头端器的通信网络,其中如RSA公共指数(public exponent)K2及模数N=P·Q这样的数学约束值以相同或不同的单向函数生成,并根据K2及N下的该RSA系统而将如视频、音频这样的数据或其它数据进行加密。
还希望提供一种具有预置仔数数据的预置仔数载入信息,该预置仔数数据同样受到接收器或译码器中芯片(亦即集成电路)内的单向函数的处理,以便推导出K1及N,从而使加密的的视频或其它数据的得以被译码。
本发明提供了具有上述及其它优点的系统。
在生产编码器时,使用单向函数处理预置仔数的数据,并测试确定经过处理的数据是否满足某些数学约束条件,例如质数。若如此的话,则使用测试过的数值,举例来说,形成RSA模数N及密钥K2。在有线或卫星电视网络(举例来说)中,像视频、音频或其它数据这样的数据Y随后经过加密,从而获得加密的数据X=YK2(模数N),并在网络上传送至译码器族群(décor population)。
此外,特定授权的译码器具有储存RSA密钥的芯片,在译码器生产时,通过该译码器所进行的预置仔数数据的单向函数处理,形成了该RSA密钥。使用这些RSA密钥将加密的数据X加以译码,从而恢复未加密数据Y=XK1(模数N)。
最好通过将随机位串细分成数个片段来获得预置仔数数据,然后由单向函数独立地处理各片段从而获得对应的处理过的片段。将处理过的片段组合以获得处理过的位串,然后将该位串作为一个整体来测试如质数性这样的数学约束条件。
一般而言,本发明并非特定用于RSA,而可用于任何要生成数学约束型密钥的场合。基于质数的RSA密钥仅为数学约束型密钥的一例。亦即可涵盖已经存在和正在出现的任意特性的其它约束,例如椭圆曲线密码系统。
一种在此所示用以生成密钥K2的特殊编码方法包括生成第一组随机值Pre-P(例如512位的位串)的步骤。以第一单向函数来处理至少该Pre-P值的一部分,从而获得对应值P。Pre-P最好包含经单向函数个别处理过的数值(例如位)组。测试P值,看其是否满足例如质数性的数学约束条件。若P不满足该约束,则重复上述步骤以形成新的P值,直到满足该约束为止。最后形成作为P值及其它变量P及K1函数的密钥K2。
特别是,第二组随机值Pre-Q可通过类似于pre-P值的方式处理,从而导出也满足该数学约束的Q值。随后形成模数N=PQ及欧拉_函数_=(P-1)(Q-1)。
其后,用单向函数处理第三组随机值pre-K1以导出K1值。然后确定K1对_是否为相对质数。若欧几里德算法表明K1及_的最大公约数(GCD)为1,则此条件满足。若此条件不满足,则形成其它K1值,直到该条件满足为止。
然后可利用欧几里德扩展算法(Extended Algorithm),亦即K2=K1-1(模数_),形成密钥K2。可在K2及N下将数据Y加密,例如使用X=YK2(模数N)。例如,可在一编码器上对例如电视节目的数据加密。
同时根据本发明,提供了一种用于生成密钥K1的译码方法。最后将在编码器上导出K2的pre-P、pre-Q及pre-K1值提供给译码器。在该译码器,以先前使用的单向函数分别处理pre-P及pre-Q以形成P及Q。然后如前所述地形成模数N=PQ。
使用相同的单向函数处理用在编码器的第三组随机值pre-K1以导出K1值。然后可使用K1及N将加密的数据加以译码。例如,可使用Y=XK1(模数N)对数据X译码。
加密的信息X可经具有译码器族群的宽带通信网络而从该编码器传送至译码器,P、pre-Q及pre-K1可作为仔数载入信息而本地储存在译码器的芯片中,例如芯片内或在智能卡中。
还说明了对应的编码装置及译码装置。
图1说明质数理论。
图2表示根据本发明具有编码器及译码器的宽带通信网络。
图3表示根据本发明的编码器。
图4a示出根据本发明的编码方法的第一部分。
图4b示出根据本发明的图4a编码方法的第二部分。
图5示出根据本发明的译码器,及图6示出根据本发明的译码方法。
发明详述本发明涉及一种使用单向函数并测试数学约束条件(例如质数)以生成数学约束型密钥(例如RSA密钥及模数)的方法及装置。
例如宽频带有线电视或卫星分布网络的条件存取(conditionalaccess,下文简称CA)系统将消息(message)中的信息(information)传送至储存该信息的可信组件(trusted component)。CA系统的攻击者通过移去和重发使用该组件正常信息传递语法及处理的信息,有时可非法地繁衍或复制可信组件。因此对于所储存的信息,希望其存在形式能防止其作为合法的信息传递信息而再度使用。这一问题被称之为“信息传递及再使用问题”。
典型的单向函数(OWF)具有一个或多个输入IN1、IN2、...,以及一输出OUT。其显著的单向特性为·给出所有输入IN1、IN2、...,则易于计算OUT;不过·给出OUT及至少1个遗漏的输入(missing input)IN1或IN2或...,则计算遗漏的输入在计算上是不可行的。
计算上不可行的意思是除了简单尝试遗漏变量的全部可能值,从而确定正确值以外,尚不知有更好的方法。
在本发明中,可使用具有一个输入及一个输出的简单OWF,其中OUT=OWF(IN)易于计算,不过IN=OWF(OUT)-1则不然。
在如有线电视网络这样的宽带通信网络中,根据付费而将电影、运动新闻及其它视频、音频及数据(“服务”)提供给在译码器族群中得到授权的译码器。为防止未获授权人员利用某项服务进行观赏或其它活动,将该项服务在一个或多个密钥下加密。在得到授权的译码器提供仔数或预置仔数数据(例如,仔数载入信息)用来生成密钥,以便使该加密的服务得以解密。例如,可将仔数或预置仔数数据储存在译码器内部的芯片或在智能卡中。因此,在许多译码器中最敏感的信息为仔数。仔数与公共单元地址(public unit address,其为各译码器的唯一标识符)组成了组件唯一的和不可变的身分。在译码器内的全部密码功能都建立在某种形式的仔数基础上。
在过去,攻击者由一组件析取仔数并使其载入多个其它组件,从而达到复制或繁衍安全组件的目标。这一过程通常称为“繁衍(cloning)”。某些译码器设计成接收下列形式的仔数载入信息单元地址+仔数-1+仔数-2+仔数-3+仔数-4在此信息中提供了四个仔数仅为一例。可用更少或更多的仔数。例如,此信息所载入的五段信息可不作改动地置于译码器内存的五个区域中。在译码器投入使用后,攻击者可找出进入这五个记忆区并移除信息的方式。因为此信息容许原仔数载入信息的生成,这种攻击会使得“剽窃者”制作未获授权的繁衍译码器单元。因其将导致网络经营者收入及其它的损失,因此是重大问题。
可使用预置仔数取代在仔数载入信息中所用的仔数。预置仔数载入信息可具有下列形式单元地址+预置仔数-1+预置仔数-2+预置仔数-3+预置仔数-4当在译码器收到预置仔数载入信息时,使用OWF处理预置仔数以生成仔数单元地址[储存]=单元地址[接收]仔数-1[储存]=OWF(预置仔数-1[接收])仔数-2[储存]=OWF(预置仔数-2[接收])仔数-3[储存]=OWF(预置仔数-3[接收])仔数-4[储存]=OWF(预置仔数-4[接收])这一方法提供了较高的安全度,因为现在攻击者要计算从安全组件内存所析取的仔数的预置仔数从计算上是不可行了。例如为从仔数-1计算预置仔数-1,攻击者必须计算预置仔数-1=OWF-1(仔数-1)但只要所选OWF足够的强,这就是不可解的问题。特别是基于DES的OWF已经过了仔细研究并认为相当可靠。该OWF方法解决了DES密钥传递的信息传递及再使用的问题。
注意,当使用这一OWF方法时,基本上是假设经OWF来通过有效的DES密钥将形成也为有效DES密钥的输出。如不是这样,则仔数即非有效的DES密钥,使得这些仔数无效用。
使用任何适当的随机位来源及普通的程序易于生成DES密钥步骤1.生成56个随机位。
步骤2.将所有这56个当成有效DES密钥使用。
在此所用“随机”一词涵盖了“假随机”。应认识到,实际上纯随机程序是很难达成的。
采用下列复杂的数值程序而互异地生成RSA密钥步骤1.选取(很大的)模数尺寸,例如1024位。
步骤2.如下随机地生成512位的质数Pa)生成512随机位。
b)将这些位组合成数字P。
c)测试P是否为质数。
d)若为质数,保留P并转到步骤3。
e)若非质数,回到步骤2a。
步骤3.对另一个512位的质数Q重复步骤2。
步骤4.形成1024位模数N=P·Q。
步骤5.形成欧拉_函数,_(PHI)=(P-1)·(Q-1)。
步骤6.随机地生成密钥K1,其中K1对(P-1)·(Q-1)必须为相对质数a)生成1024随机位。
b)将这些位组合成数字K1。
c)测试K1对(P-1)·(Q-1)是否为相对质数。
d)若为相对质数,转到步骤7。若不是,则回到步骤6a。
步骤7.使用欧几里德扩展算法,从密钥K1及(P-1)·(Q-1)导出密钥K2。
步骤8.舍弃P,Q及(P-1)·(Q-1)(重要)。
步骤9.保留以下内容用于RSA加密a)K1
b)K2c)模数N=P·Q步骤2及3为有关本发明在DES密钥生成上问题的差异(problematicdifference)。满足数学约束条件(例如质数性)的数字的随机生成是一个随机的过程,会生成许多非质数的数目。这是因质数相对稀少(如前面关于图1所述),并且没有直接生成质数的已知方法。所以代之以生成随机数字并测试其是否为质数。当找到质数时,即可停止搜寻。
但是,如下列讨论所显示的,RSA公共密钥的生成有问题。可将一个密钥的“熵(entropy)”定义成对N位密钥尺寸的有效密钥的数目。N位的最大的“熵”密钥具有2N个有效密钥。以某种方式受约束的密钥具有较小熵值,因而约束愈严则熵即相应地愈低。因固定的密钥仅有单一值,故其为退化的熵值(亦即具有“零熵”)。DES密钥、RSA模数、RSA密钥K1及RSA密钥K2均可根据熵而从最低熵值至最高熵值排序如下RSA密钥K2、RSA模数、RSA密钥K1及DES密钥。
这些熵的排序出自以下理由·由于N位尺寸的DES密钥具有2N个有效密钥,DES密钥为最大熵值。任何N位数字均为有效密钥。
·因是随机选取的,RSA密钥K1为中高的熵,不过对(P-1)·(Q-1)约束(宽松地)为相对质数。随机选取值对同样尺寸的(P-1)·(Q-1)为相对质数是相当可能的,所以相对少的值为无效。
·因以质数生成,RSA模数具有中低的熵。在数域中质数是稀少的,因而如图1所示,其生成不太可能发生。需经多次尝试以生成单一有效的RSA模数。
·因一个有效的K2值是直接从密钥K1及模数N推导出来,而非随机地生成,故RSA密钥K2具有零熵。因此密钥K2具有退化的(degenerative)熵。
对于传统的56位的DES密钥,仅需生成56随机位以便具备好的密钥。这是因56位密钥的全部256个可能值都是拥有相同安全度的合法DES密钥。然而公开密钥算法建立在数字理论原理的基础上,所以情况并非如此。若生成了N位的候选RSA模数,则大部分情况下,这些模数甚至并非有效的模数而且必须舍弃。例如RSA公共密钥模数必须是二个大质数的乘积,因此每次要从随机生成的位来组合候选的密钥,还要进行进一步测试以知道其是否真的是有效密钥。
在RSA中,进行测试以确定组合的位是否构成质数。在其它算法中,除质数测试外还有其它测试,而且这些测试可能格外复杂。本发明提供的系统在进一步做例如质数性有效测试之前的最初随机位生成阶段中进行OWF操作。然后,若找出有效数(例如质数),即捕获了输出该有效数的OWF的输入。
例如,若将某个8位密钥当做一个“迷你DES”,则有256个合法的8位尺寸的密钥(亦即,28=256)。如以各自为4位的P和Q来生成一个8位RSA模数N=P*Q,即会受限于仅有5个可接受的4位质数(亦即,3、5、7、11和13),而生成5*5=25个可能的8位RSA模数N。随机生成这些4位数字中的一个的可能性仅为5/16,因此就可能不会生成OWF。若某一未定算法XYZ所具有的密钥除质数外,还受其它约束(例如,“所有密钥必须可为13除尽”),则会遇到仅在数学约束类型上相异的相似情况。
另外,有19个可为13除尽的8位数字,亦即13、26、39、52、65、78、91、104、117、130、143、156、169、182、195、208、221、234及247。因此,对这种约束密钥系统,随机地生成8位数字,即仅有19/256的成为有效密钥的机会。在相似技术只是相关的情况下,这简直是除质数性外的另一约束。因此,本发明意在包括所有这些数学约束系统,而非仅仅RSA。
OWF生成最宜模式化成随机数的输出。当所要的密钥类型不是最大熵量时,本发明所解决的挑战是将这一OWF输出当做密钥。可能一个给定的OWF函数输出不是有效的RSA密钥或模数,若仅有一个输出可用,其将禁止使用OWF。即使通过重复的尝试有多个输出可用,其程序也必需要容许有进行这种尝试的时间,以便获得有效的输出。
因任何数字(例如具有56位的长度)都是有效的DES密钥,DES适于接收OWF的输出。该数目是否直接来自随机的位来源或者来自OWF的输出是无关紧要的,因两者皆可用。因随机位很容易以相当高速率生成,基于此缘故DES密钥的生成极有效率并适于应用。
相比之下,RSA密钥K2非常不适于作为OWF的输出,因为几乎不可能通过随机模式的过程而生成独自的有效K2值。
由于其熵较低,RSA密钥K1不很适于接收OWF的输出。不过若来自多次尝试的多个输出为可用的,获得有效的K1可能是可行的。仅具有一个OWF输出的应用(例如仔数载入)无法以RSA密钥K1动作。
不过从图1看到,当做RSA模数使用时,所知的随机数或OWF输出仅具有非常小成为有效的概率。RSA模数为密钥制作的一部分且首先生成,因此RSA密钥的生成很缓慢且无效率。还有更糟的是即使找出了有效模数,在未成为无效模数时不能通过OWF是极为可能的。
使用有效的RSA模数且通过OWF向后操作以导出计算模数的输入并无可能。这就是说,通过单向函数向后操作在定义上是不可计算的。将OWF输出直接用做RSA模数是完全不可行的。因此不能使用传统的OWF仔数载入信息方式,而留下信息传递及再使用的问题。
本发明解决的问题是在OWF的输出获得有效的RSA模数。
此后,“RSA密钥生成”或“密钥生成”一词应包含RSA模数及密钥K1与K2生成程序两者,而且所说明的OWF假设为具有64位输入及输出。可使用较少或较多的位。此外,错误更正可使用检查位。
可如下使用OWF制作RSA密钥及模数。在传统上,随机密钥生成为与如何使用所制作的有效密钥不同的程序。因DES密钥很容易生成而且即使紧接着通过OWF仍有效,故此程序可行。不过当使用传统方法生成RSA密钥时,将密钥的生成与仔数载入信息的生成分开是不可能的。
根据本发明,仔数载入信息OWF并入RSA密钥及模数生成的本身程序中。这是在程序中三个特别处所完成的,导致以下修改的RSA密钥及模数生成程序步骤1.选择(大的)模数尺寸,例如1024位。
步骤2.随机生成512位质数P如下a)生成512(=8×64)随机位。
b)将各64位组合成8件或片段,称为Pre-P1...Pre-P8。
c)令Pre-P1...Pre-P8分别通过OWF以形成P1...P8。
d)将P1...P8组和,恢复成512位数目P。
e)测试P是否为质数。
f)若P为质数,保留P及Pre-P1...Pre-P8并转向步骤3。
g)若P非质数,舍弃Pre-P1...Pre-P8并回到步骤2a。
步骤3.对质数Q重复步骤2以在过程中形成Pre-Q1...Pre-Q8。
步骤4.形成1024位模数N=P·Q步骤5.形成欧拉_函数=(P-1)·(Q-1)步骤6.随机生成密钥K1,其中K1对(P-1)·(Q-1)须为相对质数a)生成1024随机位。
b)将各64位组合成16个数目Pre-K11...Pre-K116。
c)令Pre-K11...Pre-K116分别通过OWF以形成K11...K116。
d)将K11...K116组合成1024位数目K1。
e)测试K1对(P-1)·(Q-1)是否为相对质数。
f)若为相对质数,转向步骤7。若否,则回到步骤6a。
步骤7.由欧几里德的扩展算法从密钥K1及(P-1)·(Q-1)导出密钥K2。
步骤8.舍弃P、Q及(P-1)·(Q-1)(重要)。
步骤9.保留下列内容以便在OWF信息传递以及RSA加密中使用a)Pre-K11...Pre-K116b)K2c)Pre-P1...Pre-P8d)Pre-Q1...Pre-Q8以上本发明的程序容许了OWF输出的有效RSA密钥的生成。现在OWF已结合至密钥生成本身的过程,例如在P、Q及K1生成的过程。
可将OWF RSA密钥生成程序用于解决信息传递及再使用问题,如下所示。目的是将模数N及密钥K1传送至接收器/译码器。因密钥K2仅在头端器用于信息加密,所以接收器不需要密钥K2。密钥K1仅在译码器中用于信息解密。
步骤1.使用上述的OWF程序,生成RSA密钥变量Pre-K11...Pre-K116,Pre-P1...Pre-P8,Pre-Q1...Pre-Q8及K2。该OWF可具有64位输入及输出。
步骤2.形成下列形式的RSA预置仔数载入信息单元地址+Pre-P1...Pre-P8+Pre-Q1...Pre-Q8+Pre-K11...Pre-K116步骤3.将RSA预置仔数载入信息送至信息接收器(例如,译码器)。
现在信息接收器(例如译码器)进行所有处理。注意该译码器必须有用于上述密钥生成的OWF。该OWF可供至在使用各种方法的译码器族群中的译码器。例如,在制造译码器时使用智能卡等将OWF安装于非易失性内存中,或经由通信网络下载。可将OWF本身加密以防止中途截取及危害。
译码器进行下列步骤以导出用于将加密的视频、音频或其它数据解密的K1及N步骤1.处理Pre-P1…Pre-P8a)令Pre-P1...Pre-P8通过OWF以形成P1…P8。
b)舍弃Pre-P1...Pre-P8(重要)。
c)重组P1...P8以形成P。
步骤2.处理Pre-Q1…Pre-Q8a)将Pre-Q1...Pre-Q8通过OWF以形成Q1...Q8。
b)舍弃Pre-Q1...Pre-Q8(重要)。
c)重组Q1...Q8以形成Q。
步骤3.处理P及Qa)将P与Q相乘以形成模数N。
b)舍弃P及Q(重要)。
步骤4.处理Pre-K11…Pre-K116a)将Pre-K11...Pre-K116通过OWF以分别形成K11...K116。
b)舍弃Pre-K11...Pre-K116(重要)。
c)重组K11…K116以形成K1。
在此点,信息接收器/译码器具有所要的信息,其通过RSA仔数载入信息信息通过OWF而导出。若攻击者无意中取出了模数N及密钥K1,因首先未将模数N分解因子则P及Q无法形成,故其不能形成有效的RSA预置仔数载入信息。此为RSA的安全性所根据的“困难问题”。第二,即使已知P,Q或K1,由于使用OWF,Pre-P1...Pre-P8,Pre-Q1...Pre-Q8及Pre-K11...Pre-K116无法导出。。
本发明于下列附图中说明。
图2示出根据本发明具有一编码器及译码器的宽带通信网络。编码器一般示于200,而译码器一般示于260。可在有线电视或卫星分布网络的头端提供编码器200,而译码器260表示在译码器族群中的一译码器,例如在用户家。编码器200包含一密钥及模数生成器205,且选择性地含多路复用器(MUX)240。
密钥及模数生成器205使用单向函数以生成许多预置的片段Pre-P1至Pre-P8,Pre-Q1至Pre-Q8及Pre-K1-1至Pre-K1-16。视需要可将不同的单向函数用于不同片段组。例如,一第一单向函数可用于Pre-P1至Pre-P8(Pre-P),一第二单向函数可用于Pre-Q1至Pre-Q8(Pre-Q),及一第三单向函数可用于Pre-K1-1至Pre-K1-16(Pre-K)。对一组内的各片段使用不同的单向函数亦是可能的。
密钥及模数生成器205使用预置仔数数据以生成RSA密钥K2及RSA模数N。编码器230使用K2及N以将未加密的数据Y加密,因而提供对应的加密的数据X.编码器230根据X=YK2(模数N)实现了RSA公共密钥密码系统。如上所述,未加密的数据Y可包含视频、音频或其它数据。
注意未加密的数据可与至译码器260及网络中其它的译码器的加密的数据相联系。例如,可提供层状分布服务,其中所有译码器获得接收程序规划的基本层级授权,而仅特殊的译码器获得在额外付费时接收一个或多个层级的额外费用程序规划授权。在此情况,仅有额外费用的程序需加密。
视情况可为编码器200的一部分的控制中心210可控制密钥及模数生成器205的处理。控制中心210可视情况提供会计决算的能力,例如维持有关那些译码器是获得接收加密的数据的授权纪录。例如,控制中心210可保有付费、帐单及其它相关信息的磁道。
在译码器260(例如通过芯片)提供了在密钥及模数生成器205的相同预置仔数数据。此步骤通常仅在译码器260的制造过程中发生。加密的数据X供至MUX240,以便跨过频道250与译码器260联系。例如,频道250可包含与译码器族群联系的有线电视分布网络或卫星分布网络。例如加密或未加密的程序的其它数据及/或控制数据可与加密的数据X在MUX240多路化。
在译码器260,将多路分配器(DEMUX)270收到的来自频道250的传输数据进行译码。DEMUX270将加密的数据X供至译码器265。在DEMUX270收到的其它数据依需求递送。预置仔数数据是例如经由在译码器中储存预置仔数载入信息的芯片的密钥及模数生成器275中受处理,其中该预置仔数数据是由用于编码器200的相同单向函数的处理,以导出密钥K1及模数N。K1及N供至译码器265,将用以将加密的数据X解密,以便恢复未加密的数据Y。
在译码器260视需要提供控制中心282,以控制在密钥及模数生成器275的处理。
可依需求使用传统电路对未加密的数据Y做进一步处理。例如,若未加密的数据Y包含视频数据,则可能需要进行传统的视频解压缩处理。有关此处理的细节是在本领域熟练技术人员理解范围内。
还要注意图2所示为单一的译码器260,不过通常在译码器族群中有数千个接收来自例如编码器200的单一头端编码器的数据的译码器。
图3示出根据本发明的编码器。编码器200′包含许多分别显示的不同处理。但应认识到,可使用共享的电路来实施不同的处理,包含共同的微处理器及内存储存组件,和/或其它软件,固件及/或硬件。另外,这些处理通常可作为图2的密钥及模数生成器205及编码器230的部分。
编码器200′包含一与总线305联系的中央处理单元(CPU)310。一随机位生成器315使用任何已知的随机数据生成方法生成随机位串。例如,可生成512位及1024位的位串。一位细分器/组合器320可将随机位串细分成许多片段。例如,可使用八个相等的片段。
当使用单向函数处理各片段时,通常希望各片段具有提供所需安全度的长度,例如64位或更长。若片段太短,即使用单向函数处理片段,安全层级可能不够。总之,当各片段的长度增加时,随机生成的位串或其子集合将为质数或符合另一必要的数学约束的概率降低,因而增加了计算时间。因此,在安全与计算时间之间有折衷。
单向函数325独自地处理来自位细分器/组合器320的各位片段。可使用任何已知的单向函数。例如,可使用一个或多个的DES密钥及前授随机数据将各片段加密。然后单向函数325所处理的片段在位细分器/组合器320组合成单一位串。例如,当使用八个64位片段时,可将片段链接或者组合以获得新的512位长度位串。
在单向函数处理之前及/或之后可视情况将片段随机重新排序以提供进一步的安全。在译码器须使用对应的重新排序。
新组合过的位串可供至质数测试程序345,其可实行任何已知的质数测试方法来确定处理过的位串是否为质数。另外,即使完全确定无法确定质数性,要达到位串为质数的所要的可信度是可能的,例如99.9999%可信。
例如,一种质数测试法使用了称为“见证(WITNESS)”的算法,其在1975年5月第七届计算理论年度ACM研讨会论文集由Miller G.所著“质数性的Reimann假设及测试”以及1980年12月数字理论杂志Rabin,M.所著“质数性测试的概率性算法”中进行了讨论。该算法接收要做质数测试的数目输入“n”以及某一整数“a”,而a<n,如下列虚拟数码的说明见证(a,n)1.令bkbk-1...b0为(n-1)的二进制表示。
2.d←13.对i←k降为04.x←d5.d←(d×d)模n6.若d=1且x≠1且x≠n-17.则回到真(TRUE)8.若bi=19.则d←(d×a)模n10.若d≠111.则回到真12.回到伪(FALSE)若回到真,则“n”很明确地非质数。若回到伪,则“n”可为质数。
另外,如在1990年麻州剑桥MIT刊物中由Cormen,T.,Leiserson,C.及Rivest,R.所著算法介绍中所述,可由任意地选择的“a”值重复引用见证。若在任何点回到真,“n”不是质数。若连续回到伪“s”次,则“n”为质数的概率至少为1-2-S。因而,对于足够大的“s”值,可建立“n”为质数的对应可信度。
特别地,可由质数测试程序345测试二个512位的位串,P及Q。一旦已找出位串P及Q为充分地质数,则其等供至模数计算器350以形成RSA模数N=P·Q。
注意根据本发明可使用任何做为任何数学约束(不限于质数性)测试用的功能。
此外,欧拉_函数355用于形成乘积_=(P-1)·(Q-1)。
欧拉_函数表示小于N且对N为相对质数的正整数的数目。一旦_确定了,在功能360进行欧几里德的(基本)算法以形成K1及_的最大公约数(GCD),将于说明图4a及4(b)时做进一步解释。若正整数C为A及B的除数,正整数C为A及B两个整数的GCD,且A及B的任何除数为C的除数。
在功能块365执行欧几里德的扩展算法以获得密钥K2。
编码器230使用K2及N以将数据X=YK2(模数N)加密。CPU310及内存340可用来控制其它功能,并依需求提供数据的中间及/或最后储存。此外,可经由总线305或其它装置提供要在编码器230中加密的数据。
图4a示出根据本发明的编码方法的第一部分。在方框400生成例如具有512位长度的随机位串。在方框405,将这些位组合成许多预置仔数的子集合,Pre-P1至Pre-P8。例如,可使用八个各自具有64位长度的子集合。在方框410,以单向函数处理各子集合以获得对应的子集合P1至P8。因为使用了单向函数,基本上不可能分别从子集合P1至P8导出预置仔数的子集合Pre-P1至Pre-P8。在方框415,组合处理过的子集合P1至P8以形成512位长度的位串P。在方框420,测试P以确定其是否为具充分可信度的质数。若否,则在方框400重复处理,且舍弃预置的数据。若是,则在方框455继续处理。
分别在对应于方框400、405、410及415的方框430、435、440及445导出对应的位串Q。特别在方框430生成了另一512位随机位串。在方框435,将该位串组合成Pre-Q1至Pre-Q8的子集合。在方框440,以单向功能分别处理Pre-Q1至Pre-Q8以获得对应的处理过的子集合Q1至Q8。在方框445将Q1至Q8组合以形成512位的位串Q。
在对应于方框420的方框450,就Q是否具充分可信度的质数进行确定。若否,则在方框400重复处理,并舍弃预置的数据。若是,则在方框455继续处理。
选择性地,可在方框420及450进行用在任何所要的数学约束的测试。
在方框455,形成了RSA模数N=P·Q,而在方框460,形成了欧拉_函数_=(P-1)·(Q-1)。在方框465,处理在图4b的方框A继续。注意用于方框410及440的单向函数可为相同的;总之,此并非需要。另外,甚至以不同的单向函数处理各子集合,及/或使用二或更多的单向函数处理单一子集合或整个位串是可能的。包括使用附增的、传统的加密步骤的其它变化对本领域熟练技术人员将是很明显的。
图4b示出根据本发明的图4a编码方法的第二部分。处理在方框500继续。在方框505生成了具有例如1024位长度的随机位串。在方框510。将该位串细分成十六个各具有64位长度的预置仔数子集合Pre-K1-1至Pre-K1-16。在方框515,以单向函数处理各64位子集合以获得对应的处理过的子集合K1-1至K1-16。用于方框515的单向函数可与用在图4a的方框410及440的相同或相异的单向函数。在方框520组合处理过的子集合K1-1至K1-16以形成RSA密钥K1。
在方框525,就K1对_是否为具充分可信度的相对质数进行确定。当欧几里德的基本算法指出GCD(K1,_)=1时,K1对_为相对质数。若GCD(K1,_)≠1,在方框505开始重复处理,且舍弃预置的数据。若GCD(K1,_)=1,在方框530继续处理,在该处使用欧几里德的扩展算法以形成RSA密钥K2=K1-1模数_。
在方框535以K2及N将信息Y加密以形成密码文字X=YK2·(模数N)。在方框540舍弃P、Q及_。若此信息存于内存内,因攻击者可能可以获得此信息,故此步骤很重要。最后,在方框550,将加密的信息X传送至译码器族群。
注意预置片段Pre-P1至Pre-P8、Pre-Q1至Pre-Q8及Pre-K1-1至Pre-K1-16也例如经由芯片供至译码器族群。该步骤通常与涉及在编码器处理之前步骤无关联。
三个位串P、Q及K1的预置仔数数据最好是供至译码器。总之,将少于所有三个位串的预置仔数数据供至译码器以实施本发明是可能的。因加于攻击者的负担增加,系统的安全仍有改进。
图5示出根据本发明的译码器。译码器600包含一与总线605相联系的CPU602。位细分器/组合器610、单向函数615、内存620及模数计算器625通常对应于图3编码器200′的相同名称的组件。
单向函数615处理了例如经由芯片供至译码器600的预置片段,以获得对应的处理片段。接着,位细分器/组合器610组合个别的处理过的片段以形成P、Q及K1。在功能625计算了RSA模数N。在译码器265使用K1及N将所收到的加密的数据X解密,以恢复未加密的文字Y=XK1(模数N)。
CPU602及内存620可用来控制其它的译码器功能,并依需要提供中间及最终的数据储存。另外,可以个别的及/或共享的组件(包括软件、固件及/或硬件)制成各译码器组件。
图6示出根据本发明的译码方法。例如来自芯片、智能卡等用于编码器的个别预置片段也可用于译码器。
在方框705,由单向函数处理预置片段Pre-P1至Pre-P8以获得对应的处理过片段P1至P8。这是与图4a方框410所用相同的单向函数。在方框710组合处理过的片段P1至P8以形成P。同样地,在方框715由单向函数处理预置的片段Pre-Q1至Pre-Q8以分别获得处理过的片段Q1至Q8。这是与图4a方框440所用相同的单向函数。在方框720组合处理过的片段Q1至Q8以形成Q。在方框725形成了模数N=P·Q。
在方框730,由单向函数处理预置的片段Pre-K1-1至Pre-K1-16以分别获得处理过的片段K1-1至K1-16。这是与图4b中方框515所用相同的单向函数。在方框732,舍弃了Pre-K1-1至Pre-K1-16。在方框735组合处理过的片段K1-1至K1-16以形成RSA密钥K1。最后,在方框740以K1及N将加上密码的数据X解密以获得Y=XK1(模数N)。
如上所述,在编码器处理不同的片段及/或完整的位串使用相异的单向函数是可能的。因此,在译码器应使用相同的对应单向函数或诸功能以获取原来的片段及位串。此外,在处理所给的位串时连续地使用多于一个单向函数是可能的。另外,其它已知的加密法可与本发明同时使用。
因此,可看出本发明提供了一种生成数学约束型密钥的方法及装置,例如使用单向函数及进行数学约束条件(例如质数性)测试的RSA密钥及模数。在一个具体实施例中,本发明获得了RSA系统及一个或多个单向函数两者的安全性效益。本发明特别地适用于出入管制的宽带通信网络,其中预置仔数数据供至网络上的特殊译码器。
在一例示用的具体实施例中,在例如头端器的编码器使用单向函数处理预置的数据并测试确定其是否为质数。若如此,因而得到两个质数P及Q并用以形成RSA模数N及密钥K2。在有线或卫星电视网络中例如视频、音频或其它数据的数据Y被加密以获得加密的数据X=YK2(模数N),并在网络上传送至译码器族群。
在制造过程期间或安装时,译码器例如经本地区的芯片接收预置的数据,该数据在译码器中使用密钥制作过程所用的相同单向函数处理,以获得模数N及RSA密钥K1。K1是使用欧几里德的扩展算法从K2导出的。
加密的数据X受到解密以恢复未加密的数据Y=XK1(模数N)。最好将随机位串细分成数片段以获得预置的数据,然后以单向函数独立地处理各片段以便获得得对应的处理过的片段。组合该等处理过的片段以获得质数性测试用的处理过的位串。若获知其为具充分可信度的质数,则使用该位串。否则,则在获得可接受的位串之前,进行连续的重复。另外,选择足够长的位串片段以提供足够的安全度,不过要足够短以避免要获得质数字元串多次重复所引起的过度计算时间。
虽结合各种特殊的具体实施例而说明了本发明。本领域技术人员会认识到可对其做许多改造及变更,而不偏离如权利要求书所提出的本发明的精神及范围。
例如,在与有线或卫星电视宽带通信网络一起讨论本发明时,将看到可使用例如局域网(LAN)、都市网(MAN)、广域网(WAN)、互连网、企业内联网及因特网的其它网络。
另外,应认识到在例示中所用的位串长度及每一位串的片段数目仅为例子。通常有关此点的唯一需要是由单向函数所处理的片段的最小位串长度应大到(例如56或64位)足以维持高度的安全性。
另外,可在制造密钥生成器及/或在译码器时以连续或并行处理方式而同时以例如单向函数来进行多位串片段的处理。
此外,虽然最好以单向函数处理P、Q及K1的每一个,不过并不需如此。例如,若仅有一个或多个的P、Q及K1是以一个或多个的单向函数处理,将仍可取得安全度效益。
另外,在以生成位串及位的形式讨论处理时,可了解到所生成的数值可以包含如十进制或十六进制的任何数字底数表示。
权利要求
1.一种用以生成密钥K2的方法,包含步骤(a)生成一第一组数值;(b)以一第一单向函数处理至少所述第一组数值的一部分,以便获得对应值P;(c)测试该P值对一数学约束的满足性;(d)在所述步骤(c)若该P值满足所述数学约束,则形成做为该P值函数的所述密钥K2;以及(e)在所述步骤(c)若P值不满足所述数学约束,则按需要而重复所述等步骤(a)、(b)及(c)以得到满足所述步骤(c)中该数学约束的P值,并形成做为该P值函数的所述密钥K2。
2.如权利要求1的方法,其中至少所述第一组数值中的一个为随机生成的。
3.如权利要求1的方法,其中密钥K2为一Rivest-Shamir-Adleman(RSA)密钥。
4.如权利要求1的方法,其中所述数学约束与椭圆曲线密码系统相关。
5.如权利要求1的方法,包含以下进一步的步骤(f)将信息Y加密,从而形成做为密钥K2函数的加密的信息X;(g)经一宽带通信网络将所述加密的信息X传送至一译码器族群中的译码器;以及(h)将用于将所述加密的信息X加以解密的数据提供给该译码器。
6.如权利要求1的方法,其中所述步骤(b)包含以所述第一单向函数处理至少所述第一组数值的一部分的步骤,以便获得对应的第一组经过处理的数值。
7.如权利要求6的方法,其中所述步骤(b)还包含进一步的步骤组合所述第一组经过处理的数值以形成所述P值。
8.如权利要求1的方法,其中所述数学约束在所要的质数性可信度下为质数性的。
9.如权利要求8的方法,还包含进一步的步骤(f)从一第二组数值生成一第二值Q;(g)形成_=(P-1)·(Q-1);(h)生成一第三组数值;(i)以一单向函数处理至少所述第三组数值的一部分以获得一对应值K1;(j)测试该K1值对_的相对质数性;并且(k)若在所述步骤(j)未发现该K1值对_为相对质数,则视需要重复所述步骤(h)、(i)及(j),以获得对_为相对质数的K1值。。
10.如权利要求9的方法,其中所述步骤(i)包含以所述单向函数来处理至少该第三组数值的一部分的步骤。
11.如权利要求9的方法,其中当所述K1值与_的最大公约数为1时,所述步骤(j)即确定了K1值对_为相对质数。
12.如权利要求9的方法,其中至少所述第二组数值的一部分为随机生成的。
13.如权利要求9的方法,其中在该步骤(f)由一单向函数处理至少该第二组数值的一部分以生成该第二值Q。
14.如权利要求9的方法,其中至少所述第三组数值的一部分为随机生成的。
15.如权利要求9的方法,还包含进一步的步骤(l)形成一模数N=P×Q;及(m)通过将信息Y作为密钥K2及模数N的函数而加密,来形成一加密的信息X。
16.如权利要求15的方法,其中所述步骤(m)包含将该信息Y加密来形成所述加密的信息X=YK2(模数N)的步骤。
17.一种在一译码器将加密的信息X译码的方法,包含步骤(a)以一第一函数处理至少一第一组数值的一部分,以获得对应的第一组经过处理的数值;(b)从所述第一组经过处理的数值形成一P值;(c)从一第二组数值生成密钥K1;并且(d)将加密信息X作为所述密钥K1及所述P值的函数而进行译码;其中(i)所述加密信息X是在一编码器上作为一密钥K2的函数而被加密的,(ii)该密钥K2在该编码器上由包含一第三组数值的数值所生成,而且(iii)以对应于所述步骤(a)中所述第一单向函数的一第一单向函数来处理至少所述第三组数值的一部分,以获得满足一数学约束的对应的第三组经过处理的数值。
18.如权利要求17的方法,其中至少所述第二组数值之一为随机生成的。
19.如权利要求17的方法,其中所述密钥K1为一Rivest-Shamir-Adleman(RSA)密钥。
20.如权利要求17的方法,其中所述数学约束与椭圆曲线密码系统相关。
21如权利要求17的方法,其中所述加密信息X从所述编码器经由宽带通信网络而传送至包含所述译码器的译码器族群(decoder population)。
22.如权利要求17的方法,其中至少所述第一组数值之一为随机生成的。
23.如权利要求17的方法,其中至少所述第三组数值之一为随机生成的。
24.如权利要求17的方法,其中所述数学约束在所要的质数性可信度下为质数性的。
25.如权利要求17的方法,其中所述步骤(b)还包含进一步的步骤组合所述第一组经过处理的数值来形成所述P值。
26.如权利要求17的方法,其中所述步骤(c)包含这样的步骤以一单向函数来处理至少所述第二组数值的一部分,从而获得对应的第二组经过处理的数值。
27.如权利要求26的方法,其中所述步骤(d)包含步骤组合所述第二组经过处理的数值以形成密钥K1。
28.如权利要求17的方法,还包含进一步的步骤(d)提供一第四组数值;(e)由一单向函数来处理至少所述第四组数值的一部分,从而获得一对应值Q;以及(f)形成一模数N=P×Q,用以将该加密的信息X加以译码。
29.如权利要求28的方法,其中所述第四组数值与所述第三组数值相同。
30.如权利要求28的方法,其中K2及K1的关系为K2=K1-1模数_,其中_=(P-1)×(Q-1)。
31.如权利要求28的方法,其中至少所述第四组数值的一部分为随机生成的。
32.如权利要求28的方法,其中由一信息Y在编码器根据X=YK2(模数N)来形成所述加密的信息X,进一步包含步骤(g)使用所述密钥K1及所述模数N,根据XK1(模数N)而将所述加密的信息X加以译码,从而获得所述信息Y。
33.一种用于生成密钥K2的编码器方法,包含用于生成一第一组数值的装置;用于以一第一单向函数来处理至少该第一组数值的一部分,从而获得一对应值P的装置;用于测试该P值是否满足一数学约束的装置;及在所述P值确实满足该数学约束时,作为该P值函数而形成所述密钥K2的装置;其中若该P值不满足所述数学约束,则所述生成装置生成一新的第一组数值,所述处理装置处理该新的第一组数值,而且所述测试装置测试该新的P值是否满足所述数学约束,直至该P值满足所述数学约束为止,而且所述形成装置适于形成作为该P值函数的所述密钥K2。
34.一种用于将加密信息X加以译码的译码器,包含用于生成一第一组数值的装置以一第一单向函数来处理至少该第一组数值的一部份,从而获得一对应的第一组经过处理的数值的装置;用于由该第一组经过处理的数值形成一P值的装置;用于由一第二组数值生成一密钥K1的装置;及将所述加密信息X作为该密钥K1及所述P值的函数而加以译码的装置;其中(i)所述加密的信息X是在一编码器上作为一密钥K2的函数而被加密的,(ii)该密钥K2在所述编码器上由其一组数值而生成,及(iii)以一第一单向函数(该第一单向函数对应于所述步骤(b)的所述第一单向函数)处理至少所述密钥K2的该组数值的一部分,从而获得满足一数学约束的对应组的经过处理的数值。
全文摘要
一种使用单向函数(325)并用数学约束测试所生成的密钥(K2)。在编码器(200,200′),例如在头端器,或者制造处,将随机位串细分(320)成数个片段(PRE-P1,…,PRE-P8,PRE-Q1,…PRE-Q8)可获得预置仔数数据,然后以单向函数(325)独立处理各片段以获得个别值(P,Q)。该数值(P,Q)受到例如质数性(345)数学约束的测试。若该数值未通过测试,则重复步骤。若该数值通过测试,则形成模数N(350)及欧拉φ函数φ=(P-1)(Q-1)(355)。片段Pre-K1-1,…,Pre-K1-16也以单向函数进行处理而形成片段K1-1,…,K1-16,将其组合而形成K1值。用欧几里德基本算法(360)来确定K1对φ是否为相对质数。若否,则形成新的K1。若是的话,则以用于数据加密的欧几里德扩展算法(365)形成一密钥(K2)。在译码器(260,260′)(例如经一芯片)提供预置仔数数据,并使用如同在编码器所用的相同单向函数(615)加以处理,从而获得模数N以及将加密数据加以译码的密钥K1。
文档编号H04L9/30GK1402920SQ00816345
公开日2003年3月12日 申请日期2000年11月22日 优先权日1999年11月29日
发明者E·J·史普朗克 申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1