1、第6章 密 码,就广义而讲,保密措施也可以分为两类:一类称为信道保密,它指专人传递或者专线传递以及采用扩谱与流星余迹传送等信道掩蔽和保护的一系列措施。另一类称为消息(信号)保密,它主要针对传送的信号加以掩蔽和保护,本章只讨论后者。,6.1 密码学的基本概念 6.2 保密学的理论基础 6.3 序列(流)密码 6.4 分组(块)密码 *6.5 公开密钥密码 *6.6 认 证 系 统 6.7 模拟消息加密体制 6.8 GSM的鉴权与加密,6.1 密码学的基本概念,通信加密,从消息与信号的类型划分,可分为数字加密与模拟加密两大类。 数字加密还可以按照所采用的密钥类型划分为单钥制与双钥制两类。 所谓单钥
2、制是指通信的双方发送端和接收端采用的是同一种密钥,又称为对称式密钥。所谓双钥是指通信的双方所采用的是不同的两种密钥,称为不对称式密钥。,模拟加密,它是指对模拟信号的加密,在60 年代以前是话音加密的主导体制。它主要是依据对模拟信号的置乱来实现的。密表加密是以字母和数字为单元进行加密处理的,又称为单表密码。它的加密算法很简单,一般用一个简单的线性方程来表示: C am+b,modq这里C为密文,m为明文,而a、b、q则是由密钥规则所决定的数。,为了去掉循环多表密码体制的缺点,可采用一种叫滚动密钥的密码体制,它是一种非循环体制。比如通信双方约定以某一本书为密钥,具体加密方法是以该书的某页、某行、某
3、句开始为密钥,对明文序列逐个字母加密,求得密文字母序列发送出去,接收端可按照同样的规则逐个字母解密恢复成原来的明文序列,这种密码体制破译比较困难。,6.2 保密学的理论基础,40年代末,C.E.Shannon在发表信息理论奠基性论文“通信中的数学理论”的同时,发表了“保密系统的信息理论”,他引用信息论的观点对信息的保密问题作了系统和深入的描述和分析。,一、 保密系统的数学模型和 基本定理保密系统是以研究通信系统的安全性为目的的专用通信系统。其实质是为了提高通信系统中信息传输和存储的安全和保密。作为授权合法用户A的公钥,它可以在任何公开的密码簿上查找到,供对方用户B或任一第3者用户解密用,以验证
4、是否是授权的合法用户A发送来的信息。,在认证时,授权的合法用户A为了保证自己所传送的信息安全,首先采用仅用户A掌握的私钥DkA进行加密,构成密文送至对方,这时用户B或者任一第三方均可以采用查找到的用户A的公钥EkA进行解密,若能解出明文,则证明这明文系合法用户A所发送,而并非非法用户伪造,若不能解出明文,则证明该信息系非法用户伪造的,而并非A所发送,从而达到防伪造的目的。,在进行保密通信时,授权的合法用户A为了防止传送的信息被窃听,首先采用加密变换Tk进行加密,构成密文之后送至对方。 一般保密问题,实质上要解决保密通信系统在安全保密指标下的优化问题,它可通过信源和信宿之间的匹配来实现。,定理6
5、-2-1:不考虑信道干扰时,具有加密、解密变换为Tk1和Tk2,且Tk1Tk2=1的保密通信系统,当系统满足明文M和密文C统计独立时,即HM | C=HM,可以构成一个理想的保密系统。,二、 惟一解距离和明文 信源冗余度前面叙述了保密学基本概念和基本定理,下面将探讨如何度量和实现理论上的保密。40年代末,密码学奠基人之一仙农引入了一个非常重要的惟一解距离(ud)的概念。它是从密码分析学角度来考虑的一个重要物理量。,仙农曾用下列直观图形从物理概念上形象地说明惟一解距离的概念,从前面分析得知密码C的随机性(即保密性能)是取决于密钥K与信源明文M的性质,即C=TK(M)。它可以形象地用图6-2-3图
6、形中两条曲线的走向及其交点来说明。,图6-2-3 惟一解距离示意图,为了实现理想保密,即N0,存在以下两种可能性。 (1) 完全保密体制 (2) 理想保密体制,(1) 实现保密的过程实质上是使密文随机化的过程,它不仅可以通过传统的增大密钥的方法来实现,也还可以等效地从减少信源明文的冗余度的方式实现。 (2) 实现无交点,即ud=N0不大现实,达不到,但它确实给我们明确地指出,采用增大密钥量、减少明文冗余度,或者同时采用以上两种手段,至少可以实现将惟一解距离ud=N0推得更远些。,所谓随机密码,它应满足以下3个条件。 (1) 长度为N的可能明文总数为T=2NR。 (2) 长度为N的可能明文2NR
7、,可以划分为两类,一类是高概率组,是有意义的,它含有:S=2Nr个。 (3) 使用了2H(K)个等概率出现的密钥。,三、 实际保密系统前面,我们研究了理论保密性能和实现理论保密的两种体制:完全保密和理想保密。但是这两类理论保密体制实现都极其困难。下面,我们将从推远交点增大惟一解距离改善理论保密性能和提高密码的工作特性的改善实际保密性两个方面进一步探讨。,减少信源冗余度,总的说来可以分为两类:一种是直接法,即采用信源编码的方法直接消除信源的冗余。另一类是间接法,即采用扩散与混淆的方法将信源冗余度在更大的范围上扩散开或者加以扰乱混淆,以实现间接减少信源冗余度的目的。,工作特性W(N)是一个由系统所
8、提供的“实际保密性能”的度量。两种不同的密码体制可以有相同的惟一解距离,但工作特性不一样。 一个好的实际保密系统,其W(n)曲线虚线部分要保持足够高,以防止窃听者找出其解,或者要迅速使它取足够大的值,以致当窃听者分析出其解时,已经失去时效。,四、 现代密码中的计算复杂 性理论基础一个密码系统的安全性可以通过破译该系统的最好算法的计算复杂度来度量。复杂度理论是指处理算法难度的分类。而算法难度则是指执行一个算法所需消耗资源的一个测度,这里资源是指下列4种类型:基本操作的数目;所耗费的时间;需要的存储空间;需要的硬件数量。,6.3 序列(流)密码,序列密码系统是单钥体制中的两个最主要加密体制之一。它
9、与分组(块)加密比较具有如下优点。序列加密最大优点是适合于实时加密,所以对实时的数字话音特别适合。序列密码有较成熟的理论作指导,它的设计、分析较分组密码容易。序列密码系统的加密和解密较分组密码易于实现。由于有以上3个优点,序列加密被广泛地用于实时业务传输的加密中。,一、 序列密码的基本概念前面,我们讨论了“一次一密”的完全保密的密码体制,同时也指出,纯随机的无限长的随机序列密码,产生、同步、管理、分配都极其困难,因此是不实用的。 序列a=a1a2an)若满足下列递推关系: ai+n=f(ai,ai+1ai+n-1),i1,二、 m序列的非线性组合序列既能保留m序列的良好随机统计特性和产生同步方
10、便的优点,又要设法提高其线性复杂度的方法,无疑在序列密码中应首先要考虑的方法。前馈序列就能同时满足上述特性的一种重要方法。它是通过一个或几个m序列加上一个非线性前馈网络来产生既具有周期长、随机特性好又具有线性复杂性高的伪随机序列。这类前馈序列又可分为基于单个m序列的前馈序列和基于若干个m序列的前馈组合序列两大类型。,三、 非线性移位寄存序列:M序列上面我们讨论了线性移位寄存序列以及在它基础上的非线性组合序列,下面将简要讨论非线性移位寄存器序列。就反馈函数的代数标准型而论,不同的n级非线性反馈移位寄存器有22n个,其中只有2n个是线性反馈移位寄存器。二者之间的巨大差别告诉我们,使用非线性反馈移位
11、寄存器来构造密钥序列将会给设计者提供充分的选择余地,从而大大增加破译难度。,6.4 分组(块)密码,一、 分组加密的基本概念,一个好的分组加密算法应满足: (1) 分组的明文字长n要足够大,以防止明文穷举攻击法奏效; (2) 密钥量要足够大(即置换子集中的元素足够多)以防止密钥穷举攻击法奏效; (3) 由密钥确定置换的算法足够复杂(即明文与密文之间的联线规律),使破译者除了用穷举法以外,无其他捷径可循。,常用的代换有下述几种。 (1) 左循环移位代换 (2) 右循环移位代换 (3) 模2加1代换 (4) 线性变换 (5) 坐标变换 (6) 仿射变换,二、 数据加密标准(DES)数据加密标准(D
12、ES)是由IBM研制,并由美国国家安全局(NSA)认证是安全的。它已于1976年作为联邦标准被采用,1977年美国国家标准局正式批准。DES可以构成分组(块)加密和序列(流)加密形式。各用户之间惟一的差别是密钥不同。当DES被用作分组加密时,密钥长为64位,当然56位代表密钥序列,而其余的8位作校验位,而每一校验位都对一个8位序列形成奇校验。,在这种分组加密模式中,同样的明文总是形成严格相同的密文。DES是靠由模块组成的复杂系统完成其工作的。 DES是一类对二元数据进行加密的算法,数据分组长度为64bit(8byte),密文分组也是64bit,密钥长度为64bit,其中含8bit奇偶校验位,有
13、效密钥长度为56bit。,(1) 初始置换IP。将64bit明文按一定规律进行置换,得到一个乱序的64bit明文组再将它分成左、右两组各32bit以Ri与Li表示送至乘积变换。 (2) 初始逆置换IP-1。它是将经乘积变换的16次迭代后所给出的64bit密文组,按照逆置换表进行逆置换后按表中行读出得到输出的64bit密文组。,(3) 乘积变换。乘积变换是DES算法的核心部分,它将经初始变换后明文分为左、右两个32bit分组,进行迭代运算,在每次迭代过程中左、右两组不断地彼此交换位置,而每次迭代仅对右边分组的32bit进行一系列加密变换,如图6-4-5所示,然后左、右两分组彼此交换位置,下一轮仍
14、对右边分组,即原来左边分组的32bit与右边经加密变换后的32bit逐位模2加后的32bit数据再进行加密变换,一直进行下去共进行16次迭代,而每一轮迭代时,右边都要进行选择扩展运算E、加密模2加运算、选择压缩远算S、置换运算P和左右混合运算。,(4) 选择扩展运算E。它将右边每组32bitRi-1扩展成每组48bit的输出,其扩展规律是按照将右边32bit数据进行模4运算,模4运算中周期为0和1的数据重复一次,周期为2和3的数据不重复,这样32位中就有一半16位要重复,加上原来的32位即16+32=48,即可构成48位。,(5) 加密运算。将上面选择扩展运算E输出的48bit明文数据与子密钥
15、产生器输出的48bit子密钥逐位模2相加进行加密,输出48bit密文组。 (6) 选择压缩运算S。它将来自加密运算的48bit密文数据自左至右分成8组,每组6bit然后并行送入8个S盒,而每个S盒为一非线性代换网络,它有4个输出,如图6-4-7所示。,图6-4-7 选择压缩运算S框图,(7) 置换运算P。它是将S1至S8盒输出的32bit数据进行坐标变换。 (8) 其他部分。置换P输出的32bit数据要与左边32bit即Ri-1逐位模2相加,所得结果作为下一轮迭代用的右边数据段,并将右边Ri-1并行到左边寄存器,作为下一轮迭代用的左边数据段。 (9) 子密钥产生器。这部分虽不属乘积变换,但是它
16、是乘积变换的控制部分。,第二种形式数据序列(流)加密配置是输出反馈(OFB),它与CFB的差别是现在的密钥流不依赖于数据如图6-4-9所示。要注意,被反馈的输出码组,是密钥流而不是密文被反馈来生成新的密钥流。不管DES如何配置,其运算都依赖于56位密钥。,图6-4-9密钥流反馈模式的DES,DES还有一些性能更优良的改进性和变形;其中最典型的有三重DES(TDES)和广义DES(GDES)等。 1.IDEA密码算法IDEA密码前身是由我国学者来学嘉和J.Messey于1990年提出,1992年进一步改进后正式更名为IDEA即国际数据加密算法,它被认为是目前最好最安全的分组密码算法之一。,2.A
17、ES候选算法1997年4月,美国国家标准技术局发起征集先进加密算法AES的活动,并成立相应AES工作小组,其目的是征求一种非保密的、可公开技术细节的、供全世界免费使用的分组密码算法。,*6.5 公开密钥密码,(1) 密钥分配和管理问题。单钥制最大缺点是密钥分配和管理十分复杂,特别是在一个有很多用户的通信网中尤为复杂。,(2) 信息认证问题。前面所讨论的密码系统是为了防止接收端非法用户窃听的狭义传统保密系统,但是随着现代计算机网和现代电子服务系统比如E-mail、MHS、EDI等特别是因特网的迅速发展,另一类需要在信息发送端防止非法用户主动攻击,非法伪造的安全系统迅速崛起。,一、 公开密钥的一般
18、原理传统的保密通信都是在事先约定的双方之间进行的,即收、发双方所使用的密钥是相同的,加密和解密是完全对称的,如前面的图6-1-1所示,故称之为单钥体制或对称密钥体制。美国人迪菲和赫尔曼深入研究了这类单钥体制后他们发现,保密系统的密钥是由发端的加密密钥和收端的解密密钥两部分共同组成。,可见,不对称双钥的公开密钥体制,归纳起来应遵守如下原则。 (1) 对每个单程保密信道,有一对加、解密变换(Ek1,Dk2),其中加密密钥k1和变换Ek1是公开的,并可公开查寻。而解密密钥k2和变换Dk2是秘密的,私钥k2仅为合法用户掌握。 (2) 若想从Ek1求Dk2至少在计算上是不可能的,它属于计算复杂性中的NP
19、类问题。,(3) 经过Ek1加密的密文,只能由合法用户用Dk2解密,且加、解密算法是互逆的,即有Dk2Ek1=1。 (4) 必须存在有效地产生Ek1和Dk2的简单可行方法,使它属于计算复杂性中的P类问题。,在数学上,若函数满足以下几点,称函数y=f(x)为单向函数。 (1) 对每个xX,计算y=f(x)是容易的。 (2) 已知方程y=f(x)在yY中有解,但是,若由y计算x是极其困难的(NP类问题)。若函数f进一步满足条件(3)。 (3) 存在某个附加陷门信息k,当k未知时,y=f(x)为一单向函数,但是若k已知,则从y=f(x)计算x是容易办到的(是P类问题)。,二、 RSA体制RSA体制是
20、美国麻省理工学院(MIT)3位教授Rivest、Shamir和Adleman于1978年提出,并以3个字头RSA命名。它是一个迄今为止理论上最为成功的公开密钥密码系统。它的安全性是建立在数论和计算复杂性理论的基础上。即求两个大素数的乘积在计算上是容易的,但是若要分解两个大素数的积,求出它的素因子则是计算上困难的,它属于NPI类问题。,RSA体制是采用离散指数的同余运算来构造加、解密算法的。加密时,将明文自乘e次幂,除以模数n,余数则构成密文c。 c=memodn解密时,将收到的密文c自乘d次幂,再除以模数n,则其余数便是待解的明文m。 m=cdmodn,三、 陷门背包体制另一种公开密钥体制是使
21、用陷门背包型的方法生成矢量密钥。它是1978年Merkle和Hellmad提出的,陷门是指一种复杂的计算情况,在这种情况下,若已知某些线索(如陷门位置)则可以大大简化计算。,*6.6 认 证 系 统,一、 消息认证系统在通信网中,用户A若将消息传送给用户B,接收者用户B首先要确定收到的消息是否真正来自A,其次还要验证来自A的消息是否被别人修改过,有时用户A也需要知道发出的消息是否被正确地送到目的地。这些都需要消息认证技术来解决。,二、 身份认证通信和数据系统的安全性常常取决于能否正确验证通信用户或终端的个人身份。比如银行自动取款机(Automatic Teller Machine,ATM)可将
22、现款发给它正确识别的帐号持卡人,数字移动通信系统中对合法用户的鉴别权以及在计算机网中计算机的访问和使用以及安全地区的出入和放行都是以身份认证为基础的。,身份验证大致可划分为4个类型如下: (1) 由已知事物验证身份如口令、护字符、帐号等; (2) 由个人持证验证身份如工作证、图章、护照、信用卡和驾车执照等; (3) 由个人特征验证身份如指纹、声纹、手形、血型基因和视网膜等; (4) 个人无意动作,如手写签字。,三、 数字签字长期以来,人们一直沿用手写书签字作为政治、外交、军事等签署文件、条件和命令,商业上签订契约合同。随着社会的信息化,人们希望能通过通信网进行更为迅速、及时的远距离的贸易合同的
23、签字,因此电子化的数字签字就应运而生,并开始用于商业通信系统,诸如电子文电作业系统MHS和电子数据交换系统EDI等系统中。,四、 信息伪装(隐藏)近些年来,国际上开始尝试一种新的信息安全概念,即将机密资料利用伪装隐藏到一般的文件与图像中,再通过网络传送。由于非法窃获者从网络上窃获下来的是经隐藏伪装后的资料,这种资料与一般非机密资料没有两样,因此很容易逃过非法窃获者的破译。,一般供伪装、隐藏的载体为一般的数字化媒体比如图像、声音、文字等,通过伪装、隐藏达到迷惑人的视觉、听觉的感知,达到所见(听)非所得的目的。 数字水印的基本原理是设法嵌入某些标识数据比如所有者的版权信息到多媒体数据载体中作为水印
24、,而最常用载体是图像,并使得水印在多媒体数据载体中不可感知和足够的安全。,6.7 模拟消息加密体制,一、 模拟置乱加密体制决定一个模拟信号的主要物理参量是振幅、频率和时间,只要对这3个参量之一或其组合进行变换和置乱就能改变模拟信号的结构,达到保密的目的。,模拟置乱大致可划分为振幅置乱、频域置乱和时域置乱3种类型。 振幅置乱:比如可以采用一个声音信号来修正和掩蔽语音信号,例如用伪随机噪声、单音、多音组合和音乐等信号压制语音信号,改变其振幅随时间的变化,日常的干扰电台常采用这一技术对敌台进行干扰。,频域置乱:它是语音保密中较早采用的一种体制,至今仍在使用。它包括简单的倒频、移带倒置、裂带倒频组合等
25、方式。 时域置乱:时域置乱类似于频域置乱,只是被处理的参数由频带改为时隙,它实现起来比频域方便得多。,自动改变置乱的方法有两种:一种是采用伪随机数产生器产生任意置换,再检验是否能真正可用;第二种方法是将预先选好的置换存入ROM,而后通过伪随机数产生器进行控制,从而从ROM中读出一个置换供使用。,二维置乱。上面讨论的振幅置乱、频带置乱和时隙置乱都属于一维置乱,一维置乱即使加上各种组合,它的置乱种类即密钥总的说来是有限的,特别是真正能使用的更是有限。这主要是受到一维性能的限制。一维置乱能很自然就推广到二维情况,比如时隙/钟速可变置乱、时隙/倒频置乱、时隙/裂带置乱等等,其中最后一种时隙/裂带置乱最
26、有价值。,二、 模/数/模置乱模/数/模置乱体制是先将模拟信号比如语音数字化,而后进行数字信号置乱,最后再通过数/模转换成带宽基本不变的模拟信号送出。采用频域模/数/模方案,是另一种可实现的方案。,6.8 GSM的鉴权与加密,GSM原为1982欧洲邮电主管部门会议(CEPT)成立的移动通信特别小组(Group Special Mobile,GSM)的名称。后来随着形势的发展,1990年又将GSM(Global System for Mobile communication)改为全球移动通信系统。它是目前全世界应用最为广泛的数字式蜂窝式通信系统,全球已有近百个国家和地区采用它。,一、 防止未授权
27、非法用户接入的主要措施:对移动用户的认证与鉴权 鉴权的目的是防止非法的未授权用户的接入,实际上它是通过用户识别卡(SIM卡)的认证来实现的。 二、 防止空中接口和接收端非法窃听而采用的加、解密运算 为了保证业务信道和信令信道中传送信息不会被非法用户窃听,在GSM系统中要对送入无线信道空中接口的信息进行加密。,三、 防止窃取用户识别码和位置信息 每个移动用户都有一个惟一的号码称它为国际移动用户身份码IMSI(International Mobile Subscriber Identity)它不是呼叫号码,而是不公开的,IMSI一般只能在移动台MS第一次接入进网时通过无线接口加密传送一次,另外仅在特殊情况下,比如出错时,再传送IMSI。,