一种密码系统及其安全资料传输方法 本发明为一种密码系统及其安全资料传输方法,是关于资料安全、资讯保护及密码,尤关于公钥密码系统(public key cryptosystem)的领域。
密码系统的发展使得通讯通道传输的资讯具有隐私性,不易被偷取,其可保证发送端传送至接收端的讯息的安全,惟有指定的接收端可还原所接收的资料。传统的密码系统分为二类,一为密钥密码系统(secret—key cryptosystem),一为公码密码系统(public key cryptosystem)。
图1表示习知密钥密码系统(又称结称密码系统,symmetric cryptosystem)的基本方块图。如图所示,两个通讯端(分别标示为A和B)分别具有各自的加密器C1,C2(cipher),能够对输出资料进行加密,对于输入资料进行解密。详言之,明文(plaintext)在一端加密后产生的密文(ciphertext),可以在另一端解密后产生原来的明文,两通讯端是使用相同的金钥K1,K2进行资料的加密/解密动作。目前使用最普遍的对称密码系统应该是DES(Data Encryption Standard),其采用56位元的密钥(一般尚包括8个parity check bits)。至于其他的方案,例如IDEA(International Data Encryption algorithm),则是采用类似架构但是使用的是较长的加密金钥。
在对称密码系统中,金钥交换通常是一个相当重要的课题。参与资料传输的两通讯方必须拥有相同的金钥,并且不能够被其他人知道。通常的情况是一方产生此共同金钥而以隐密的方式传送给另一方。此处的传送方式必须保证是在隐密的状态。如果任何人有意或无间地截取到此金钥,也就可以很轻松地解译出在两者间所通讯的所有资料。对称密码系统的另一项缺点是,使用者无法与不特定人士进行秘密通讯。金钥交换必须建立在双方已知地情况下,试问在一方完全不知道另一方的情况下,如何可以保证金钥交换时的安全性?
图2则是表示习知公钥密码系统(又称为非对称密码系统,asymmetriccryptosystem)的基本方块图。公钥密码系统与一般密钥密码系统最大的不同点是在于两点:(1)金钥交换的机制;(2)实际进行加密的演算法则。参考图2,每一通讯方具有一组金钥对的两个金钥:公钥K6,K3(pubkic key)和私钥K4,K5(privatekey),分别以下标pub和pri表示。公钥K3,K6是公开的金钥资讯,任何人都可以取得;相对地私钥K4,K5则是属于个人的金钥资料,只有自己知道。公钥密码系统的金钥交换机制只需要将双方的公钥K3,K6部分交换即可完成,而此交换过程并不需要特别的保密,但是必须确认来源性,也就是公钥K3,K6来源不可以被伪造(因此一般需要认证中心的存在)。完成公钥交换部分之后,双方可以进行资料秘密传送。A方传送到B方和B方传送到A方的方式正好相反。若A方要传送一份资料到B方,则A方先利用B方的公钥K3对资料在加密器C1进行加密,再将加密后的资料送到B方,让B方利用自己才知道的私钥K4进行解密。任何利用B方公钥K3进行加密的资料,都必须透过B方的私钥K4才能解密,因此即使A方(进行加密者)也无法由加密后资料解出原始资料。反之,若B方要传送资料到A方,则需要利用A方的公钥K6透过加密器C2进行加密,加密资料必须利用A方的私钥K5才可以进行解密。
公钥密码系统的另一项特征在于加解密演算法上。一般其演算法是建构在解数学上难题的层次上,通常在加密演算法或者是解密演算法上常常需要一些复杂的数学运算,例如EXP或是LOG。换言之,无论是利用软体或是硬体加以实施,都需要相当的的执行时间才可完成,而这也正是传统公钥密码系统的最大缺点。公钥密码系统在一般的资料传输应用上固然有其优点,但是在某些需要即时传输的应用上,例如mobile phone、视讯传输等等。
习知技术的缺点如下:
一、在习知密钥码系统中,如何金钥交换过程中保证金钥的安全性是一项非常重要的课题。更明确地说,由于传统金钥交换途径的不明确性,因此根本无法保证在金钥交换过程中实际交换金钥的隐私性。正因为如此,在现实世界中几乎是不可能存在有这样的传输途径或方案。另外以密钥码系统中,也无法适用于未曾谋面(亦即没有机会建立共有的金钥)的通讯双方要进行秘密通讯的情况。
二、习知公钥密码系统的最大缺点,即在于其实际负责资料加解密的演算法过于复杂,一般都包含相当数量的高阶数学运算。要实现这些高阶数学运算,无论是采用软体或是硬体方式,都无可避免地会引入处理延迟(processing delay)。这对于一般资料处理上尚能接受,但是对于即时处理的应用便可能有相当重的问题产生。
三、传统密码系统所采用的金钥,对于其使用者而言仍是可存取的资源。也就是说,使用者仍然可以透过一定程序取得或处理金钥。换言之,这也提供了黑客取得金钥的路径。
本发明的目的即根据上述习用的缺点,提出一种密码系统及其安全资料的传输方法,该新一密码系统,能够在两个通讯方间建立一保密通路。这种新的密码系统是利用密码隐藏技术,保护真正的密码,借以防止破解者直接破解真实的密码。[简要说明]
为达到上述目的,本发明提出一种密码系统,包含:
一通行码产生器,是借以产生一通行码(passcode);
一内建金钥产生器,是电连接至该密码产生器,并借以产生一内建金钥(hiddenkey);
一工作金钥产生器,是电连接至该内建金钥产生器及该通行码产生器,并根据该通行码及该内建金钥以产生一工作金钥(working key); 以及
一加密解密器,是电连接至该工作金钥产生器,借以利用该工作金钥对讯息进行加密(encrypting)或解密(decrypting)的动作。
如所述的密码系统,其中该内建金钥是内建于一集成电路(IC)内部,且无法由外界直接加以存取。
如所述的密码系统,其中该工作金钥产生器是为一随机变数产生器。
如所述的密码系统,其中该工作金钥产生器是为一杂函数(hash function)。
如所述的密码系统,其中该加密解密器是含DES、SAFERK-64、BLOWFISH等等。
另外,本发明更提出一密码系统的安全资料传输方法,借以从一发送端传输安全的讯息至一接收端,包含下列步骤:
提供一第一内建金钥予发送端及一第二内建金钥予该接收端,该第一及第二内建金钥是为相同者;
提供一能行码;
根据该第一内建金钥及该通行码产生一第一工作金钥;
借由该第一工作金钥加密一明文为一密文;
自该发送端送出该密文及该通行密码至该接收端;
借由该第二内建金钥及被该接收端接收的该通行码产生一第二工作金钥,该第二工作金钥是相等于该第一工作金钥;以及
借由该第二工作金钥解密该密文还原到该明文。
图示简要说明
图1:习用密钥密码系统;
图2:习用公钥密码系统;
图3:本发明基本内建金钥编码器的架构图;以及
图4:本发明整个密码传输系统架构图。[图号说明]
C1,C2:加密器 K1,K2:金钥
K3,K6:公钥 K4,K5:私钥
A,B:通讯端 1,2:通讯的双方
3:编码解码器 5:内建金钥
7:单向函数 9:通行码
11,21:第一,第二内建金钥编解码器 12,22:通行码
13,23:单向函数 14,24:工作金钥
15,25:编码解码器详细说明
下面通过附图和实施例进行详细说明。
图3表示基本的内建金钥-编/编码器的架构图。如图所示,编码解码器(codec)3内具有单向函数7,以一金钥产生电路(Key-generating circuitry)加以实施,其根据内建金钥5(hidden key)以及随机产生的通行码9(passcode)来决定实际进行编解码动作的工作金钥(working keys)。金钥产生电路所使用的单向函数7必须具备以下条件------在知道工作金钥(working keys)和通行码9以及单向函数7演算法的情况下,必须保证逆推出内建金钥5的机率为计算上的不可能。符合此一条件的演算法像是密码签署系统中的杂凑函数(hash function)。通行码9是可以随着应用情况而变动的参考码,并且会随着资料一并传送到接收端,而接收端则可以透过相同机制(包含建金钥以及单向函数所使用的演算法)产生相同的工作金钥进行解码动作。工作金钥(working keys)是实际作为加解密影像资料的金钥,而在本发明中并不特别限定使用何种编码解码器(codec),例如一般的block cipher,像DES,SAFER K-64,Blowfish等等,甚至是多种区块密码器的组合亦可。
换言之,本发明提出的密码系统是由一通行码产生器、一内建金钥产生器、一工作金钥产生器、一加密解密器组成。通行码产生器,是借以产生一通行码9(passcode),内建金钥产生器借以产生一内建金钥5(hidden key),工作金钥产生器根据该通行码9及该内建金钥5以产生一工作金钥(working keys),而编码解码器(Codec)3的加密解密器则利用该工作金钥(working keys)对讯息进行加密(encrypting)或解密(decrypting)的动作。当然,该内建金钥金钥是内建于一集成电路(IC)内部,且无法由外界直接加以存取。该通行码产生器是为一随机变数产生器。该工作金钥产生器是为一杂难函数(hash function)。该加密解密器是含DES、SAFERK-64、BLOWFISH等等。
利用本发明的双层加密结构的前题是通讯双方都必须拥有相同的内建密码,这可以由几种方式达到:(1)通讯双方的IC在制造之初即透过一密闭的电子装置中,IC内部的内建密码仍然不可以直接输出,而是必须透过转译的程序才可以输出,以确保内建密码的安全性;(2)两者间可以透过一公钥密码机制来完成所需要交换的内建金钥,也就是说,通讯双方的hidden-key codec都包含一使用金钥长度最长(破解机率最低)的公钥密码器电路,此电路只会在建立内建金钥时使用一次。由于公钥密码器电路(或韧体模拟)使用复杂数学运算而且金钥长度很长,因此进行内建金钥设定时会需要相当长的时间,但是因为实际对资料加解密时不需要动用到这部分,而是使用速度快的编码解码器codec部分,因此仍可以达到即时性的要求。
在本发明的密码结构中会在一定资料量中加入所需要的通行码,通行码产生的频率可以视实际情况而定。通行码的作用是让实际负责编解码的工作金钥更多样性。因为一般破解区块编码器的方式是收集足够多的明文-密文对来破解出对应的金钥。而在上述结构中,只要改变通行码,工作金钥就会随的改变,使得破解上更加困难。即使单一工作金钥被破解,并不会影响其他资料的安全性。另外,破解的工作金钥也很难配合对应的通行码解出系统的内建金钥,因此系统整体而言仍然是安全的。
图4表示整个密码传输系统的架构图。在通讯的双方1,2分别具有第一内建金钥编解码器11和第二内建金钥编解码器21,其内包含一致性的内建金钥。当传送方(左方)将明文资料Pkaintext输入到第一内建金钥编码器11内之后,第一内建金钥编解码器11配合适当的通行码12,透过单向函数13产生所需要的工作金钥14,利用编码解码器15(codec)将明文资料Plaintext加密成密文资料Ciphertext输出。输出部分还包括了对应的通行码Passscode。当接收端(右端)收到密文资料Ciphertext以及通行码Passcode,会将其中通行码22送到单向函数23中,与内建金钥21一并作用还原出原始的工作金钥24,再利用编码解码(codec)25将密文资料Ciphertext还原成明文资料Plaintext。
换言之,本发明更提出密码系统的安全资料传输方法,借以从发送端1(亦可为发送端)传输安全的讯息至接收端2(亦可为发送端),首先由第一内建金钥解码器11及第二内建金钥解码器21分别提供第一内建金钥予发送端1及第二内建金予该接收端2,该第一及第二内建金钥是为相同者。接着提供一通行码12,并根据该第一内建金钥及该通行码12产生第一工作金钥14,再借由该第一工作金钥14加密一明文Plaintext为一密文ciphertext。之后,再自该发送端1送出该密文Ciphertxet及该通行码Passcode至该接收端2,由该第二内建金钥及被该接收端2接收的该通行码Passcode产生一第二工作金钥24,该第二工作金钥24是相等于该第一工作金钥14。最后,再借由该第二工作金钥24解密该密文Ciphertext还原至该明文Plaintext。
要破解图4的密码系统,可以区分为两种层次:(1)破解工作金钥,以及(2)破解内建密码。要破解工作金钥,必须收集足够的的明文-密文对,再配合编码解码器(codec)内的演算法,才能够加以破解。不过在本系统中,工作金钥的破解与否并不会影响系统整体的安全性。第一、工作金钥是会随着通行码而变动,只要通行码具有足够的变异性,亦即利用随机变数产生器来产生,实际上破解单一工作金钥并不会影响其他加密资料的安全。第二、如果工作金钥的变动率非常快,收集足够明文-密文以及相对的通行码,根据单向函数的特性,也无法逆推回真正的内建金钥,因此系统仍然是安全的。
真实密码可以建立于硬体线路中,亦即集成电路(IC)内部,以下称之为内建金钥(hidden key)。内建密码是和一可变动的通行码(passcode),一起经过单向函数(one-way function)的处理,产生工作金钥(working keys)。工作金钥是实际负责进行编码解码资料的金钥。本发明的密码系统的重点有三:(1)内建密码是内建于IC的内部,而且不预设任何读出内建密码的路径,(2)内建金钥是利用可变动的通行码来产生真正进行编码解码动作的工作金钥,也就是说改变通行码可以随的改变对应的工作金钥,增加工作金钥的变异性;(3)单向函数具有不可逆推的特性,也就是说,无法由工作金钥以及对应的通行码逆推回真正的内建金钥。根据上述特性,可以建立一个具有相当安全度的密码系统。
本发明优点如下:
一、由硬体保护的内建金钥(hidden key),可以确保没有人可以直接存取到此内建金钥,消除了人为因素对系统安全性的威胁。
二、内建金钥利用单向函数来产生实际负责加解密的工作金钥,因此对于内建金钥的安全性更有保障。
三、实际负责加解密的编码解码器(codec)是利用基本换位和代换处理方式建立,因此,处理快速,可以适用于即时传输的应用。
本发明得由熟悉本技艺的人士任施匠思而为诸般修饰然皆不脱如权利要求所欲保护者。