物联网信息安全 课件 第2章 1数据加密技术_第1页
物联网信息安全 课件 第2章 1数据加密技术_第2页
物联网信息安全 课件 第2章 1数据加密技术_第3页
物联网信息安全 课件 第2章 1数据加密技术_第4页
物联网信息安全 课件 第2章 1数据加密技术_第5页
已阅读5页,还剩163页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息安全技术信息安全技术信息安全技术第二章信息保密技术2024/7/3密码学作为信息安全理论与技术的基石,在信息安全领域发挥着中流砥柱的作用。密码学理论的应用,成为现代信息网络得以生存和不断发展的基本前提。Cryptography=crypto+graphy

密码

隐藏或秘密写

一般来讲,人们通常认为密码学是一种将信息表述为不可读内容的方式(加密),并且可以采用一种秘密方法将信息恢复出来(解密)。密码学的起源和发展2.1信息安全与密码技术2024/7/3自人类社会出现战争便产生了密码JuliusCaesar发明了凯撒密码二战时德国使用Enigma机器加密美国军事部门使用纳瓦霍语(Navaho)通信员密码由军事走向生活电子邮件自动提款机电话卡密码学的起源和发展2024/7/3Copyright5密码学的起源和发展密码学发展阶段1949年之前

密码学是一门艺术——古典密码学1949~1975年

密码学成为科学——现代密码学1976年以后密码学的新方向——公钥密码学密码学起源密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为解密变换。17世纪,英国著名的哲学家弗朗西斯·培根在他所著的《学问的发展》一书中最早给密码下了定义,他说,“所谓密码应具备三个必要的条件,即易于翻译、第三者无法理解、在一定场合下不易引人生疑。”

加密解密明文密文原始明文密码学起源谋成于密,败于泄

——明揭暄《兵经百言》古典密码学包含两个互相对立的分支,即密码编码学(Cryptography)和密码分析学(Cryptanalytics)。前者编制密码以保护秘密信息,而后者则研究加密消息的破译以获取信息。二者相反相成,共处于密码学的统一体中。现代密码学除了包括密码编码学和密码分析学外,还包括安全管理、安全协议设计、散列函数等内容。大约在4000年以前,在古埃及的尼罗河畔,一位擅长书写者在贵族的基碑上书写铭文时有意用加以变形的象形文字而不是普通的象形文字来写铭文,从而揭开了有文字记载的密码史。这篇颇具神秘感的碑文,已具备了密码的基本特征:把一种符号(明文)用另一种符号(密文)代替。Phaistos圆盘,一种直径约为160mm的Cretan-Mnoan粘土圆盘,始于公元前17世纪。表面有明显字间空格的字母,至今还没有破解。密码学起源1000BC:姜子牙阴阳符500-600BC:天书100-44BC:Caesarciphertheromansarecomingtoday密码学起源公元前5世纪,古斯巴达人使用了一种叫做“天书”的器械,这是人类历史上最早使用的密码器械。“天书”是一根用草纸条、皮条或羊皮纸条紧紧缠绕的木棍。密信自上而下写在羊皮纸条上。然后把羊皮纸条解开送出。把羊皮纸条重新缠在一根直径和原木棍相同的木棍上,这样字就一圈圈跳出来。公元前1世纪古罗马凯撒大帝时代曾使用过一种“代替式密码”,在这种密码中,每个字母都由其后的第三个字母(按字母顺序)所代替,即凯撒密码。这种代替式密码直到第二次大战时还被日本海军使用。公元前4世纪前后,希腊著名作家艾奈阿斯在其著作《城市防卫论》中就曾提到一种被称为“艾奈阿斯绳结”的密码。它的作法是从绳子的一端开始,每隔一段距离打一个绳结,而绳结之间距离不等,不同的距离表达不同的字母。密码学起源在古代还出现过一种被称为“叠痕法”的密码,使用时先把信纸折叠几下(上下及左右),然后铺平信纸,将传递的信息按顺序一个个分开,写在折痕的交叉点上,每一个交叉点写一个字。然后再在空白位置上填上公开的普通信文,普通信文与秘密信文的文字通顺地连贯在一起。为了防止被敌人察觉,使用这种密码需要在编公开信文上下些功夫。如果在秘密信文上再用些暗语式密码,那么敌人就更难看出破绽了。宋曾公亮、丁度等编撰《武经总要》“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密码本体制的特点。暗号。简单地说,暗号就是通过用物件的状态或人的行为来传达事先约定的信息.如窗台上的花瓶、手中拿着的报纸、口中昨着的曲子,可分别代表“现在安全”、“我是你要找的人”、“我在找自己人”等明确的信息.隐语。暗号是把信息变换为物件或动作,隐语则是把信息变换成与此信息完全无关的(但有意义的)语言.据说,1941年,日本偷袭珍珠港前两星期,美国情报人员曾截获一次重要的电话对话.那是两名分别在东京和华盛顿的日本高级官员之间的通话.这段对话里“小孩出生”的真正意思是“发动战争”.在华盛顿的日本人:是不是真的有个小孩要出生了?在东京的日本人:是的.而且看来马上就要出生了.在华盛顿的日本人:这个小孩真的要生了吗?是在哪个方向呢?密码学起源隐语。暗号是把信息变换为物件或动作,隐语则是把信息变换成与此信息完全无关的(但有意义的)语言.据说,1941年,日本偷袭珍珠港前两星期,美国情报人员曾截获一次重要的电话对话.那是两名分别在东京和华盛顿的日本高级官员之间的通话.这段对话里“小孩出生”的真正意思是“发动战争”.在华盛顿的日本人:是不是真的有个小孩要出生了?在东京的日本人:是的.而且看来马上就要出生了.在华盛顿的日本人:这个小孩真的要生了吗?是在哪个方向呢?【暗语笑话】有个女的翻看老公手机,发现有条老公发给她闺蜜的短信,很平淡也很正常:“近来股市向好,建议持仓,002291,

000524

,002467,

002582”。平时也炒股的老婆,好奇便查了一下股票的名称。居然是:“星期六”,“东方宾馆”,“二六三”,“好想你”!尼玛,这日子没法过了!防火防盗!还得懂股票!密码学起源16世纪意大利数学家卡尔达诺发明的一种保密通信方法,史称“卡尔达诺漏格板”.漏格板是一张用硬质材料(如硬纸、羊皮、金属等)做成的板,上面挖了一些长方形的孔,即漏格.密码学起源密码学起源传说,古时候有一对夫妻,男的名叫李石匠,女的叫张小花。李石匠靠手艺赚钱,张小花在家纺纱织布。一年,李石匠参加修建石桥,因工程紧张,十一个月也没回家一次。张小花独自在家只有纺车做伴。一天石匠工地回来一个工友路过她家,她托这个工友给丈夫带去一封书信。第六十回

吴用智赚玉麒麟梁山泊义军头领宋江久慕卢俊义的威名,一心想招取卢俊义上山坐第一把交椅,共图大业,替天行道。智多星吴用扮成一个算命先生,利用卢俊义正为躲避“血光之灾”的惶恐心里,口占四句卦歌,并让他端书在家宅的墙壁上。这四句诗写出后,被官府拿到了证据,大兴问罪之师,到处捉拿卢俊义,终于把他逼上梁山。卢花滩上有扁舟,俊杰黄昏独自游。义到尽头原是命,反躬逃难必无忧。密码学起源不识字老婆给老公写的信,老公竟立马回家了!你看懂了吗?你能破解李石匠和张小花的密文吗?近代密码时期

近代密码时期是指二十世纪初到二十世纪50年代左右。

从1919年以后的几十年中,密码研究人员设计出了各种各样采用机电技术的转轮密码机(简称转轮机,Rotor)来取代手工编码加密方法,实现保密通信的自动编解码。随着转轮机的出现,使得几千年以来主要通过手工作业实现加密/解密的密码技术有了很大进展。图1.4(a)ENIGMA密码机图1.4(b)TYPEX密码机

近代密码时期可以看作是科学密码学的前夜,这阶段的密码技术可以说是一种艺术,是一种技巧和经验的综合体,但还不是一种科学,密码专家常常是凭直觉和信念来进行密码设计和分析,而不是推理和证明。现代密码时期

1949年香农(ClaudeShannon)的奠基性论文“保密系统的通信理论”(CommunicationTheoryofSecrecySystem)在《贝尔系统技术杂志》上发表,首次将信息论引入密码技术的研究,用统计的观点对信源、密码源、密文进行数学描述和定量分析,引入了不确定性、多余度、唯一解距离等安全性测度概念和计算方法,为现代密码学研究与发展奠定了坚实的理论基础,把已有数千年历史的密码技术推向了科学的轨道,使密码学(Cryptology)成为一门真正的科学。从1949年到1967年,密码学文献近乎空白。1967年,戴维·卡恩(DavidKahn)出版了一本专著《破译者》(TheCodeBreaker)1977年,美国国家标准局NBS(现NIST)正式公布实施美国的数据加密标准DES1976年11月,美国斯坦福大学的著名密码学家迪菲(W.Diffie)和赫尔曼(M.Hellman)发表了“密码学新方向”(NewDirectioninCryptography)一文,首次提出了公钥密码体制的概念和设计思想,开辟了公开密钥密码学的新领域,掀起了公钥密码研究的序幕。现代密码时期(续)1997年4月美国国家标准和技术研究所(NIST)发起征集高级数据加密标准(AES,AdvancedEncryptionStandard)算法的活动。2000年10月,比利时密码学家JoanDaemen和VincentRijmen提出的“Rijndael数据加密算法”被确定为AES算法,作为新一代数据加密标准。二十世纪末的AES算法征集活动使密码学界又掀起了一次分组密码研究的高潮。同时,在公钥密码领域,椭圆曲线密码体制由于其安全性高、计算速度快等优点引起了人们的普遍关注和研究,并在公钥密码技术中取得重大进展。在密码应用方面,各种有实用价值的密码体制的快速实现受到高度重视,许多密码标准、应用软件和产品被开发和应用,美国、德国、日本和我国等许多国家已经颁布了数字签名法,使数字签名在电子商务和电子政务等领域得到了法律的认可,推动了密码学研究和应用的发展。

新的密码技术不断涌现。例如,混沌密码、量子密码、DNA密码等等。这些新的密码技术正在逐步地走向实用化。

人们甚至预测,当量子计算机成为现实时,经典密码体制将无安全可言,而量子密码可能是未来光通信时代保障网络通信安全的可靠技术。

密码学的发展第一个阶段:1949年以前古典加密计算机技术出现以前密码学作为一种技艺,而不是一门科学第二个阶段:1949年到1976年标志:Shannon发表”CommunicationTheoryofSecrecySystem”密码学进入了科学的轨道主要技术:单密钥的对称密钥加密算法第三个阶段:1976年以后标志:Diffie,Hellman发表”NewDircetionsinCryptography”一种新的密码体制:公开密钥体制2024/7/3Copyright20

现代密码学(1949~)

计算机使得基于复杂计算的密码成为可能,技术发展:

1949年Shannon的“TheCommunicationTheoryofSecretSystems”

1967年DavidKahn的《TheCodebreakers》1971-1973年IBMWatson实验室的HorstFeistel等

几篇技术报告

主要特点:数据的安全基于密钥而不是算法的保密。加密运算是基于二进制bit的计算机运算。

数据加密算法:DES,AES

,IDEA,RC5等1976年:Diffie&Hellman的

“NewDirections

inCryptography”

提出了不对称密钥;1977年Rivest,Shamir&Adleman提出了RSA公钥算法90年代逐步出现椭圆曲线等其他公钥算法主要特点:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能密码学基础security密码学是一门与数学密切相关的科学(统计学、数论、概率论和代数)密码技术涉及密码设计、密码分析等内容。密码设计的目的是保证信息的机密性,基本手段是将信息加以伪装,使其在存储和传输过程中不会泄密。加密技术分为常规加密技术和公钥加密技术。本章在给出常规加密模型的基础上,对常规加密的经典技术和现代技术进行讨论。密码系统的概念密码系统经历了手工阶段、机械阶段、电子阶段并进入了计算机阶段。密码学是研究如何通过编码来保证信息的机密性和如何对密码进行破译的科学。密码学由密码编码学和密码分析学两部分所构成。一个密码系统通常可以完成信息的加密变换和解密变换。加密变换是采用一种算法将原信息变为一种不可理解的形式,从而起到保密的作用。解密变换是加密变换相反的过程,利用与加密变换算法相关的算法将不可理解的信息还原为原信息。明文(plaintext);密文(ciphertext);加密算法;解密算法。加密算法和解密算法是相关的,而且解密算法是加密算法的逆过程。加密解密算法:特点是相对稳定,公开。密钥(key):必须在加密和解密时引入两个相同或两个不同但相关的参数。该参数被称为密钥(加密时使用的密钥为加密密钥;解密时使用的密钥为解密密钥)。密钥经常改变。密钥直接关系到被加密信息的安全性。明文、密文、加密算法、解密算法、加密密钥和解密密钥构成了一个密码系统的基本元素。因此,一个密码系统CS可以用一个六元组来描述:CS=(P,C,E,D,Ke,Kd)对于一个给定的明文p和密钥ke,若有c=E(p,ke),则p=D(c,kd)。若用E-1表示E的逆函数,用D-1表示D的逆函数,则有D=E-1且E=D-1威胁密码系统安全的是攻击者。攻击者首先通过监听等手段截获密文。然后试图通过对密文的分析来得到明文。由于通常加密解密算法是对外公开的,攻击者往往对密钥更感兴趣。一旦攻击者获得密钥,他就可以在系统更新密钥之前,利用该密钥解密一系列的密文。Return密码体制密码体制通常指加密/解密过程中采用的方法的种类。1.按照加密解密过程中使用的加密密钥和解密密钥是否相同将密码体制分为对称密码体制和非对称密码体制。对称密码体制又称为常规密钥密码体制、单密钥密码体制、秘密密钥密码体制。对称密码体制的加密算法和解密算法使用相同的密钥,该密钥必须对外保密。

特点:加密效率较高,但密钥的分配难以满足开放式系统的需求。非对称密码体制又称为公开密钥密码体制、双密钥密码体制。非对称密码体制的加密算法和解密算法使用不同但相关的一对密钥,加密密钥对外公开,解密密钥对外保密,而且由加密密钥推导出解密密钥在计算上是不可行的。

特点:密钥分配较方便,能够用于鉴别和数字签名,能较好地满足开放式系统的需求,但由于非对称密码体制一般采用较复杂的数学方法进行加密解密,因此,算法的开销比较大,不适合进行大量数据的加密处理。2.根据密文数据段是否与明文数据段在整个明文中的位置有关,可以将密码体制分为分组密码体制和序列密码体制。分组密码体制的密文仅与加密算法和密钥有关,而与被加密的明文分组在整个明文中的位置无关。分组密码将固定长度的明文分组加密为相同长度的密文分组。分组密码的分组大小一般为64比特,但有增加到128比特的趋势。相同的明文分组在相同的密钥作用下将产生相同的密文分组。序列密码体制的密文不仅与给定的加密算法和密钥有关,而且与当前正被加密的明文部分在整个明文中的位置有关。序列密码体制每次对较小的明文单位进行处理,通常以比特(或字节)为加密单位。加密时以流的形式进行处理,将明文流与密钥流结合,形成密文流。密钥流是与明文流等长的伪随机序列,加密后的密文流也是伪随机序列。序列密码最吸引人的地方是它的一次一密特性。分组密码的某些操作模式可以被转换为密钥流产生器,从而将分组密码用于序列密码。序列密码3.根据加密变换是否可逆,可以将密码体制分为单向函数密码体制和双向变换密码体制。单向函数可以将明文加密成密文,但却不能将密文转换为明文(或在计算上不可行)。单向函数用于不需要解密的场合。单向函数的目的不在于加密,单向函数主要用于密钥管理和鉴别。通常的加密解密都属于双向变换密码体制。4.根据在加密过程中是否引入客观随机因素,可以将加密体制分为确定型密码体制和概率密码体制。确定型密码体制是指:一旦明文和密钥确定后,也就确定了惟一的密文。若对于给定的明文和密钥,总存在着一个较大的密文集合与之对应,最终的密文根据客观随机因素在密文集中随机选取,则称这种密码体制为概率密码体制。Return常规加密模型

常规加密是出现最早而且当前仍在广泛使用的加密体制。在使用常规加密的通信系统中,安全通信的双方共享同一个密钥K。加密和解密算法公开,密钥保密。常规加密的密钥通常称为秘密密钥(secretkey)。由于加密密钥和解密密钥相同,此时的密码系统CS可以表示为:CS=(P,C,E,D,K)

对于一个给定的明文p和密钥k,若有c=E(p,k),则p=D(c,k),可简记为c=Ek(p)和p=Dk(c)。常规加密模型常规加密模型1、密码编码系统常规密码体制的安全性取决于加密算法和密钥。算法的强度必须足够高密钥的长度必须足够长;密钥更新的频度必须足够高算法的强度通常采用两种方法保证:扩散(diffusion)和扰乱(confusion)。ClaudeShannon早在1949年发表的“秘密系统的通信理论”一文中就提出了扩散和扰乱的概念。后来扩散和扰乱被用来作为常规密码系统的两个基本组成模块。扩散和扰乱已成为现代分组密码设计的基础。扩散和扰乱主要用于对付基于统计分析的密码破译。扩散的基本方法是让明文和密钥的每个字母影响尽可能多的密文字母的取值(等价于每个密文字母被尽可能多的明文和密钥字母影响),从而使得明文和密钥的统计特征被扩散,明文和密钥中原有的统计特征不再反映在密文中。扰乱机制是使密文的统计特征与明文和加密密钥的关系尽可能复杂化,使得攻击者即使掌握了密文的某些统计特征,也很难从中推测出密钥和明文。扩散是使每个密文字母与尽可能多的明文和密钥字母相关,扰乱是使这种相关的等价数学函数足够复杂。

2、密码分析密码分析:试图由密文获得明文、密钥或这两者的过程。常见的密码分析方法:强行攻击、基于统计的分析、差分密码分析。强行攻击是利用每个可能的密钥进行测试,直到找到可以解密的密钥。强行攻击只适合于密钥空间不太大的场合。基于统计的分析是利用明文、密钥和密文的统计特征破译出明文或密钥。差分密码分析使用循环过程来分析密码。从具有给定差异的两个报文开始,跟踪每次循环后的差值模式,以便产生可能的密文差值模式。通常密码攻击者可能获得的信息有:

加密/解密算法(A)

待破译的密文(B)

由密钥形成的一个或多个明文-密文对(C)

由密码破译者选择的明文消息,连同它对应的由其密钥生成的密文(D)

由密码破译者选择的猜测性的密文,连同它对应的由密钥生成的已破译的明文(E)根据攻击者所获得的信息量,密码分析攻击的类型如下:密码攻击类型密码攻击者所知道的信息仅有密文攻击A+B已知明文攻击A+B+C选择明文攻击A+B+D选择密文攻击A+B+E选择文本攻击A+B+D+E▲算法安全性问题:如果一个算法无法抵御仅有密文攻击,则该算法就不是一个好的算法。加密算法应能够抵御已知明文的攻击。如果攻击者无论拥有多少由某一算法所产生的密文,都无法由这些密文中所包含的信息惟一地决定对应的明文,则称此算法是无条件安全的。无条件安全的加密算法通常是不存在的。人们要求算法应保证在计算上是安全的。如果一个加密算法能够满足下列条件中的一个或两个,则称此算法在计算上是安全的:

1)破译该密码的成本超过被加密信息的价值。

2)破译该密码的所需的时间超过该信息的有效生命周期。

Return经典加密技术本章提示2.1古典密码2.2分组加密技术2.3公钥加密技术2.4流密码技术2.5信息隐藏技术2.1古典密码代换密码单表代换密码移位密码替换密码仿射密码多表代换密码Vigenère(维吉尼亚)密码置换密码代换密码令Θ表示明文字母表,内有q个“字母”或“字符”,可以将Θ抽象地表示为一个整数集在加密时通常将明文消息划分成长为L的消息单元,称为明文组,以m表示,如m也称作L-报文,它可以看作是定义在上的随机变量L=1为单字母报(1-gram),L=2为双字母报(digrams),L=3为三字母报(trigrams)。这时明文空间为。代换密码(续)令ξ表示q个“字母”或“字符”的密文字母表,抽象地可用整数集表示密文单元或组为c是定义在上的随机变量。密文空间一般地,明文和密文由同一字母表构成,即Θ=ξ单表代换密码单表代换密码是对明文的所有字母都用一个固定的明文字母表到密文字母表的映射,即。令明文,则相应地密文为几类常见的单表代换密码移位密码替换密码仿射密码单表代换密码不能非常有效地抵抗密码攻击,因为语言的特征仍能从密文中提取出来移位密码由于英文字符有26个字母,可以建立英文字母和模26的剩余之间的对应关系:ABCDEFGHIJKLMN012345678910111213OPQRSTUVWXYZ141516171819202122232425移位密码(续)对于英文文本,则明文、密文空间都可定义为(很容易推广到n个字母的情况)。容易看出移位满足我们密码系统的定义,即。设定义

,且。

凯撒密码历史上最著名的移位密码就是凯撒密码。凯撒密码(Caesarcipher)(1)原理(明密对照表)

明文:abcdefghIjklmnopqrstuvwxyz

密文:DEFGHIJKLMNOPQRSTUVWXYZABC(2)算法描述(数学描述)

假设明文字母用P表示,密文字母用C表示,密钥用K表示,加密变换用E表示,解密变换用D表示,并设a=0,b=1,c=2,d=3,…x=23,y=24,z=25,则有:

C=Ek(p)=(p+3)mod(26) p=Dk(C)=(C-3)mod(26)----C不够减时可向前借位

凯撒密码是最早使用的替代密码。凯撒密码将字母表视为一个循环的表,把明文中的字母用表中该字母后面第3个字母进行替代。凯撒密码的明文字母和密文字母的对应关系如下:

明文:MEETMEAFTERTHETOGAPARTY

密文:PHHWPHDIWHUWKHWRJDSDUWB

若让每个字母对应一个数值(a=0,b=1,…,z=25),则该算法表示的明文字母p和密文字母c可以表示为:c=E(p)=(p+3)mod(26)将上述算法一般化,密文字母与明文字母的偏移可以是任意值k,则算法可以表示为:c=E(p)=(p+k)mod(26)

k就是加密算法的密钥,可以在1到25之间取值。解密算法可以表示为:p=D(c)=(c-k)mod(26)由于k的取值范围的限制,凯撒密码的密钥空间很小,难以抵御强行攻击密码分析。攻击者最多尝试25次,就一定能够破译密码。

网络安全51移位密码破解

【例1】移位密码加密的密文C=ytgjtwstyytgj,ymfynxymjvzjxynts,求明文P。钥未知,k=?解:∵密钥未知。∴使用暴力破解方法(穷举法)破解密文。依次查找

k=1、2、……、25、26时对应字符替代表得出对应明文。

key=1,

p=xsfisvrsxxsfi,xlexmwxliuyiwxmsr;

key=2,

p=wrehruqrwwreh,wkdwlvwkhtxhvwlrq;key=3,

p=vqdgqtpqvvqdg,vjcvkpubvjgswguvkqp;

key=4,

p=upcfpsopuupcf,uibujtuifrvftujpor;

key=5,

p=tobeornottobe,thatisthequestion;

key=6,

p=snadnqmnssnad,sgzshrsgdptdrshnm;key=7,

p=rmzcmplmrrmzc,rfyrgqrfcoscqrgml;

key=8,

p=qlybloklqqlyb,qexqfpqebnrbpqflk;

key=9,

p=pkxaknjkppkxa,pdwpeopdamqaopekj;

key=10,

p=ojwzjmijoojwz,ocvodnoczlpznodji;

key=11,

p=nivyilhinnivy,nbuncmnbykoymncih;

key=12,

p=mhuxhkghmmhux,matm

blmax

jnxlmbhg;

key=13,

p=lgtwgjfgllgtw,lzslaklzwimwklagf;

key=14,

p=kfsvfiefkkfsv,kyrkzjkyvhlvjkzfe;

key=15,

p=jeruehdejjeru,jxqjyijxugkuijyed;

key=16,

p=idqtdgcdiidqt,iwpixhiwtfjthixdc;

key=17,

p=hcpscfbchhcps,hvohwghvseisghwcb;

key=18,

p=gborbeabggbor,gungvfgurdhrfgvba;移位密码破解

key=19,p3=fanqadzaffanq,ftmfueftqcgqefuaz;key=20,p3=ezmpzcyzeezmp,esletdespbfpdetzy;

key=21,p3=dyloybxyddylo,drkdscdroaeocdsyx;key=22,p3=cxknxawxccxkn,cqjcrbcqnzdnbcrxw;key=23,p3=bwjmwzvwbbwjm,bpibqabpmycmabqwv;

key=24,p3=avilvyuvaavil,aohapzaolxblzapvu;

key=25,p3=zuhkuxtuzzuhk,zngzoyznkwakyzout;

key=26,p3=ytgjtwstyytgj,ymfynxymjvzjxynts;移位密码破解网络安全54

比较以上答案发现:(1)Q:如何确定正确答案?A:key=5时,p=tobeornottobe,thatisthequestion,每个字符串都有确切含义(都是单词),p具有确定的含义,所以为正确答案。(2)Q:如何结束循环?A:key=25时,p=c,完成了一轮循环,结果开始重复,暴力破解结束。(3)Q:最坏情况下,循环需要进行多少次?A:26种p中任一位置的字符(如第一个字符)会规律性遍历26个字母。25次。移位密码破解2)单字母替代密码

为了加大凯撒密码的密钥空间,可以采用单字母替代密码。单字母替代密码是将密文字母的顺序打乱后与明文字母对应。

此时的密钥空间大小为26!,约为4×1026。即使每微秒试一个密钥,也需要花费约1013年才能穷举所有的密钥。因此,强行攻击法不太适合。这时可以利用自然语言的统计特性进行攻击。英语中e是使用频率最高的字母,接下去是t,r,n,i,…。只要密文足够长,这种统计规律就会反映出来。另外,还可以利用双字母的频率(th,in,er,re,…)和三字母的频率(the,and,ion,…)。猜测可能的单词或短语也有助于破译的进行。

在计算机中,a=97,b=98,c=99,d=100,…x=120,y=121,z=122,则:

明密对照表如下:

明文:97,98,99,100,…,120,121,122

密文:100,101,102,103,…,97,98,99

加/解密算法描述如下:

C=Ek(p)=[(p-97)+3]mod(26)+97

p=Dk(C)=[(C-97)-3]mod(26)+97----若[(C-97-3)]<0时,C可借位(1)求明文字母a的密文字母的过程如下:

C=[(a-97)+3]mod(26)+97=3+97=100(d)

(2)求明文字母z的密文字母的过程如下:

C=[(z-97)+3]mod(26)+97=28mod(26)+97=2+97=99(c)

(3)求密文字母C的明文字母的过程如下:

p=[(99-97)-3]mod(26)+97=[(2-3)+26]mod(26)+97=25+97=122(z)

(4)求密文字母A的明文字母的过程如下:

p=[(97-97)-3]mod(26)+97=[(0-3)+26]mod(26)+97=23+97=120(x)替换密码定义设,密钥空间K由所有可能的26个符号0,1,…….,25的置换组成。对每一个置换,定义

则,其中的逆置换。置换的表示为:替换密码的密钥是由26个字母的置换组成。这些置换的数目是26!,超过,是一个非常大的数。这样即使对现代计算机来说,穷举密钥搜索也是不可行的。显然,替换密码的密钥(26个元素的随机置换)太复杂而不容易记忆,因此实际中密钥句子常被使用。密钥句子中的字母被依次填入密文字母表(重复的字母只用一次),未用的字母按自然顺序排列。仿射密码加密函数为:当a=1时,为移位密码仿射函数是双射当且仅当gcd(a,26)=1时同余方程对每个y有唯一的解仿射密码系统

设,且对定义且因为满足,gcd(a,26)=1的只有12种候选,对参数没有要求。所以仿射密码有种可能的密钥。多表代换密码以一系列(两个以上)代换表依次对明文消息的字母进行代换的加密方法。令明文字母表为,为代换序列,明文字母序列,则相应的密文字母序列为。若f是非周期的无限序列,则相应的密码称为非周期多表代换密码。这类密码,对每个明文字母都采用不同的代换表(或密钥)进行加密,称作一次一密密码(One-timepadcipher),这是一种理论上唯一不可破的密码。多表代换密码(续)实际应用中都采用周期多表代换密码。经典的多表代换密码有VigenèreBeaufortRunning-KeyVernam轮转机(Rotormachine)等Vigenère密码Vigenère密码是由法国密码学家BlaisedeVigenère于1858年提出的,它是一种以移位代换(当然也可以用一般的字母代换表)为基础的周期代换密码。设m是某固定的正整数,定义,对一个密钥,定义:且所有的运算都在中。3)Vigenere密码Vigenere密码利用一个恺撒方阵来修匀密文中字母的频率。在明文中不同地方出现的同一字母在密文中一般用不同的字母替代。恺撒方阵的形式为:ABCDEFG……YZBCDEFGH……ZACDEFGHI……ABDEFGHIJ……BC……ZABCDEF……XY

加密时,使用一个通信双方所共享的密钥字母串(如:HAPPYTIME),将密钥字母串重复书写在明文字母的上方。对要加密的明文字母找到上方的密钥字母,然后由该字母确定恺撒方阵的某一行(以该密钥字母开头的行)。最后利用该行的字母表,使用恺撒密码的加密方法进行替代。例如:密钥:HAPPYTIMEHAPPYTIM明文:pleasesendthedata

明文中的第一个e用恺撒方阵中的P行(PQRSTU…O)进行加密,因此被T替代;第二个e用恺撒方阵中的T行(TUVWX…S)进行加密,因此被X替代。

攻击者在破解这种密码时可以猜测密钥的长度l

,然后按每行l个字母排列密文。如果猜测的长度正确,则排列后每列的所有密文字母都是用恺撒方阵中同一行进行恺撒加密的结果。密钥:HAPPYTIME

明文:pleasesendthedata

……ReturnVigenere密码实例[例]利用Vigenère密码,使用密钥word加密信息computer。 明文:computer

密钥:wordword

密文:ycdsqhvu{计算过程:y=c+w,c=o+o(a,b,c,d,…,x,y,z)

(0,1,2,3,…,23,24,25)

即:24=2+22,2=(14+14)mod26}多字母代换密码——Hill密码特点每次对个字母进行代换,这样做的优点是容易将字母的自然频度隐蔽或均匀化而有利于抗统计分析。算法

设m是某个固定的正整数,,又设

;对任意,定义,则其中,所有的运算都是在中进行。注1:m=1时,系统退化为单字母仿射代换密码,可见Hill密码是仿射密码体制的推广。注2:如果m=2,可以将明文写为密文写为.是的线性组合.若取简记为其中为密钥.置换密码置换密码的想法是保持明文字符未改变,但通过重排而更改他们位置,所以有时也称为换位密码(TranspositionCipher)。算法设m是某个固定的正整数,定义,且K由所有的置换组成.对一个密钥(即一个置换),定义其中,.置换密码举例[例一]栅栏式密码 美国南北战争时期(1861-1865年),军队中曾经使用过的“栅栏”式密码(railfencecipher)。(1)原理 明文:sendhelp

加密过程:snhl;间隔一个字符(栅栏)

edep

密文:snhledep(2)算法描述

将明文写成双轨的形式,然后按行的顺序书写得到密文。置换密码举例[例二]置换密码

置换密码举例[例三]置换密码

用置换矩阵

对明文“我是计算机科学与技术专业学生”加密,若明文分组长度不足置换长度时加X补足,试写出加密的密文。解:根据置换矩阵

,明文长度L=5,最后一段不足5则加字母X,按照下列置换,得到密文为012340123401234明文:我是计算机

科学与技术

专业学生X143021430214302密文:是机算我计

学术技科与

业X生专学

置换密码举例[例二]矩阵置换以矩阵形式排列明文将明文逐行写入矩阵,然后逐列读出密钥指出各列读出的顺序如:明文abcdefghijklmnopqrstuvwxyzab密钥为:4312567密文:dkrycjqxahovbipwelszfmtagnubabcdefghijklmnopqrstuvwxyzab置换密码举例[例二]矩阵置换以矩阵形式排列明文将明文逐行写入矩阵,然后逐列读出密钥指出各列读出的顺序如:明文abcdefghijklmnopqrstuvwxyzab方法二:秘钥写上面,读出按照1234567顺序读密钥为:4312567密文:cjqxdkrybipwahovelszfmtagnubabcdefghijklmnopqrstuvwxyzab置换密码举例

置换是在不丢失信息的前提下对明文中的元素进行重新排列。矩形转置密码将明文写成矩形结构,然后通过控制其输出方向和输出顺序来获得密文。例如:明文pleasesendthedada在不同输出顺序下的密文如图所示。[例三]

图形转置密码图形转置密码是矩形转置密码的一般形式。预先选定一种图形,将明文按一定方向输入到该图形中,然后再按另一种方向输出字母便得到了密文。一个三角形转置密码的例子如图所示。

明文:howmanybooksdoesharryhave

密文:OSYVEBERAYORHNDAASHMKWOOH

ehavharryoksdoeshowmanybo输入方向

输出方向

Return解密与密码分析Kerckhoff假设:攻击者已知加密算法解密是加密的逆过程,是指掌握密钥和密码算法的合法人员从密文恢复出明文的过程。密码分析则是指非法人员对密码的破译,而且破译以后不会告诉对方。共同点:“解密(脱密)”和“密码分析(密码破译)”都是设法将密文还原成明文。不同点:二者的前提是不同的,“解密(脱密)”掌握了密钥和密码体制,而密码分析(破译)则没有掌握密钥和密码体制。密码分析2.2分组加密技术本节友情提示2.2.1基本概念2.2.2标准算法的介绍DES算法国际数据加密算法(IDEA)AES算法2.2.3分组密码的分析方法2.2.4分组密码的工作模式2.2.1基本概念密码学中常见的有两种体制:对称密码体制(单钥密码体制)

如果一个加密系统的加密密钥和解密密钥相同,或者虽然不相同,但是由其中的任意一个可以很容易地推导出另一个,即密钥是双方共享的,则该系统所采用的就是对称密码体制。非对称密码体制(公钥密码体制)分组密码是指将处理的明文按照固定长度进行分组,加解密的处理在固定长度密钥的控制下,以一个分组为单位独立进行,得出一个固定长度的对应于明文分组的结果。属于对称密码体制的范畴。基本概念(续)在分组密码的设计中用代替、置换手段实现扩散和混淆功能。混淆指加密算法的密文与明文及密钥关系十分复杂,无法从数学上描述,或从统计上去分析。扩散指明文中的任一位以及密钥中的任一位,对全体密文位有影响。经由此种扩散作用,可以隐藏许多明文在统计上的特性,增加密码的安全现代常规加密技术现代对称加密技术和经典加密技术的比较:相同点:以替代和置换模块作为其基本构件。不同点:现代常规加密技术用计算机对信息进行加密解密处理;算法的强度大大提高;密钥长度也大大增加;加密和解密都是对二进制位进行处理;对信息进行反复地替代和置换操作。

1

Feistel分组密码

2分组密码的操作模式

3数据加密标准DES4三重DES(TripleDES)

Return1Feistel分组密码Feistel分组密码是当前使用的几乎所有对称加密算法的基础。Feistel密码是一种分组密码,Feistel的安全性与下面几个方面密切相关:分组大小:分组越大,安全性越高,加密/解密处理速度也越慢。密钥大小:密钥长度越长,安全性越高,加密/解密速度也越慢。循环次数:循环次数越多,安全性越高,加密/解密速度也越慢。子密钥产生算法:在Feistel算法的多轮循环中,需要使用不同的子密钥。轮函数:轮函数的扩散和扰乱功能越强,则抵御密码分析的能力就越强。加密:LEi=REi-1;REi=LEi-1⊕F(REi-1,Ki);解密:LDi=RDi-1;RDi=LDi-1⊕F(RDi-1,Kn-i+1);加密算法可以描述为:上述描述中,(P)LW表示明文分组长度为w的左半部分,(P)RW为右半部分,||表示拼接。

LE0=(P)LW;RE0=(P)RW;fori=1step1tondoLEi=REi-1;REi=LEi-1⊕F(REi-1,Ki);endforLEn+1=REn;REn+1=LEn;C=LEn+1||REn+1;解密算法可以描述为:Feistel密码的特点是模块化程度高:加密/解密都采用基本模块经过多轮循环而实现;加密过程和解密过程相同,差异仅仅在子密钥的使用顺序上。LD0=(C)LW;RD0=(C)RW;fori=1step1tondoLDi=RDi-1;RDi=LDi-1⊕F(RDi-1,Kn-i+1);endforLDn+1=RDn;RDn+1=LDn;P=LDn+1||RDn+1;Return2.分组密码的操作模式为了适应不同的应用需求,分组密码定义了四种操作模式。这四种操作模式是:电子密码本ECB(ElectronicCodeBook)、密码分组链接CBC(CipherBlockChaining)、密码反馈CFB(CipherFeedback)和输出反馈OFB(OutputFeedback)。

(1)电子密码本ECB

电子密码本是分组密码应用的最基本形式。将明文P划分为长度为w比特的明文分组(P1,P2,…,Pn),最后一个分组一般需要填充。每个明文分组使用同样的密钥K进行加密处理,加密时,明文分组独立于前面的密文分组。w比特的明文分组与w比特的密文分组一一对应。电子密码本模式的特点:相同的明文分组必然产生相同的密文分组。对于传输大量信息(尤其是结构化程度较高的信息),电子密码本模式的安全性并不是太好。由于电子密码本模式下明文的加密过程与密文无关,所以,可以对明文分组进行并行加密处理,以获得很高的加密速度。(2)密码分组链接CBC

密码分组链接模式同电子密码本模式一样将明文进行分组和填充。每个明文分组使用同样的密钥K进行加密处理。加密处理时,明文分组与上一次输出的密文分组进行按位二进制异或操作后,再利用基本分组加密算法进行加密。注意:在对第一个明文分组进行处理时,还没有密文分组可以利用,此时,引入一个初始向量IV与第一个明文分组进行异或。IV必须为发送方和接受方共享,并且应该和密钥一样受到保护。解密处理时,每个密文分组经过基本解密算法解密,然后将此结果与前一个密文分组按位异或以产生明文分组。

CBC模式实现示意图:解密的简单证明如下:Ci=EK[Pi⊕Ci-1]解密结果=DK(Ci)⊕Ci-1=DK[EK[Pi⊕Ci-1]]⊕Ci-1

=[Pi⊕Ci-1]⊕Ci-1根据异或的特性:[A⊕B]⊕C=A⊕[B⊕C]A⊕A=0A⊕0=A可得:解密结果=Pi⊕[Ci-1⊕Ci-1]=Pi⊕0=Pi

密码分组链接模式通过将明文分组与前一个密文分组异或,实现了明文模式的隐藏,使得当同一个明文分组重复出现时能够产生不同的密文分组。密码分组链接模式可以用于大量信息和高结构化信息的加密传输。无法对明文进行并行加密,但可以进行并行解密。

(3)密码反馈CFB上述两种模式要求在对明文分组时进行填充,这样势必增加加密和传输的开销,这种开销在对大量短小信息进行加密的情况下,尤为明显。密码反馈模式将分组密码转化为序列密码。序列密码不要求信息被填充成整数个分组。密码反馈模式实际上是利用基本分组加密模块来产生密钥流。加密操作:每次处理h位,h位明文与h位伪随机密钥异或后,生成h位密文。将密文移入移位寄存器的低h位。伪随机密钥由基本分组密码模块对移位寄存器的内容加密后选取高端的h位而形成。注意:解密的一方在使用基本分组密码模块时,采用的也是加密操作。解密的简单证明如下:加密:Ci=Pi⊕Sh(EK[MS])解密结果=Ci⊕Sh(EK[MR])=Pi⊕Sh(EK[MS])⊕Sh(EK[MR])

上式中,MS为发送方移位寄存器中的值,MR为接收方移位寄存器中的值。只要保证收发双方移位寄存器中的初始向量IV相等,就能保证MS和MR相等。由于双方采用了相同的加密操作EK和选择函数Sh,从而使得下式成立:Sh(EK[MS])=Sh(EK[MR])根据异或操作的性质可得:解密结果=Pi。密码反馈模式的不足之处:若传输中密文出错,则会造成解密错误。由于错误码在被移出移位寄存器之前被多次使用,因而,一个密文出错,会造成连续w/h个解密明文的错误。

CFB(CipherFeedBack)(4)输出反馈OFB

输出反馈模式与密码反馈模式在结构上很接近,不同的是反馈到移位寄存器的不是密文,而是选择函数的输出。输出反馈模式优于密码反馈模式的是传输中的位出错只会影响一次解密,而不会传播。

ReturnOFB(OutputFeedBack)2.2.2标准算法的介绍DES算法国际数据加密算法(IDEA)AES算法DES加密算法的背景发明人美国IBM公司W.Tuchman和C.Meyer1971-1972年研制成功。基础

1967年美国HorstFeistel提出的理论产生美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。标准化

DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(DataEncryptionStandard),于1977年7月15日生效。DES加密算法的背景美国国家安全局(NSA,NationalSecurityAgency)参与了美国国家标准局制定数据加密标准的过程。NBS接受了NSA的某些建议,对算法做了修改,并将密钥长度从LUCIFER方案中的128位压缩到56位。1979年,美国银行协会批准使用DES。1980年,DES成为美国标准化协会(ANSI)标准。1984年2月,ISO成立的数据加密技术委员会(SC20)在DES基础上制定数据加密的国际标准工作。3.数据加密标准DES

DES(DataEncryptionStandard)是数据加密标准的简称。DES起源于20世纪70年代初IBM研制出的LUCIFER算法,LUCIFER是一种Feistel分组密码,分组长度为64比特,密钥长度为128比特。1973年5月和1974年8月美国国家标准局NBS(NationalBureauofStandards)两次发布通告,向社会征集密码算法。结果IBM的LUCIFER算法被选中,1977年被正式公布为数据加密标准DES。作为数据加密标准的DES算法是一种对称加密算法。DES采用56位密钥。在DES中数据以64比特分组进行加密。加密算法经过一系列的加密变换将64比特的明文输入变换成64比特的密文输出,解密过程使用同样的步骤和同样的密钥。1、DES加密DES算法具有严格的Feistel结构。DES由两种基本的加密技术——替代和置换经过细致而复杂的结合而成。DES共使用了16轮替代和置换。DES加密过程分为两条主线:明文分组加密处理和产生子密钥。明文分组加密处理由三个阶段构成。第一个阶段为初始置换(IP)。初始置换按照IP表将输入明文分组的64位二进制数重新排列,产生新的64位输出。初始置换后的输出被分为左右各32位的两部分。第二个阶段为标准的Feistel密码结构,循环次数为16轮,每轮循环使用一个48位的子密钥。经过16轮循环后,再将输出的左右两部分进行对换,并合并为64位的输出。第三个阶段完成逆初始置换(IP-1)。逆初始置换按照IP-1表将64位二进制数进行重新排列,产生的64位输出即为密文。(P39)ReturnDES算法描述为二进制编码数据设计的,可以对计算机数据进行密码保护的数学运算。DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。在每轮编码时,一个48位的“每轮”密钥值由56位的“种子”密钥得出来。DES算法的入口参数有三个:Key、Data和Mode。Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密64位明文变换到64位密文,密钥64位,实际可用密钥长度为56位。DES算法框图DES算法描述(续)初始换位的功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则见下表:

58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D8;R0=D57D49...D7。

DES算法描述(续)逆置换正好是初始置的逆运算。【例】第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:

40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725

初始置换按照IP表将输入明文分组的64位二进制数进行重新排列,产生新的64位输出。逆初始置换IP-1是第一个阶段初始置换的逆操作,M=IP-1(IP(M))ReturnDES算法的一次迭代过程图DES算法的一次迭代过程图DES算法描述(续)扩展置换为:

3212345456789891011121312131415161716171819202120212223242524252627282928293031321

P-盒置换为:

1672021291228171152326518311028241432273919133062211425

ReturnDES结构DES的加密轮函数

F

函数为:F(R,K)=P(S(K⊕E(R))),如下图所示:替代选择通过8个S盒(Substitution-box)完成,替代选择的结果为32位。8个S盒将48位的输入变为32位输出,在完成代替的同时实现了压缩。每个S盒通过一个表将6位输入变为4位的输出。替代选择操作如图所示:

48位输入分为8个6位的组,记为B1,B2,B3,…,B8。S盒S1对B1进行变换。S盒的表是一个4行16列的替代表(P41)。S盒的使用方法如下:设B1的6位组是blb2b3b4b5b6,取出b1和b6位组成一个2位的二进制数blb6,其取值范围在0—3之间,根据此值选取S1盒中对应的行,再由b2b3b4b5译码(0—15之间)确定S1盒中的列,将行列交汇处的值(0—15之间)以二进制码输出,便得到4比特的替代选择结果。在变换中用到的S1,S2...S8为选择函数,俗称为S-盒,是DES算法的核心。其功能是把6bit数据变为4bit数据。

S1:

1441312151183106125907

0157414213110612119538

4114813621115129731050

1512824917511314100613

在S1中,共有4行数据,命名为0,1、2、3行;每行有16列,命名为0、1、2、3,......,14、15列。

现设输入为:D=D1D2D3D4D5D6

令:列=D2D3D4D5

行=D1D6

然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。101100102

0123456789101112131415014413121511831061259071015741421311061211953824114813621115129731050315128249175113141006130010输出4位使用选择函数S1的例子输入6位S1例如,B1=101011时,blb6=11,b2b3b4b5=0101,分别选中S1盒的行3和列5,得到值9,因此输出为1001。

0123456789101112131415S1

01231441312

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论