迅速发展的Internet给人们的生活、工作带来了巨大的方便,人们可以坐在家里通过Internet收发电子邮件、打电话、进行网上购物、银行转帐等活动。然而,您可曾想过,您发出的电子邮件(或别人发给您的电子邮件)是否已被人看过,甚至还被人修改过?您和朋友打的电话是否被人窃听?当您某次从您的银行帐户上给别人转帐5万元(通过Internet),是否会有人恶意地将您的这一次操作重新执行1次甚至多次?总之,您在Internet上做的一切安全吗?同时,对于银行和信用卡公司而言,怎样来确定您就是真正的“您”呢? 在早期的常规密钥密码体制中,典型的有代替密码,其原理可以用一个例子来说明。 例如,将字母a,b,c,d,…,w,x,y,z的自然顺序保持不变,但使之与D,E,F,G,…,Z,A,B,C分别对应(即相差3个字符)。若明文为student则对应的密文为VWXGHQW(此时密钥为3)。 由于英文字母中各字母出现的频度早已有人进行过统计,所以根据字母频度表可以很容易对这种代替密码进行破译。 2、数据加密标准DES DES算法原是IBM公司为保护产品的机密于1971年至1972年研制成功的,后被美国国家标准局和国家安全局选为数据加密标准,并于1977年颁布使用。ISO也已将DES作为数据加密标准。DES对64位二进制数据加密,产生64位密文数据。使用的密钥为64位,实际密钥长度为56位(有8位用于奇偶校验)。解密时的过程和加密时相似,但密钥的顺序正好相反。 DES的保密性仅取决于对密钥的保密,而算法是公开的。DES内部的复杂结构是至今没有找到捷径破译方法的根本原因。现在DES可由软件和硬件实现。美国AT&T首先用LSI芯片实现了DES的全部工作模式,该产品称为数据加密处理机DEP。 3、公开密钥密码体制 公开密钥(publickey)密码体制出现于1976年。它最主要的特点就是加密和解密使用不同的密钥,每个用户保存着一对密钥──公开密钥PK和秘密密钥SK,因此,这种体制又称为双钥或非对称密钥密码体制。在这种体制中,PK是公开信息,用作加密密钥,而SK需要由用户自己保密,用作解密密钥。加密算法E和解密算法D也都是公开的。虽然SK与PK是成对出现,但却不能根据PK计算出SK。公开密钥算法的特点如下: 用加密密钥PK对明文X加密后,再用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))=X 加密密钥不能用来解密,即 DPK(EPK(X))≠X在计算机上可以容易地产生成对的PK和SK。 从已知的PK实际上不可能推导出SK。 加密和解密的运算可以对调,即: EPK(DSK(X))=X/ 在公开密钥密码体制中,最有名的一种是RSA体制。它已被ISO/TC97的数据加密技术分委员会SC20推荐为公开密钥数据加密标准。 下面简要介绍RSA体制的原理。 用户选择2个足够大的秘密的素数p和q(一般为100位以上的十进制数)。 ,li>令n=pq。n是公开的。实际上,从n分解出因子p和q是极其困难的。n的欧拉函数Φ(n)=(p-1)(q-1),Φ(n)即小于等于n并与n互素的数的个数。 选择一个相对较大的整数e作为加密指数,使e与Φ(n)互素。 解同余方程 ed=1modΦ(n) 求出解密指数d。 若用整数X、Y分别表示明文、密文,则以下2式可用于加密和解密(X、Y均小于N): 加密:Y=Xemodn 解密:X=Ydmodn 每个用户都有一组密钥(e,d、n)。对这种体制,只有(e,n)是出现在公开手册上的(即PK)。d则是需要用户保密的(即SK)。 要求明文X<n。 RSA体制的保密性在于对大数的因数分解很花时间。若设机器周期为1μs,分解一个二进制数n所需时间如表1所示。 位数1002003005007501000 所需时间30秒3天9年1兆年2×109年6×1015年 因此,当n足够大时,在目前情况下,对n进行因数分解实际上是无法实现的。 二、数字签名 以往的书信或文件是根据亲笔签名或印章来证明其真实性的。但在计算机网络中传送的报文又如何盖章呢?这就是数字签名所要解决的问题。数字签名必须保证以下3点: 1.接收者能够核实发送者对报文的签名; 2.发送者事后不能抵赖对报文的签名; 3.接收者不能伪造对报文的签名。 现在已有多种实现各种数字签名的方法,但采用公开密钥算法要比常规算法更容易实现。下面就来介绍这种数字签名。 发送者A用其秘密解密密钥SKA对报文X进行运算,将结果DSKA(X)传送给接收者B。B用已知的A的公开加密密钥得出EPKA(DSKA(X))=X。因为除A外没有别人能具有A的解密密钥SKA,所以除A外没有别人能产生密文DSKA(X)。这样,报文X就被签名了。 假若A要抵赖曾发送报文给B。B可将X及DSKA(X)出示给第三者。第三者很容易用PKA去证实A确实发送消息X给B。反之,如果是B将X伪造成X',则B不能在第三者面前出示DSKA(X')。这样就证明B伪造了报文。可以看出,实现数字签名也同时实现了对报文来源的鉴别。 但是上述过程只是对报文进行了签名。对传送的报文X本身却未保密。因为截到密文DSKA(X)并知道发送者身份的任何人,通过查问手册即可获得发送者的公开密钥PKA,因而能够理解报文内容。则可同时实现秘密通信和数字签名。SKA和SKB分别为A和B的秘密密钥,而PKA和PKB分别为A和B的公开密钥。 三、密钥分配 目前,公认的有效方法是通过密钥分配中心KDC来管理和分配公开密钥。每个用户只保存自己的秘密密钥和KDC的公开密钥PKAS。用户可以通过KDC获得任何其他用户的公开密钥。。首先,A向KDC申请公开密钥,将信息(A,B)发给KDC。KDC返回给A的信息为(CA,CB),其中,CA=DSKAS(A,PKA,T1),CB=DSKAS(B,PKB,T2)。CA和CB称为证明书(Certificate),分别含有A和B的公开密钥。KDC使用其解密密钥SKAS对CA和CB进行了签名,以防止伪造。时间戳T1和T2的作用是防止重放攻击。 最后,A将证明书CA和CB传送给B。B获得了A的公开密钥PKA,同时也可检验他自己的公开密钥PKB。 四、Outlook Express下的操作实例 Microsoft公司的Outlook Express是目前功能较完善、使用较方便的一个电子邮件管理软件,其中所提供的安全特性就支持前述的加密与数字签名,使您在Internet上可以发送和接收安全的电子邮件,下面具体介绍其使用方法。要使用Outlook Express中的安全电子邮件,您需要数字标识。数字标识(也叫证书)提供了一种在Internet上验证您身份的方式,与司机驾照或日常生活中的其他身份证的方式相似。这里所说的数字标识即前面提到的公开密钥PK和秘密密钥SK。 数字标识允许您给电子邮件签名,这样真正的收件人可确保该邮件确实是由您发来的并且没有受损。另外,数字标识也允许其他人给您发送加密邮件。 1、获取您的数字标识
使用数字标识之前需要先获取数字标识,您可以从发证机构获得数字标识,那是个负责发布数字标识的组织,并不断地验证数字标识是否仍然有效。然后您可以将您的数字标识发送给需要给您发送加密邮件的用户,您也可以用相同的数字标识发送签名邮件。有较多的商业发证机构,如果您选用Verisign公司,您可以通过以下步骤获得您的数字标识: 在发送签名邮件之前,必须注意电子邮件帐号与数字标识的对应。为此,请单击“工具”菜单并单击“帐号”,选择您想使用标识的帐号,单击“属性”,然后单击“安全”选项卡。检查名称为“发送安全邮件时使用数字标识”的对话框,然后单击“数字标识”,选择与该帐号有关的数字标识(只显示出与帐号的电子邮件地址相同的邮件地址的数字标识)。 3、备份您的数字标识 数字标识的部分信息是存储在计算机上的不能替换的非公开关键字。如果该非公开关键字丢失,您将无法再发送已签名的邮件或读取具有该数字标识的加密邮件。您应该保留数字标识的备份,以防包含该数字标识的文件损坏或无法读取。要备份数字标识,先运行Internet Explorer,然后单击“查看”菜单,然后单击“Internet选项”,单击“内容”选项卡并随后单击“个人”按钮。“导入”和“导出”该页面上的按钮允许管理您的数字标识。 4、安全电子邮件
您已经拥有数字标识,可以发送安全电子邮件了。Outlook Express中的安全电子邮件通过使用数字签名和加密对Internet通信提供保护。使用数字签名,您可以在所发电子邮件上签署独特的标识,这样接收方就可以确认您是邮件的发送者,并且邮件在传送过程中未被篡改。对所发邮件进行加密有助于确保只有预定接收人员才能在传送过程中读取该邮件。 |