无需事先分配通讯金钥的金钥信托系统与方法 本发明系有关于一种金钥信托系统(Key Escrow System:KES),特别是有关于一种无须事先分配通讯金钥而建构成使用公开金钥的金钥信托系统。
金钥信托系统(Key Escrow System:KES)是美国政府为了保障个人隐私与预防社会犯罪行为的需要,而提出的一种通讯系统。在1993年4月美国政府宣布一个新的加密(encryption)技术,称为金钥信托系统(Key Escrow System:KES)。金钥信托系统(KES)的技术,是为了兼顾个人通讯隐私和对犯罪行为的预防。在1994年2月,美国政府宣布一个金钥信托系(Key Escrow System:KES)的标准,称为信托加密标准(Escrow Encrypting System:EES)。这种信托加密标准包含了一种对称性加密演算法(symmetric encrypting algorithm):SKIPJACK演算法,以及包含在免干预(tamper-free)芯片上的一种金钥信托演算法(key escrowalgorithm)。这种信托加密标准的安全性,要依靠免干预(tamper-free)芯片的实体保护。而且自从信托加密标准公之后,SKIPJACK演算法的安全性就一直被各方所质疑。
由于美国政府所提出的金钥信托系统(KES)之安全性,是依靠不能调整的硬件设备,和保密的SKIPJACK演算法所建立的。假设使用者A端的免干预装置(tamper-free device)是芯片A,储存在芯片A中的资讯包括A的使用者确认资讯(user identifier:UIDA)、A的唯一金钥(unique key:KUA)以及A的团体金钥(family key:KF)。其中A的使用者确认资讯(UIDA)是用来确认使用者的资讯,而A的唯一金钥(KUA)是此不能调整的硬件设备之唯一金钥(unique key),而且此唯一金钥被分成两个部份,分别信托于个别的金钥信托机构(Key Escrow Agents)加而A的团体金钥(KF)则是和此不能调整的硬件设备同一族群(group)之硬件设备,所共同拥有的金钥。团体金钥(KF)和唯一金钥(KU)是储存于芯片内。
这种金钥信托系统(KES)地结构图示于图1A中,假设使用者A100要和使用者B101通讯,一开始,使用者A100和使用者B101以一个金钥分配协定(keydistribution protocol)来沟通而让使用者A100和使用者B101获得一个开启金钥(session key:KS),然后使用者A100输入信息(massage:M)和开启金钥(KS)到芯片A102。芯片A102产生一个法律授权存取单元(LEAF),和一个初始向量(initialvector:Ⅳ)。然后使用者A100将法律授权存取单元(LEAF),和一个初始向量(Ⅳ)随密文(ciphertext:(M)ks)一起送到芯片103上。其中密文(M)ks代表用SKIPJACK演算法对信息M以开启金钥KS加密。法律授权存取单元(LEAF)的结构如第(1)式所述:
LEAF=((KS)KUA,UIDA,EA)KF(1)
其中EA=f(UIDA,KS,IV) (2)
其中f()是一个保密的单向复合函数(classified one-way hash functlon),法律授权存取单元(LEAF)是由芯片A102的加密/解密装置113(图1B中)所形成的。获得储存于芯片资料储存装置110中的芯片A之唯一金钥(KUA)、芯片A之使用者确认资讯(unique identifier)和芯片A之团体金钥(KF)之后,加密/解密装置113依据第(1)和(2)式产生一个法律授权存取单元(LEAF)和一个初始向量(Ⅳ)。然后加密/解密装置113以开启金钥产生装置111所产生的开启金钥(KS),对信息(M)加密以产生一个密文(M)KS。然后由传送装置112将密文(M)KS送到使用者B101。
当密文(M)KS由芯片B103收到之后,参考图1B,芯片B103通过其传送装置112,以箭头135和133的方向传送所接收到的密文(M)KS,并传送到编/解密装置113,且立即以团体金钥(KF)对法律授权存取单元(LEAF)解密。在确认验证元(EA)之后,芯片B103可以用事先和A沟通所得的开启金钥来解密而获得原文M,至此完成使用者A和B之间的通讯。
鉴于上述之发明背景中,传统的金钥信托系统(key Escrow System:KES),发送端和接收端双方须事先沟通以求得开启金钥(KS),此举相当麻烦而且危险。而且这种传统的金钥信托系统无法抵挡挤压式攻击(squeezing attack),使得使用者可以逃避法律所授权的监听者之监听。所以传统的金钥信托系统无法完全达到预防犯罪行为的目的。
传统的金钥信托系统使用的演算法,是列为机密的SKIPJACK演算法,并无经过学术界之反覆验证,所以其安全性堪虞。而且传统的金钥信托系统所用的验证元(Escrow Authentication:EA)只有16位元,安全性不足。
本发明的主要目的在将金钥信托系统与金钥分配方法结合,避免事先分配金钥,又可以保障通讯隐私与法律授权之监听。
本发明的另一目的在避免使用未经公开验证的演算法,而是使用一些经过公开验证的演算法,以保证系统的安全性。
本发明的再一目的,系利用验证元长度之增加,以增进系统安全。
根据以上所述之目的,本发明提供了一种无需事先分配通讯金钥的金钥信托系统,它包含下列装置:开启金钥(session key)产生装置,用于随机产生数字以代表开启金钥(KS)。芯片资料储存装置,用于储存使用者认证资料(UID)、唯一金钥(KU)以及一团体金钥(family key:KF)。公私金钥对(public-secret key pair)产生装置,系用于产生一公金钥(public key:PK)以及一私金钥(secret key:SK),公金钥(PK)会被传送到公开金钥列表(public-key directory)上。加密装置,用于以使用者A的该唯一金钥(KUA)对该开启金钥(KS)加密以产生第一码((KS)KUA),并以使用者A的私金钥(SKA)和使用者B的公金钥(PKB)对开启金钥加密以产生一第二码((KS)SKA)PKB,产生法律授权存取单元(Law Enforcement Access Field:LEAF)以及一初始向量(initial vector:IV),以第一码和开启金钥的逻辑运算(例如互斥或:EXCLUSIVE OR)之结果(KS(KS)KUA)对一信息(M)进行加密。而收讯者的公金钥是由公开金钥列表所获得。解密装置,系用于对法律授权存取单元(LEAF)以团体金钥解密,再以第一码和开启金的逻辑运算(例如互斥或:EXCLUSIVEOR)之结果(KS(KS)KUA)对密文(M)(KS(KS)KUA)解密以获得信息M。传送装置,用于传送法律授权存取单元(LEAF)到解密装置。
其中上述之法律授权存取单元(LEAF)至少包含该第二码、该第一码、一第一唯一身份资讯(unique identifier:UID)、一第二唯一身份资讯以及一验证元(Escrow Authenticator:EA)。而第一唯一身份资讯(UID),是该复数个使用者中的使用者A之唯一身份资讯。第二唯一身份资讯(UID),是使用者中的使用者B之唯一身份资讯。
验证元(EA)是一第三码之复合函数(hash function),该第三码至少包合:该第一唯一身份资讯、该第二唯一身份资讯、该开启金钥以及一初始向量(initialvector:IV)。而初始向量则是随机产生的一个值。而加密装置和该解密装置分别地进行加密和解密,其所用的演算法是下列其中之一:Rivest,Shamir,Adleman(RSA)演算法、Data Encryption Standard(DES)演算法以及IDEA演算法。
本发明的目的还可以通过下述方法实现,一种无需事先分配通讯金钥而用金钥通讯的方法,其特征在于:该通讯方法用于在复数个使用者间传输一密文,该复数个使用者中之任何一个都具有一唯一金钥,该通讯方法至少包含:产生一数字以代表一开启金钥;储存一使用者认证资料、该唯一金钥以及一团体金钥;产生一公金钥以及一私金钥,该公金钥传送到公开目录上;以使用者A的该唯一金钥对该开启金钥加密以产生一第一码,并产生一第二码,产生一法律授权存取单元,以及随机的产生一初始向量,以该第一码和该开启金钥进行一逻辑运算,并以该逻辑运算的结果对一信息进行加密,而收讯者的公金钥是由公开目录所获得;以及利用团体金钥对该法律授权存取单元解密,再利用该第二码解密以得出该开启金钥,以开启金钥与该法律授权存取单元进行该逻辑运算,以该逻辑运算之结果对该密文解密,即可以得到该信息。
下面结合实施例的附图对本发明作进一步的说明。
图1A为传统的金钥信托系统(Key Escrow system:KES)之结构图。
图1B为传统的金钥信托系统所使用的芯片之功能方块图。
图2A为本发明所提出的改良式的金钥信托系统之结构图。
图2B为说明本发明所提出的改良式的金钥信托系统中,无须事先分配通讯金钥的结构图。
图2C为为本发明所提出的改良式的金钥信托系统,所使用的芯片之功能方块图。
图3A为本发明中用来加密(encrypt)所用的程序之流程图。
图3B为本发明中用来解密(decrypt)所用的程序之流程图。
图4为监听者在进行监听时可以使用之演算法。
为了避免挤压式攻击法成功(squeezing attack),以及避免金钥须事先交换的不便,本发明提出了一种改良式的全钥信托系统,其原理说明如下。使用者A的芯片产生一私金钥SKA及一相关的公金钥PKA,并将公金钥PKA送至一公金钥列表(public-key directory)。在这种设备中的微处理器可以成功的执行对称性与非对称性的金钥保密系统运算,例如RSA以及DES运算法。信托中心选择一个唯一金钥KUA作为芯片A的唯一金钥。而且下列的资讯也储存在芯片中:UIDA,KUA,SKA以及KF。UIDA代表使用者A的使用者确认资讯(uniqueidentifier)。KUA代表装置的唯一金钥(unique key),而且也由信托中心选择并将其分为两个部份的金钥KUA1以及KUA2,分别信托于个别的金钥信托机构(KeyEscrow Agents)中。除此之外,KUA=KUA1KUA2,而且任何一个使用者,包含使用者A本身都完全不知道KUA的内容。KF则是整个设备所成的团体之团体金钥(family key)。
参考图2A,使用者A200首先由开启金钥产生装置211产生一个开启金钥(session key)。然后芯片A产生相关的法律授权存取单元(LEAF)和初始向量(initialvector:IV),接著并对信息M以金钥ks(KS)KUA加密,得到密文(M)KS(KS)KUA。而金钥KS+(KS)kua是由开启金钥(KS)和加密后的开启金钥(KS)KUA进行互斥或(exclusive or)运算而得到的。然而产生金钥的方法并不是只有用互斥或一种方法而已,而是所有的逻辑运算皆可以用来对KS与(KS)KUA进行运算,以产生本发明所需要的金钥。所以不论是对KS与(KS)KUA进行何种逻辑运算,皆是在本发明的精神和范围之内。值得注意的是在美国政府所提出的金钥信托系统当中,只有用开启金钥(KS)对信息M做加密。
最后,使用者A200将密文(M)KS(KS)KUA与法律授权存取单元(LEAF)和初始向量(IV),一起送到使用者B201。法律授权存取单元(LEAF)和验证元(EscrowAuthentication:EA)的结构如下所示:
LEAF=((KS)KUA,((DS)SKA)PKB,UIDA,UIDB,EA)KF (3)
其中 EA=h(UIDA,UIDB,KS,IV) (4)
并且h()是一个公开的单向复合函数(one-way hash function)。
其中((KS)SKA)PKB代表KS是先由使用者A以SKA签署,再经由使用者B以PKB加密。然而在对开启金钥加密时,也可以只使用KS直接由使用者B以PKB加密而产生(KS)PKB,只是在对开启金钥加密与解密之过程中不使用使用者A的私金钥SKA,这两种方法都可以用在本发明当中。而在图2B中的浸算法所显示的是,开启金钥(KS)是由加密装置204所加密,并形成一个加密后的开启金钥((KS)SKA)PKB,然后由解密装置205将此((KS)SKA)PKB解密获得一个开启金钥(KS),其中上述之签署的方法是以电子签章系统所执行的。
任何一种公开金钥保密系统(public-key cryptosystem),例如Rivest,Shamir,Adieman(RSA)演算法、Data Encryption standard(DES)演算法以及IDEA演算法等,都可以成功的执行这两种功能。而单向复合函数(one-way hashfunction)是用来将UIDA,UIDB,KS以及IV产生-128位元或128位元以上之码字。
在接收到信息之后,可以由法律授权存取单元(LEAF)中,利用团体金钥(KF)解密以获得((KS)SKA)PKB。经过发送方的公金钥(public key)和接收方的私金钥(secret key),芯片B203可以获得开启金钥KS,而且也可以通过第(4)式来检查验证元(EA)。最后可以用信息解密金钥对所收到的加密后的信息进行解密,其中的信息解密金钥是用开启金钥(KS)和经过加密后的开启金钥一(KS)KUA之互斥或运算结果。这种加密-解密的演算法表示在图2A中。若对验证元(EA)验证失败后,解密的过程将会中止,而且使用者B也不会由芯片B203在前面的过程中获得任何资讯。
图2C中所显示的是芯片A和芯片B内部的功能方块图,其中的公私金钥产生装置217产生一公金钥(pubilc key:PK)和一私金钥(secret key:SK)。私金钥(SK)被送至芯片资料储存装置210,而公金钥(PK)则被送到一个公金钥列表(public-key directory)(未图示)。当加密的功能被执行时,信息传递的方向是依据箭头230、232和234的方向传送的,但是解密的功能被执行时,信息传递的方向则是依据箭头235、233和231的方向传送。
加密-解密装置213首先产生一个金钥KS(KS)KUA,然后再根据第(3)式和第(4)式产生初始向量(IV)和法律授权存取单元(LEAF)。接著,加密-解密装置213以上述的金钥KS(KS)KUA。对信息M进行加密,以获得一个密文(ciphertext):(M)KS(KS)KUA,然后密文(M)KS(KS)KUA被依箭头232和234的方向送到使用者B201。法律授权存取单元(LEAF)和初始向量(IV),亦被依箭头232和234的方向送到使用者B201。
将信息M加密的装置,是以加密/解密装置213内的第一程序去执行的。在图3A中对这个用来加密的第一程序,用流程图加以描述。在图3A中,由步骤开始301,加密-解密装置213收到开启金钥(KS)和使用者A之唯一金钥(KUA)。在步骤302中,加密/解密装置213产生以使用者A的唯一金钥(KUA)加密的开启金钥(KS)KUA。
其次在步骤303,加密/解密装置213利用KUA,KF,UIDA,KS,SKA,PKB,和UIDB,依据上述的第(3)和第(4)式,以产生法律授权存取单元(LEAF)和初始向量(IV)。接下来是步骤304,其中步骤304是以KS(KS)KUA对信息M加密以产生密文(加密后信息):(M)KS(KS)KUA。最后在步骤305,将密文(M)KS(KS)KUA、法律授权存取单元(LEAF)和初始向量(IV),送到传送装置212。在此实施例中,加密/解密装置213是一个微处理器(micro-processer),而用来对资讯加密的第一程序是内建于微处埋器内的。
当信息由接收信息端的使用者之芯片B203的传送装置212接收到之后,所接收到的资讯被以箭头235、233和231的方向,送到芯片B之加密/解密装置213。芯片B203的加密/解密装置213,立即以团体金钥(KF)对所接收的法律授权存取单元进行解密。在验证完验证元(EA)之后,加密/解密装置213以使用者A的公金钥以及B的私金钥(SKB),对法律授权存取单元(LEAF)的第二项-(KS)SKA)PKB解密,并以此所获得之结果KS与法律授权存取单元(LEAF)第一项-(KS)KUA,进行互斥或(exclusive or)运算,以获得一金钥KS(KS)KUA。获得金钥KS(KS)KUA之后,对密文(M)KS(KS)KUA进行解密以获得原来的信息M,至此完成了使用者A和使用者B之间的通讯。
对加密之后的信息(M)KS(KS)KUA进行解密的步骤,是储存在加密/解密装置213的第二程序所执行的,第二程序的流程图表示于图3B中。由步骤310开始,步骤311的加密/解密装置213收到加密后的信息(M)KS(KS)KUA、法律授权存取单元(LEAF)和初始向量(IV)。
下一个步骤是步骤312,系用于以团体金钥(KF),对法律授权存取单元(LEAF)解密以获得((KS)SKA)PKB。步骤313利用SKB和PKA对((KS)SKA)PKB解密,以获得开启金钥(KS)。在验证完验证元(EA)之后,将所获得的开启金钥(KS)与法律授权存取单元(LEAF)的第一项一(KS)SKA,进行互斥或(exclusive or)运算,以获得一金钥KS(KS)KUA。在步骤314中,以前述金钥KS(KS)KUA对加密后的信息加以解密,以获得原文(M)。在此实施例中,加密/解密装置213是一个微处理器(micro-processer),而用来对资讯解密的第二程序是内建于微处理器内的。
假设调查员要对使用者A200和使用者B201之间的可疑之通讯进行监听时,在法律的授权之下,调查员使用团体金钥(KF)以及解密装置401,以对法律授权存取单元(LEAF)进行解密,以获得使用者确认资讯UIDA。然后将UIDA送到相关的金钥信托机构,以获得唯一金钥KUA的相关之部份KUA1和KUA2,由KUA1和KUA2以获得唯一金钥KUA。然后以解密装置402获得开启金钥(KS)。然后可以用互斥或运算,对KS和法律授权存取单元(LEAF)的第一项(KS)KUA运算而产生KS(KS)KUA。最后对已经加密之密文,用解密装置403,以KS(KS)KUA为金钥进行解密,然后可以获得原文(plaintext)M,调查经过的演算法表示于图4中。
在本发明所提供的系统中,可以抵抗挤压式攻击(squeezing attack),因为在由一个使用者将资讯传送到另外一端的使用者时,开启金钥(KS)已经包含在其中。若是使用者A将开启金钥(KS)代换成一个假的开启金钥(KS’),则法律存取单元(LEAF)中的(KS)KUA,将会变成(ks′)KUA。然后调查员就会无法通过验证,也无法获得正确的资讯解密金钥KS(KS)KUA,所以无法获得原文。
然而接收资讯的使用者,此时亦无法依据所传送的法律授权存取单元(LEAF)中所有的资讯获得资讯解密金钥KS(KS)KUA,所以若是有人存心以此方法规避监听,事实上对方也是无法接收到原文的。根据以上的描述可以知道,当一个使用者欲规避调查员的监听时,同时也会造成收讯者无法接收,所以本发明所供的系统可以抵抗挤压式攻击法。
以上所述仅为本发明之较佳实施例而已,并非用以限定本发明之申请专利范围,凡其它未脱离本发明所揭示之精神下所完成之等效改变或修饰,例如产生金钥之逻辑运算以及开启金钥加密时有否经过使用者私金钥签署,均应包含在申请专利范围内。