消息鉴别与生物认证(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-30 17:21:55

点击下载

作者:王志芳

出版社:通信图书编辑部

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

消息鉴别与生物认证

消息鉴别与生物认证试读:

前言

信息安全是一个由来已久的话题,在数字化信息系统(Internet 尤具代表性)出现之后,信息的获取更加便利、流转更加通畅,但同时也带了信息的不受控传播、可信性及可用性等方面的问题,这些不安全因素除了影响信息的正常使用,还可能引起信息系统的故障甚至瘫痪,因为信息系统本身的运作也依赖于各种不同形式的消息所承载的信息。这些问题在现实中的表现就是常常听到的窃取信息、非法访问、数字欺诈、系统瘫痪等令人不安的各种信息安全问题。随着信息安全问题对人们工作、生活的影响越来越大,关于信息安全的研究也逐渐成为热点,信息安全本身也逐渐发展成为一门系统性的学科。那么,在信息安全领域中,各种安全需求、安全技术以及安全协议之间是怎样一种关系呢?下图试图对这个问题进行梳理。图1 信息安全需求与信息安全技术

如上图所示,实际信息系统中关于安全的需求有各种表述方式,但是本质上归结起来无外乎机密性与认证性两个方面的安全需求,其中认证性又包括来源真实、内容真实及内容完整3个侧面。而在现实世界中,这些需求的表现方式千变万化,所用到的技术也多种多样,它们到底是什么关系呢?笔者试图从这样一个视角去理解:信息安全领域中的各种基本技术、算法都可以认为是信息安全支撑技术,这些技术在协议的组织下,构成了针对特定安全业务的方案与实现,这些方案与实现用来满足这个安全业务背后所体现的信息安全需求。上图就是在试图以这样一种视角来理解信息安全领域中的诸多概念。

基于上述分析可以看到,对于一种安全支撑技术,一般很难说它是解决某种安全需求问题的,比如,加密算法既可以用来加密数据实现机密性保证,也可以基于某种协议实现真实性或者完整性的认证;反过来,满足某种安全需求的技术方案往往也不是唯一的,比如,可以通过数字签名的方式进行来源真实性认证,也可以通过数字水印的方式达到同样的目的。因此,关于信息安全技术的书籍由于出发点不同,其表述方式也有很大差别,如果没有理解上述事实,就很容易“只见树木不见森林”,无法在真正的问题面前找到有效的解决方案。

笔者从博士课题开始进入信息安全研究领域,10年来有幸目睹了信息安全在我国逐渐引起重视、在大学设立专业、建立研究机构直至国家成立专门机构的过程,在这个过程中笔者所在的研究团队也从多个角度努力探寻信息安全这个学科的内涵、规律及本质,本书在一定程度上体现了笔者及其合作伙伴对于信息安全的理解及在相关领域的一些工作。之所以起名为“消息鉴别与生物认证”,就是基于前述对信息安全的理解,着重关注信息认证性保障的方法。除了基于密码学算法的经典方法外,笔者及其团队在生物认证方面从事了多年的研究工作,站在模式识别之外的角度审视、理解生物识别技术,同时将生物识别方法在信息安全领域进一步推进,在生物认证技术方面投入了大量精力,特别是生物密钥、生物模板保护方面的研究在国内外都有一定的影响。因此,这本书从生物认证的角度重新梳理、阐述了生物信息技术领域的一些问题,把生物识别和生物密钥对应到消息源的真实性鉴别和消息的完整性鉴别两个方面。

这本书的结构安排和一些观点与目前大多数信息安全相关的书籍相比似乎有点特立独行,这并不是为了挑起争议,而是试图在理解信息安全学科内涵的基础上重新阐述对一些问题的理解。同时,作为一种连接信息安全需求与信息安全支撑技术的尝试,这本书也许能对于正在为实际的信息安全问题寻找解决方案的人们提供一些更直接的帮助和建议,如果能够起到一点这样的作用,那将是我们最大的欣慰。作者2014年10月第1章消息鉴别概述1.1信息安全与消息鉴别

随着信息化在社会各个方面的普及,人们的生活、社会的生产以及社会的秩序与信息系统的关系越来越密切,一般意义上的信息系统包括从巨型计算机到手机终端等各种信息处理设备构成的庞大的体系,从国家安全到个人生活服务,无不依赖于各种数字化的信息。人们看到的、看不到的各种各样的设备之所以都能够被归结到所谓的信息系统,是因为信息系统的实质在于处理信息而非其外在形态,换句话讲,信息系统中最有价值的资产是其中无形的信息。随着人们对信息化认识的深入,人们对“信息安全”的重视程度也越来越高,从某种意义上讲,失去了安全保障的信息系统基本上也就失去了其使用价[1]值,因此,近年来信息安全的保障已经上升到国家战略的层面。

信息安全的核心问题是保护信息的两个关键属性:机密性和认证性。所谓机密性,就是信息对于未授权的用户而言是不可理解的,一般包括两种技术手段:一是信息加密,二是信息隐藏;所谓认证性,就是对于信息(包括其来源)的真实性、完整性进行确认,保障信息认证性的过程在信息安全的专业术语中一般称为“消息鉴别”,消息鉴别涉及的技术手段比较多,方式、方法也比较多样化,除了保障机密性用到的加密、隐藏等技术手段外,还可以使用散列函数(包括多媒体感知散列)、模式识别(特别是生物识别)等技术配合特定的协议进行消息鉴别。本书旨在介绍围绕消息鉴别问题的一系列理论、方法及其最新进展,为信息安全领域中相关应用提供理论化、系统化的指导和建议。

关于信息机密性的保护不是本书讨论的重点,这里仅对其原理和方法做一个简要的介绍,更多的细节请参考密码学和信息隐藏方面的书籍。从狭义的角度讲,保证信息的机密性就是指信息加密,加密后的信息只有持有密钥的人才能看到有意义的内容,否则看到的都是无意义的密文。但是,近年来随着数字隐写技术的发展,信息隐藏方法也成为保证信息机密性的手段之一,从而扩充了信息机密性的内涵。基于信息隐藏的方法的特点是只有合法的用户才能看到相应的信息,其他人甚至不知道是否存在这些信息、这些信息在哪里存在。因此,从“只让指定的人看到指定的信息”的角度讲,信息加密和信息隐藏都是保证信息机密性的方法。

本书重点讨论“消息鉴别”的原理和方法,也即如何保证信息的认证性。信息认证性的内涵有两个方面:真实性认证和完整性认证,而真实性认证又包括内容真实性与来源真实性,所谓认证就是对这3种“性”进行鉴别。有的参考文献中还提到诸如“可用性”、“不可抵赖性”等,其实大都相当于上述某一种或多种基本属性结合特定的应用背景或约定(协议)的概念延伸,比如“不可抵赖性”就是在一定语义前提下的来源真实性问题,“可用性”认证在多数场合相当于信息的完整性及其内容真实性的鉴别。因此,笔者认为,信息安全最为核心的内涵就是保证信息的机密性、内容真实性、来源真实性及完整性等属性,后面3个属性也可以统称为认证性,实现认证性的技术过程一般称为消息鉴别。消息鉴别的方法相对而言更加多样化,可以基于信息加密算法,也可以基于信息隐藏算法,另外对于来源真实性问题,还逐渐形成了基于生物特征识别的一系列方法。

需要说明的是,信息加密是保证信息机密性的手段,但不意味着加密方法只能用来保证信息的机密性,加密算法配合特定的协议,也可以实现消息鉴别,比如双向 MAC、HMAC等。同样,信息隐藏技术也可以用于构造消息鉴别方案,用于鉴别消息真实性、完整性的信息隐藏方法一般称为数字水印技术,而用来保证信息机密性的信息隐藏方法一般称为数字隐写技术。

总之,信息的机密性和认证性是信息安全的两个本质问题,达到目标的手段有很多种,其中的基本方法或算法不见得就是唯一用来解决机密性问题或认证性问题的,很多时候一些基本算法(如加密算法、信息隐藏算法等)既可以用来保证机密性,又可以用来构造实现消息鉴别的方案。因此,从算法的角度介绍信息安全,常常从“应用密码学”、“信息隐藏”的角度分别介绍;如果从保证信息安全基本需求的角度,则可以按照“信息保密”、“消息鉴别”的分类方式对各种技术方案加以介绍。后者的优点是更加紧密地结合信息安全的现实需求,对实际应用更具有指导意义,本书从后者的分类方法出发,系统介绍目前主流的“消息鉴别”方法及笔者在相关方面的最新研究成果。1.2消息鉴别的要求

在一个公开的网络信息系统中,对信息安全的威胁多种多样,典[2]型的攻击包括以下几种。

① 泄密:将消息透漏给没有合法密钥的任何人或程序。

② 传输分析:分析通信双方的通信模式。在面向连接的应用中,确定连接的频率和持续时间;在面向连接或无连接的环境中,确定双方的消息数量和长度。

③ 伪装:欺诈源向网络中插入一条消息。如攻击者产生一条消息并声称这条消息是来自某合法实体,或者非消息接收方发送的关于收到或未收到消息的欺诈应答。

④ 内容修改:对消息内容的修改,包括插入、删除、转换和修改。

⑤ 顺序修改:对通信双方消息顺序的修改,包括删除和重新排序。

⑥ 计时修改:对消息的延时和重放。在面向连接的应用中,整个消息序列可能是前面某合法消息序列的重放,也可能是消息序列中的一条消息被延时或重放;在面向无连接的应用中,可能是一条消息被延时或重放。

⑦ 发送方否认:发送方否认发送过某消息。

⑧ 接收方否认:接收方否认接收到某消息。

应对前两种攻击的方法属于消息加密范畴,应对③~⑥这4种攻击的方法则属于消息鉴别的内容,数字签名可以抵抗第⑦种攻击,第⑧种攻击需要数字签名和相关的协议结合来对付。实际上,消息鉴别就是验证所收到的消息确实是来自真正的发送方且未被修改的消息,也就是消息的真实性和完整性,同时它也可验证消息的顺序和时间性。而数字签名是一种认证技术,通过签名验证可以抵御发送方的否认攻击。1.3消息鉴别的手段[3~5]

大体来说,消息鉴别的手段可以分为3类:基于加密的消息鉴别、基于散列函数的消息鉴别和基于消息认证码(Message Authentication Code,MAC)的消息鉴别。(1)基于加密的消息鉴别

根据加密技术的分类,实际上也是现代密码学的分类方法,对称密码体制和非对称密码体制对消息的加密都可作为鉴别的一种手段。在对称密码体制中,又以分组密码为主流,同时结合分组密码工作模式进行加密,用作消息鉴别。这类消息鉴别通过将消息分成若干个分组,然后使用分组密码采用迭代或并行运算的方式计算得到该消息的认证标记。迭代型消息鉴别典型的代表是 CBC-MAC,并行运算结构的消息认证码典型的代表有PMAC、XOR-MAC。

非对称密码体制,又称公钥密码体制,最主要的一个应用便是数字签名。由于其密钥构造的特点,私钥与拥有者唯一性的对应,可以抵抗发送方的否认攻击,实现消息的真实性认证。因此,非对称密码体制不仅可以同对称密码体制一样实现消息完整性认证,同时还可通过数字签名实现消息真实性认证。(2)基于散列函数的消息鉴别

散列函数的特点是可将任意大小的消息变换成固定长度的散列值,计算简单,不需要使用密钥,具有强抗碰撞性。散列值只是输入消息的函数,只要输入消息有任何改变,就会导致不同的散列值输出。因此,散列函数常常被用作消息鉴别。在该模式下,由于散列函数没有密钥,在散列函数是公开的情况下,为了安全通信,经常同加密技术结合共同实现消息鉴别。(3)基于MAC的消息鉴别

从算法结果上来看,该类算法与散列函数类似,都是生成固定长度的短数据串,并将该数据串附加在消息之后。但又与散列函数不同,散列函数不需要密钥,而 MAC 的生成是由密钥控制得到的。从使用密钥的角度来看,该类算法又与加密类似,但同样存在区别。MAC算法不要求可逆性,而加密算法必须是可逆的。

虽然消息认证的手段可分为以上3种类型,实际上并没有严格的界限,根据具体的环境和应用的目的,3种方式可以选择使用或者混合使用。第2章基于加密的消息鉴别2.1密码学概述2.1.1 密码学由来

人类社会从刀耕火种、茹毛饮血的时代走到现代化文明的今天,密码一直伴随着文字与战争而存在,几乎世界上的所有文明都使用过密码,如古埃及、古罗马、古阿拉伯等。而围绕密码产生的斗争甚至远胜于战争本身,它既是人类智力的较量,同时又是数学抽象之美的比拼。随着信息技术的发展,密码技术也在不断地进行着改革和演变。

根据不同时期密码技术采用的加解密手段的不同特点,密码技术[3,4]的发展历史可大致分为3个时期:古典密码时期、近代密码时期和现代密码时期。

从古代到19世纪末长达数千年间,社会生产力低下,加密通常都以“手工作业”方式进行,用纸笔或者简单的器械实现加解密,这是密码学发展的手工阶段,一般称为古典密码时期。斯巴达“天书(Scytale)”密码便是此阶段中置换密码的代表,而由罗马帝国恺撒(Caesar)大帝设计的恺撒密码归属于单表替代密码,曾被称为不可破译的维吉尼亚(Vigenere)密码是多表替代密码中的翘楚。此阶段的密码技术仅是一门文字变换艺术,其研究与应用远没有形成一门科学,最多只能称为密码术。

19世纪末,电报和无线电的出现,促使各国通信手段发生了改变,普遍采用无线电技术进行保密通信,也随即开展无线电密码的编制和破译,出现了无线电密码。初期无线电密码都是使用手工编码,编码和解码效率极其低下。易于操作实现的密码算法很容易被破译,而安全性能高的密码算法又因其复杂的加解密过程难以在实际中应用。20世纪20年代,随着机械和机电技术的成熟,军事通信领域中在密码设备方面进行了一场变革。转轮机的出现,实现了保密通信的自动编解码,大大促进了几千年以来手工作业实现加解密的密码技术的进展。随后几十年被称为近代密码时期,这个时期可被看作科学密码学的前夜,此阶段的密码技术是一种技巧和经验的结合体,而非严谨的数学推理和证明。

1949年,香农(Claude Shannon)在《贝尔系统技术杂志》发表了论文“保密系统的通信理论(Communication Theory of Secrecy System)”,首次将信息论引入密码技术研究中,开创了用信息理论研究密码的新途径,为密码学的发展奠定了理论基础,使密码学成为一门真正的科学,也标志着现代密码时期的开始。在此阶段,计算机技术和电子通信技术的蓬勃发展刺激和推动着密码技术的发展。快速电子计算机和现代数学方法,一方面为密码编码者提供了新的概念和工具,另一方面也为密码破译者配备了有力的分析武器,密码编码学和密码分析学既相互对立,又相互促进,出现了大量的密码算法和各种攻击方法。在密码应用方面,各种有实用价值的密码体制的快速实现受到高度重视,许多密码标准、应用软件和产品被开发和应用。

随着信息时代的到来,现代通信技术和电子商务的快速发展,使得人们的生活越来越离不开密码技术,各种密码应用系统也不断出现,随之而来的潜在问题也不断暴露。现今的密码学面临着前所未有的挑战和机遇。2.1.2 密码学基本概念

2.1.2.1 信息隐藏与密码

随着全球信息基础设施和各个国家信息基础的逐渐形成,计算机网络已经成为信息化社会发展的重要保证,网络深入国家的政府、军事、文教、企业等诸多领域,政府宏观调控、商业经济信息、银行资金转账、股票证劵、能源资源数据、科研数据等重要信息都通过网络[4]存储、传输和处理,网络信息安全的重要性显而易见。对于网络信息系统而言,通常需要达到以下几个方面的安全服务目标,具体如下。

· 真实性:对信息的来源进行判断,能对伪造来源的信息予以鉴别。

· 保密性:保证信息不会泄露给未经授权的任何人。

· 完整性:保证信息的完整和准确,防止信息被未经授权(非法)地篡改。

· 可用性:保证信息和信息系统确实能为授权者所用,防止由于人为或非人为的因素造成系统的拒绝服务。

· 可控性:对信息和信息系统实施安全监控管理,防止为非法者所用。

· 不可抵赖性:保证信息行为人不能否认自己的行为。

实现以上安全目标的两大手段分别为信息隐藏(Information Hiding)技术和密码(Cryptolo)技术。两大技术手段都致力于信息的保密,但两者的设计思想却完全不同。本书关注密码技术,在此将两者给予解释和区分。

信息隐藏主要是指将特定的信息嵌入数字化宿主信息(如文本、数字化的声音、图像、视频信号等)中。信息隐藏的目的不在于限制正常的信息存取和访问,而在于保证隐藏的信息不引起监控者的注意和重视,从而减少被攻击的可能性。传统的信息隐藏起源于古希腊的隐写术。为了安全地传送军事情报,奴隶主剃光奴隶的头发,将情报文在奴隶的头皮上,待头发长起后再派出去传送消息。另外,希腊人将波斯军队的部署与装备刻在一块刮掉蜡的刻写板上,再重新涂上蜡掩盖刻写印迹,使得希腊得以积极备战,给予波斯舰队迎头痛击。我国古代也早有以藏头诗、藏尾诗、漏格诗以及绘画等形式,将要表达的意思和密语隐藏在诗文或画卷中的特定位置,一般人只注意诗或画的表面意境,而不会注意或破解隐藏其中的密语。

密码,源于希腊语kryptós(隐藏的)和gráphein(书写),主要通过设计加密技术,使保密信息不可读。但对于非授权者来讲,虽然无法获知保密信息的具体内容,却能意识到保密信息的存在。而信息隐藏致力于通过设计精妙的方法,使得非授权者根本无从得知保密信息的存在与否。可见,密码技术和信息隐藏技术不是互相矛盾、互相竞争的技术,而是相互补充的技术,区别在于应用的场合、对算法的要求不同,但在实际应用中可互相配合。

2.1.2.2 密码学体系结构

密码学(Gryptology)是密码编码学(Cryptography)和密码分析学(Cryptanalysis)的统称。通过变换消息使其保密的科学和艺术称为密码编码学,致力于寻求有效密码算法和协议,以保证信息的机密性或认证性,主要对密码算法的构造与设计进行研究。从事此行业的人员称为密码编码者(Cryptographer)。与之相对应,密码分析学是破译密文的科学和艺术,致力于加密信息的破译或认证信息的伪造,主要是对密码信息的解析方法进行研究。从事此行业的人员称为密码分析者(Cryptanalyst)。密码编码学和密码分析学是密码学的两个方面,两者既相互对立,又互相促进和发展,就如同有宝藏的藏匿者,就有宝藏的探寻者。密码学的发展史,就是一部密码的编码者和分析者相互斗智斗勇的历史。

密码技术的一个基本功能就是实现保密通信,先从信息通信模型说起,如图2-1所示。将消息的发送者称为信源,通常以Alice代称;消息的接收者称为信宿,通常以Bob代称;用来传递信息的通道称为信道,如电信系统、Internet等。图2-1 信息通信模型

在此通信模型中,若要实现保密通信,就需要着重关注信道的安全性。然而没有绝对安全的信道,转而寻求“安全”的信息,也就是说假设信道被攻击的情况下,通信双方所传递的信息仍然无法被非法用户第三方所获知。达成这样的目标很自然就是使用加密,Alice 将要传递的消息加密后在信道中传输,第三方截获加密后信息无法解密看不到传递信息的真正含义,而Bob作为合法用户能够正确解密获知信息的内容。在此过程中,包含一个密码体制的5个组成部分,如下所述。

· 明文:通信双方传递的信息,通常用m 来表示。所有可能明文m 的集合称为明文空间,通常用M表示。

· 密文:明文经过加密后的结果,通常用c 来表示。所有可能密文c 的集合称为密文空间,通常用C来表示。

· 密钥:参与密码变换的参数,通常用k 来表示。所有可能密钥k 的集合称为密钥空间,通常用K来表示。

· 加密算法:由密钥控制从M 到C的加密变换函数,通常用E表示。

· 解密算法: 由密钥控制从C到M 的解密变换函数,通常用D表示。

五元组{M,C,K,E,D}称为一个密码系统。在密码系统中,明文m通过由密钥k控制的加密算法加密后得到密文c,而密文c通过由密钥k控制的解密算法解密后得到明文m。加密过程中使用的密钥称为加密密e钥,可进一步用k表示。解密过程中使用的密钥称为解密密钥,可进d一步用k表示。不同的密码系统所使用的加密密钥和解密密钥可相同,也可不同,在下一节密码体制分类中给出详细内容。一个有实用意义的密码系统,要求解密算法是加密算法的逆变换,即。

2.1.2.3 密码系统的攻击

在通信系统中,除了合法用户通信双方之外,还有非法用户第三方,也称为破译者,也就是前文提到的密码分析者。通过各种手段来截获或窃听信道中加密的信息,试图通过对密文的分析推断出明文或密钥。这个过程就是对密码系统的攻击,较为常见的方法有以下3种。(1)穷举攻击法

穷举攻击法又称为蛮力攻击或强力,是对截获到的密文尝试遍历所有可能的密钥,直到获得一种从密文到明文的可理解的转换;或使用不变的密钥对所有可能的明文加密,直到得到与截获到的密文一致为止。(2)统计分析法

统计分析法就是指密码分析者根据明文、密文和密钥的统计规律破译密码的方法。(3)数学分析法

数学分析法是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。数学分析攻击是对基于数学难题的各种密码算法的主要威胁。

另外,根据密码分析者所掌握的明文、密文等信息,对密码系统的攻击还可分为以下几类。(1)唯密文(Ciphertext Only)攻击

对于这种形式的密码分析,破译者已知的东西只有两样:加密算法、待破译的密文。(2)已知明文(Known Plaintext)攻击

在已知明文攻击中,破译者已知的东西包括:加密算法和经密钥加密形成的一个或多个明文——密文对,即知道一定数量的密文和对应的明文。(3)选择明文(Chosen Plaintext)攻击

选择明文攻击的破译者除了知道加密算法外,还可以选定明文消息,并可以知道对应的加密得到的密文,即知道选择的明文和对应的密文。例如,公钥密码体制中,攻击者可以利用公钥加密其任意选定的明文,这种攻击就是选择明文攻击。(4)选择密文(Chosen Ciphertext)攻击

与选择明文攻击相对应,破译者除了知道加密算法外,还包括自己选定的密文和对应的、已解密的原文,即知道选择的密文和对应的明文。(5)选择文本(Chosen Text)攻击

选择文本攻击是选择明文攻击与选择密文攻击的结合。破译者已知的东西包括:加密算法、由密码破译者选择的明文消息和它对应的密文以及由密码破译者选择的猜测性密文和它对应的已破译的明文。

很明显,唯密文攻击是最困难的,因为分析者可供利用的信息最少。上述 5种攻击的强度是递增的。

2.1.2.4 密码系统的安全性

密码系统的安全性需要考虑两个方面:一个方面是指密码系统所采用的密码算法的安全性,这是密码系统安全的技术保证;另一个方面是指密码算法之外的不安全因素,包括系统管理或者物理条件方面的漏洞。本书仅讨论密码算法本身的安全性。

讲解密码算法的安全性,不得不提到密码学领域中所遵循的公开设计原则,也就是著名的柯克霍夫原则(Kerckhoff’s Principle)。它是荷兰密码学家 Auguste Kerckhoff于1883年在其名著《军事密码学》中提出的密码学的基本假设:密码系统中的算法为密码分析者所知,也难以从截获的密文中推导出明文或密钥。也就是说,密码系统的安全性仅应依赖于密钥的保密,而不应依赖于算法的保密。一句话可总结为:“一切秘密寓于密钥之中”。因此,对于实际应用中的密码系统而言,评估其安全性有个默认的前提,其算法已被密码分析者所获知。

密码系统安全性评估方法主要有以下3种方法。(1)无条件安全性

这种评价方法考虑的是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统。(2)计算安全性

这种方法是指使用目前最好的方法攻破它所需要的计算远远超出攻击者的计算资源水平,则可以定义这个密码体制是安全的。(3)可证明安全性

这种方法是将密码系统的安全性归结为某个经过深入研究的数学难题。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。

在理论上,只有一次一密系统能够实现无条件安全性,其他系统都无法抵抗穷举攻击法,只能提供计算安全性。因此,对于实际应用中的密码系统被认为是安全的,只要满足以下准则之一即可:

· 破译该密码的成本超过被加密信息本身的价值;

· 破译该密码的时间超过被加密信息有用的生命周期。2.1.3 密码体制的分类

密码体制的分类方法有很多,主要有以下3类。(1)根据使用的密钥数量

· 对称密码体制:通信双方所使用的加密密钥和解密密钥是相同的,也称为单密钥密码体制。

· 非对称密码体制:通信双方使用的加密密钥和解密密钥是不同的,也称为双密钥密码体制。两密钥中一个由用户自己秘密保存,称为私有密钥,简称私钥;另一个可以公开,称为公开密钥,简称公钥。因此,该密码体制也称为公钥密码体制。(2)根据明文信息处理方式

· 分组密码体制:对明文进行分组,一次处理一个明文分组,对每个输入分组得到一个密文分组输出。

· 序列密码体制:也称流密码体制,连续处理输入元素,一次产生一个元素的输出,即一次加密一个比特或一个字符。(3)根据加密算法的可逆性

· 单向函数密码体制:加密算法不可逆。该密码体制只适用于某种特殊的、不需要解密的应用场合,如用户口令的存储和消息鉴别码的生成等。

· 双向函数密码体制:加密算法可逆。绝大多数密码算法都属于此类,加密算法可逆,接收者才能看到传递信息的内容。

另外,密码体制的分类还有其他方式,如根据明文变换到密文的方式,可分为置换密码和替代密码等。在此不再详述。2.2古典密码

古典密码是密码学发展中的一个重要阶段,也正是有了古典密码悠长的历史积淀,才有了今天密码学更加精细的分工。古典密码通常采用手工操作,所用的工具也就是纸和笔,大部分加密方式都很简单,主要就是置换和替代两种。2.2.1 置换密码

置换密码又称为换位密码,这种密码通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变。类似于洗扑克牌的操作,只是将明文中各字符的位置次序重新排列便实现了明文的加密。本节首先给出几个有趣的置换密码实例,而后介绍置换密码所涉及的数学知识,最后讲解周期置换密码和列置换密码算法。

2.2.1.1 置换密码的实例(1)天书密码

公元前405年,雅典和斯巴达之间的伯罗奔尼撒战争已接近尾声。伯罗奔尼撒战争是以雅典为首的提洛同盟与以斯巴达为首的伯罗奔尼撒联盟之间的一场战争。这场战争从公元前431年一直持续到公元前404年,其间双方曾几度停战,最终斯巴达获得胜利。这场战争结束了雅典的经典时代,也结束了古希腊的民主时代,强烈地改变了古希腊整个国家。几乎所有古希腊的城邦都参加了这场战争,其战场几乎涉及当时整个希腊语世界。在现代研究中也有人称这场战争为“古代世界大战”。

当斯巴达军队逐渐占据优势地位时,准备对雅典发动最后一击。原来站在斯巴达一边的波斯帝国突然改变态度,停止了对斯巴达的援助,意图使雅典和斯巴达在持续的战争中两败俱伤,以便从中渔利。此时,斯巴达军队俘获了一名从波斯帝国回雅典送信的雅典信使,仔细搜查后只有一条布满杂乱无章的希腊字母的普通腰带,其他别无所获。斯巴达军队统帅莱桑德把腰带上的字母用各种方法重新排列组合,怎么也解不出来。最后,当他无意中把腰带呈螺旋形缠绕在手中的剑鞘上时,奇迹出现了。原来腰带上杂乱无章的字母,竟组成了一段文字。图2-2为天书密码的示例,按行查看,即得“Scytale is a cipher”。图2-2 Scytale示例

斯巴达军队根据这份情报马上改变了作战计划,先以迅雷不及掩耳之势攻击毫无防备的波斯军队,并一举将它击溃,解除了后顾之忧。随后,斯巴达军队回师征伐雅典,取得了战争的最后胜利。(2)栅栏密码

栅栏密码即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。

例如密文为:IOEOBTODNKOTALVYUUYUOTNWHT

解密过程先将密文分成两行,如下所示:I O E O B T O D N K O T AL V Y U U Y U O T N W H T

纵向读取,可得明文:I LOVE YOU BUT YOU DON’T KNOW THAT

以上是栅栏密码最简单的例子,还可进行延伸,见下例。

密文为:锄汗谁粒禾滴知粒日禾盘皆当下中辛午土餐苦

若已知密钥为5,即将密文平均分为5行,可得:锄汗谁粒禾滴知粒日禾盘皆当下中辛午土餐苦

纵向读取,可得明文:锄禾日当午汗滴禾下土谁知盘中餐粒粒皆辛苦

天书密码和栅栏密码都归属于置换密码,能够很明显地看到两种密码都只是更换了明文中字符的次序,对于明文字符的形式并没有更换,这是置换密码的实质,也是与后续替代密码的不同之处。

2.2.1.2 置换密码的数学基础(1)置换

设S是1到n自然数的集合,即,映射σ为S→S的可逆映射,则称σ为S上的置换。给出一个置换的例子来解释置换的含义,如:

该置换是n=5时S={1,2,3,4,5}上的可逆变换,纵向看即:−1

则该置换的逆置换σ应将上述变换反推回去,即:−1

按照置换的写法,则σ为:

逆置换的求解是置换密码解密过程的关键,在后续的讲解中会看到逆置换是置换密码的解密密钥。由于逆置换可通过置换求解得到,因此置换密码也归属于对称密码体制,也是前文提到的对称密码体制中加密密钥和解密密钥不同,但可互相推导得到的特殊情况。(2)群nn

全体S上的置换所形成的集合记为 S,令I表示恒等置换,在 Sn中以σ(i)表示在置换σ下的像,定义S中两元素σ和η的乘积为:nn

则(S,⋅,I)为群,群S称为n次对称群。对于群的概念在下面给出详细说明。

设三元组(G,⋅,1)中G为集合,⋅为集合G上的二元运算, 1为G中的一个元素,若(G,⋅,1)满足:

· 结合律,即;

· 单位元,即1⋅a=a⋅1=a,∀a∈G;

· 逆元,即对∀a∈G,都存在a'∈G使得a⋅a'=a'⋅a=1。

则称(G,⋅,1)为群,简称群G,1称为群G的单位元,a'称为a的逆−1元,也记作a。

若群(G,⋅,1)还满足交换律,则称群G为交换群。

在古典密码中,集合常被当作明文空间或密文空间,甚至密钥空间,该集合在整数加法运算下为交换群,26即为交换群(其中⊕为模26加,即除以26取余数,简写为“+”),在此给出证明。26

任取Z中的3个元素a、b、c,可知其满足:

· 结合律,即;

· 单位元,即对于整数0,都有0+a=a+0=a;26

· 逆元,即对于整数a,元素a⋅b=b⋅a,∀a,b∈G,a'=26−a∈Z使得a+a'=0;

· 交换律,即a+b=b+a。26

因此(Z,+,0)为交换群。置换密码中明文空间、密文空间和密钥2626空间通常都是Z,所用运算就是群(Z,+,0)中的“+”运算。

2.2.1.3 周期置换密码

设n为固定的正整数,明文空间M和密文空间C为任意的字符串,n密钥空间K∈S,即密钥空间为集合上的所有置换,设,,σ∈K,置换密码加密变换为:

解密变换为:−1

其中,σ为σ的逆置换。

周期置换密码中的周期即置换所在的集合S的元素个数n,这里的周期实质上是分组的概念。在加密过程中,明文首先以n为单位进行分组,每组按照上述置换密码的加密方式进行变换得到密文;同理,密文进行解密时,同样以n为单位进行分组,每组按照上述置换密码的解密方式进行解密。具体过程可通过下面的例子进行了解。

例:给定明文为cryptography,试用密钥的置换密码对其进行加密,再对密文进行解密。

· 加密过程:通过密钥σ可知密钥长度为6,因此按照周期长度6对明文进行分组,对每组明文按照密钥σ进行变换。

明文分为两组:crypto和graphy。加密过程为:。

· 解密过程:要进行解密变换,首先要求解密钥σ的逆置换:

解密过程为:。

2.2.1.4 列置换密码

列置换密码可看作周期置换密码的一般形式,也看作周期置换密码的升级。周期置换密码中置换是对每个明文字符调换位置,而列置换密码调换的是每一列明文所在列的次序。

列置换密码首先要将明文按照行填写到一个列宽固定(设为m)的矩阵中,加密时按置换σ交换列的位置次序,再按列读出即得到密文。解密时将密文按列填写到一个行数固定(也为m)的矩阵中,按-1置换σ的逆置换σ交换列的位置次序,然后按行读出即得到明文。具体过程可通过下面的例子了解。

例:已知密文为hsetteneruayvedswseeeebutrehlfatfirhirelidlodeeligvbebnuhtlthmoriarofr,密钥,试对上述密文解密。

求解过程如下:

① 密钥为长度为7的置换,可知该矩阵列数为7,共70个字母,则知该矩阵行数为10。

② 将密文的每10 个字母为一列排成矩阵,如下所示:-1

③ 求解σ的逆置换σ为:-1

④ 按照σ交换矩阵的列,结果如下:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载