Ⅰ 应用密码学的前言
前 言
本书第1版是普通高等教育“十一五”国家级规划教材。已先后被东华大学、上海交通大学、中山大学、湖南大学、成都东软学院、山东大学、贵州大学、黑龙江大学、西南科技大学、桂林电子科技大学、内蒙古科技大学、烟台大学、解放军信息工程大学、海军舰艇学院、北京工业大学、南京工业大学、湖北工业大学、安徽师范大学、杭州师范大学、曲阜师范大学等国内数十所高校选用。
该教材经过近四年的教学实践,其间积累了较丰富的教学经验;同时,国内的网络通信与信息技术应用得到了快速发展,如“工业化与信息化融合”、“传感网、物联网、云计算等国家新兴战略性产业的兴起”,“智慧地球”、“传感中国”等理念的提出,第三次信息技术浪潮呼之欲出。信息技术正在快速地改变着人们的工作模式和生活习惯,越来越多的信息安全问题如影随行,密码学在信息安全中的重要地位与日俱增。
本书的目标定位和特色
为了更好地适应教学工作的需要,也为了更好地展现密码学的核心内容与典型应用,在征集学生和教师等广大读者意见的基础上,结合新的教学目标定位与密码技术应用需要,对《应用密码学》第一版的内容进行了系统优化与全面梳理,在充分保留第1版“先进性”、“典型性”、“易学性”、“有趣性”等特色基础上,在新版中力图重点体现以下特色:
(1)本书定位于突出现代密码学原理和方法的工程应用。主要面向工科电气信息类专业学生和一般工程技术人员;着眼于介绍现代密码学的基本概念、基本原理和典型实用技术,不涉及复杂的数学推导或证明。方便读者“学以致用”、突出培养读者现代密码学方面的工程技能是本教材的基本追求。
(2)本书旨在以读者易于理解和掌握的方式构建教材内容体系、表述密码学知识。许多读者(特别是初学者)对密码学知识学习起来感觉非常困难,本书基于作者多年的教学实践经验积累,对读者学习需求和本教材的重难点有非常准确的把握,因此,编着本书重在方便读者掌握现代密码学基本知识后的工程应用,重在引导读者用少量的时间尽快掌握应用密码学的核心内容,提高学习效率,在内容的安排和密码算法的选取方面特别设计,内容重点突出、算法经典实用。同时,针对读者难以理解和掌握复杂的密码学数学知识问题,本书在表述上删繁就简,紧盯核心,将算法原理与举例紧密结合,且例题求解过程具体明了,深入浅出的介绍确保读者学习轻松自如。
(3)本书努力追求使读者对应用密码学知识具备触类旁通、举一反三的能力。任何课堂教学或教材都具有一定的学时或篇幅局限性,另一方面,许多密码算法具有相似的原理,因此,本书不会、也不可能追求内容上的面面俱到,而是以精选的具有良好代表性的经典、实用密码算法为对象,力争从工程应用的角度把密码学基本原理讲清楚、讲透彻,并深入分析它们在多个不同典型领域中的应用方法,以此推动“学用结合”、“能力与素质并进”;对密码学典型算法和密码学基本知识及其应用的剖析,这是一种方法学,读者在深入理解与把握的基础上,将学会分析问题和解决问题的方法,具备继续深造、触类旁通、举一反三的能力,这正是本书希冀达到的最重要的目标!
本书的组织
本书从密码故事开始,全面介绍了应用密码学的基本概念、基本理论和典型实用技术。结构上分为密码学原理、密码学应用与实践两大部分;全书共17章,内容涉及密码学基础、古典密码、密码学数学引论、对称密码体制、非对称密码体制、HASH函数和消息认证、数字签名、密钥管理、流密码以及密码学的新进展;书中还介绍了密码学在数字通信安全、工业网络控制安全、无线传感器网络感知安全、无线射频识别安全以及电子商务支付安全等典型领域的应用方法和技术。每章末都给出了适量的思考题和习题作为巩固知识之用,并附有参考答案。为了方便使用,对于较高要求的部分用符号“*”标识。
教师可在48~64学时内讲解全部或选讲部分内容,还可以配以适当的上机操作进行动手实践,在有限的时间内快速掌握应用密码学的核心内容,提高学习效率。
第2版修订的内容
(1)删。本书删除了第1版中不易理解且不影响密码学基本知识介绍的部分内容,包括最优化正规基表示的 域、AES的Square结构,以及椭圆曲线密码体制部分与最优化正规基相关的例题、量子测不准原理的数学描述。
(2)增。为了使全书的内容体系更完善,新增了密码故事、密码学与无线射频识别安全、安全机制与安全服务之间的关系、P盒的分类、SMS4算法A5/1算法、Kerberos等。
(3)改。为了使全书的内容更优化、表述更容易理解,这一方面涉及的变化较多,主要包括密码学的发展历史、安全攻击的主要形式、密码分析的分类、网络通信安全模型、非对称密码模型、代替与换位密码、欧几里德算法、群的概念、分组密码的操作模式、DES、AES的举例、RSA算法的有效实现、RSA的数字签名应用、ECC的举例、SHA-512中例题的寄存器值变化过程、数字签名的特殊性、流密码模型、RC4算法的伪码描述、PGP的密钥属性、数据融合安全等。
本书的适用对象
本书可作为高等院校密码学、应用数学、信息安全、通信工程、计算机、信息管理、电子商务、物联网、网络化测控等专业高年级本科生和研究生教材,也可供从事网络和通信信息安全相关领域管理、应用和设计开发的研究人员、工程技术人员参考。尤其适合对学习密码学感到困难的初学者。
致谢
本书由重庆邮电大学胡向东教授组织编着,第3、4、10、12章由魏琴芳编着,第15章由胡蓉编着,其余章节的编着、CAI课件和习题答案的制作由胡向东、张玉函、汤其为、白润资、丰睿、余朋琴、万天翔等完成,胡向东负责全书的统稿。作者要特别感谢参考文献中所列各位作者,包括众多未能在参考文献中一一列出资料的作者,正是因为他们在各自领域的独到见解和特别的贡献为作者提供了宝贵的资料和丰富的写作源泉,使作者能够在总结教学和科研工作成果的基础上,汲取各家之长,形成一本定位明确、适应需求、体现自身价值、独具特色并广受欢迎的应用密码学教材。电子工业出版社的康霞编辑等为本书的高质量出版倾注了大量心血,在此对他们付出的辛勤劳动表示由衷的感谢。本书的编着出版受到重庆市科委自然科学基金计划项目(CQ CSTC 2009BB2278)和国家自然科学基金项目的资助。
应用密码学地位特殊、若隐若现、内涵丰富、应用广泛、发展迅速,对本书的修订再版是作者在此领域的再一次努力尝试,限于作者的水平和学识,书中难免存在疏漏和错误之处,诚望读者不吝赐教,以利修正,让更多的读者获益。
编着者
2011年3月
序
随着信息化在全球的发展,互联网、电信网、广播电视网正在走向三网融合,计算机、通信、数码电子产品也朝着3C融合的方向发展,人们的社会生活对网络的依赖越来越大,信息及信息系统的安全与公众利益的关系日益密切。当人类面对荒蛮外界时,人身安全是第一需求,人们需要相互传授安全防范的经验和技能。当人类步入信息社会之时,我们不难发现信息安全还是我们的第一需求,而且现在比过去任何时候都更需要普及信息安全的意识和知识。只有当这种意识和知识为工程技术人员真正掌握,并为公众所接受,整个社会的信息安全才有可靠的保障。
自50多年前香龙的“保密通信的信息理论”一文问世以来,密码学逐步从经验艺术走上了严谨科学的道路,成为了当今社会信息安全技术的坚实基石。不了解密码学,也很难真正驾驭信息安全。另一方面,互联网等当代信息技术领域提出的一系列信息安全新课题(其中许多还是有趣的科学问题和严肃的社会问题)反过来又推动着密码学不断深入发展和广泛应用,使密码学洋溢着生机和魅力。
密码学及其应用是跨学科的交叉研究领域,其成果和思想方法的意义已经不限于数学,甚至也不仅仅限于信息安全。国外从20世纪70年代起,密码和编码理论及技术逐渐成为许多工程学科的基础课程。事实上,它们不仅对理工科学生的训练有益,法律、管理等文科的学生也能从中吸收到思想和心智的知识养分。
现代密码学的确是建立在数学理论的基础之上的,但使用它的人绝不限于数学家,当代工程技术人员对它的需求也许更为迫切,它的应用和发展更需要普及和深入到越来越多的交叉领域中去。为了能够达到精确、简洁、优美的目的,密码学常常需要从形式化的数学层面来刻画;同时密码学也需要人们从工程应用的角度来理解它,甚至需要从逻辑常识和宽广的知识背景的角度来介绍它和思考它,才能领会它的精髓,丰富它的内涵,灵活它的使用。
然而由于历史原因,适合工程技术人员的密码学中文教程相对较少,现代密码学的抽象形式使许多其他专业背景的人对它望而生畏,这就阻碍了它精妙思想和方法的普及。今天,网络安全等领域提出了越来越多的密码技术应用问题,客观上对应用密码学这种体裁的专着有了更广泛、更迫切的需要。
《应用密码学》使工科背景的读者多了一个选择,在一定程度上弥补了上述遗憾。这本书的许多内容来源于作者在工程学科的密码学教学实践,注重从工程技术人员和学生易于接受的方式来介绍密码学的要领,不拘泥于细腻的理论证明和形式上的严谨。书中的一些重点章节还设置了许多有价值的具体实例,全书配有计算机CAI教学课件,这些对读者当不无裨益。针对当前网络安全的热点问题,作者在书中也适时地介绍了一些新的典型应用,抛砖引玉,使书的内容增色不少。
本书似在追求一种信念:更多人的实践和思考有助于推动密码学的发展,多种风格、面向多种应用领域的应用密码学知识能够为密码学大厦添砖加瓦。读后有感,是为序。
中国科学院成都计算机应用研究所研究员、博导
Ⅱ 英文翻译 英译汉 《密码编码学与网络安全》前言 的一句话
本书第一部分通过对密码学和网络安全技术的讲解和概述,对网络安全性能需要解决的根本问题作了探索。
Ⅲ 谁了解密码学的发展历史
发展历程
密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。
着名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。
密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。
进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。
密码体制的基本类型可以分为四种:错乱按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替——用一个或多个代替表将明文字母或数码等代替为密文;密本——用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文。
加乱——用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。
20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、脱密密钥的分离。加密密钥是公开的,脱密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。
利用文字和密码的规律,在一定条件下,采取各种技术手段,通过对截取密文的分析,以求得明文,还原密码编制,即破译密码。破译不同强度的密码,对条件的要求也不相同,甚至很不相同。
其实在公元前,秘密书信已用于战争之中。西洋“史学之父”希罗多德(Herodotus)的《历史》(The Histories)当中记载了一些最早的秘密书信故事。公元前5世纪,希腊城邦为对抗奴役和侵略,与波斯发生多次冲突和战争。
于公元前480年,波斯秘密集结了强大的军队,准备对雅典(Athens)和斯巴达(Sparta)发动一次突袭。
希腊人狄马拉图斯(Demaratus)在波斯的苏萨城(Susa)里看到了这次集结,便利用了一层蜡把木板上的字遮盖住,送往并告知了希腊人波斯的图谋。最后,波斯海军覆没于雅典附近的沙拉米斯湾(Salamis Bay)。
由于古时多数人并不识字,最早的秘密书写的形式只用到纸笔或等同物品,随着识字率提高,就开始需要真正的密码学了。最古典的两个加密技巧是:
置换(Transposition cipher):将字母顺序重新排列,例如‘help me’变成‘ehpl em’。
替代(substitution cipher):有系统地将一组字母换成其他字母或符号,例如‘fly at once’变成‘gmz bu podf’(每个字母用下一个字母取代)。
(3)网络密码学前言扩展阅读:
研究
作为信息安全的主干学科,西安电子科技大学的密码学全国第一。
1959年,受钱学森指示,西安电子科技大学在全国率先开展密码学研究,1988年,西电第一个获准设立密码学硕士点,1993年获准设立密码学博士点,是全国首批两个密码学博士点之一,也是唯一的军外博士点,1997年开始设有长江学者特聘教授岗位,并成为国家211重点建设学科。
2001年,在密码学基础上建立了信息安全专业,是全国首批开设此专业的高校。
西安电子科技大学信息安全专业依托一级国家重点学科“信息与通信工程”(全国第二)、二级国家重点学科“密码学”(全国第一)组建,是985工程优势学科创新平台、211工程重点建设学科。
拥有综合业务网理论及关键技术国家重点实验室、无线网络安全技术国家工程实验室、现代交换与网络编码研究中心(香港中文大学—西安电子科技大学)、计算机网络与信息安全教育部重点实验室、电子信息对抗攻防与仿真技术教育部重点实验室等多个国家级、省部级科研平台。
在中国密码学会的34个理事中,西电占据了12个,且2个副理事长都是西电毕业的,中国在国际密码学会唯一一个会员也出自西电。毫不夸张地说,西电已成为中国培养密码学和信息安全人才的核心基地。
以下简单列举部分西电信安毕业生:来学嘉,国际密码学会委员,IDEA分组密码算法设计者;陈立东,美国标准局研究员;丁存生,香港科技大学教授;邢超平,新加坡NTU教授;冯登国,中国科学院信息安全国家实验室主任,中国密码学会副理事长。
张焕国,中国密码学会常务理事,武汉大学教授、信安掌门人;何大可,中国密码学会副理事长,西南交通大学教授、信安掌门人;何良生,中国人民解放军总参谋部首席密码专家;叶季青,中国人民解放军密钥管理中心主任。
西安电子科技大学拥有中国在信息安全领域的三位领袖:肖国镇、王育民、王新梅。其中肖国镇教授是我国现代密码学研究的主要开拓者之一,他提出的关于组合函数的统计独立性概念,以及进一步提出的组合函数相关免疫性的频谱特征化定理,被国际上通称为肖—Massey定理。
成为密码学研究的基本工具之一,开拓了流密码研究的新领域,他是亚洲密码学会执行委员会委员,中国密码学会副理事长,还是国际信息安全杂志(IJIS)编委会顾问。
2001年,由西安电子科技大学主持制定的无线网络安全强制性标准——WAPI震动了全世界,中国拥有该技术的完全自主知识产权,打破了美国IEEE在全世界的垄断,华尔街日报当时曾报道说:“中国无线技术加密标准引发业界慌乱”。
这项技术也是中国在IT领域取得的具少数有世界影响力的重大科技进展之一。
西安电子科技大学的信息安全专业连续多年排名全国第一,就是该校在全国信息安全界领袖地位的最好反映。
参考资料来源:网络-密码学
Ⅳ 无线网络密码破解应怎么做我对程序不懂,给个傻瓜破解程序。
本无线网络密码破解傻瓜图文教程只做技术交流之用,提醒各位注意无线网络安全性,请勿用于其他用途,否则后果自负。
前言:面对电脑搜索到的无线网络信号,你是否怦然心动?但看到一个个“启用安全的无线网络”你是否又感到有一丝遗憾。本人作为一个心动+遗憾的代表,充分发挥主观能动性,总算学有所成,终于能成功无线密码,这份成功的喜悦不敢独享,写下该篇教程。
注:1、本文针对的无线破解是指wep的破解,wpa破解现在仍是技术难题,不在本文讨论之列,如果你家无线路由需要加密,为保障安全也请采用wpa模式。如果你不知道何谓wep、wpa,请网络一下,会给你一个专业的回答。最简单的解释就是无线信号的密码,后者比前者加密程度高。
2、本文力求以傻瓜式、菜鸟式的方法解决问题,适合像我一样不懂的菜鸟。
下面开始我们的解密之旅:
一、准备篇
1、一个有可破解无线信号的环境。如我在家随便搜索出来的信号。
2、带无线网卡的电脑一台(笔记本台式机均可,只要无线网卡兼容BT3),我用的是三星NC10的上网本。
3、2G以上优盘一个(我用的是kingston 8G 的)
4、搜索下载BT3,约900多兆。
注:BT3 全称BackTrack3,与我们常说的bt下载是完全不同的概念。以我理解就是集成了一些计算机安全软件的linux系统。正是由于它的出世和不断普及,使得破解可让普通用户轻易言之。
5、搜索下载spoonwep2中文包。地址:
注:spoonwep2就是我们的破解软件,一个非常强悍的图形化破解WEP无线网络密码的工具。
二、安装篇
1、将优盘格式化,配置如下图,唯一要注意文件系统选为FAT32就可以了。
2、将刚才下载完成的bt3解压缩,复制到优盘,完成后会看到优盘目录下有两个文件夹,一个boot 一个BT3。
3、开始安装bt3系统。
点击开始-运行,输入CMD, 然后回车,进入命令行模式 。
首先输入你优盘的盘符,我这里是h盘,输入h: 然后回车,接下来输入 cd boot 回车,进入到boot文件夹下,最后 bootinst.bat 回车,就会开始安装BT3。
然后安装会出现一个提示画面,我们别去管它,直接按任意键继续
按任意键后,电脑会自动设置引导记录,整个过程大概10秒左右。出现下面画面后,此优盘就可以引导系统进去bt3了。
4、集成spoonwep2软件。
首先把我们先前下载的spoonwep2解压缩,里面是六个扩展名为lzm的文件,将这六个文件复制到优盘\bt3\moles文件夹下。
这样我们的bt3系统已经集成安装完毕了,可以动手破解了。
三 破解篇
1、将安装好系统的优盘插入电脑,重启后进入bios,设置优盘为电脑第一启动顺序。(这个如果没设置过,可以问一下其他人,或者在网上找找设置方法,每台电脑进入bios的方法也不同,如开机按F2,Del,F1等等)
2、设置优盘启动后,电脑会自动带入我们进入bt3操作系统(如果出现界面选择,你要选择vesa mode),系统界面是这样的(漂亮吧):
3、启动spoonwep2软件
第一步:
选择开始-backtrack->radio network analysis->80211->all->spoonwep2,跟windows操作一样
启动spoonwep2后会看到选择网卡信息设置窗口,需要我们依次设置本地网卡接口,无线网卡芯片类型以及扫描模式,选择完毕后点next继续。
第二步:点NEXT按钮后进入到具体扫描窗口,我们点右上角的LAUNCH按钮开始扫描,再按该按钮是停止扫描。
第三部:软件会自动扫描周边的无线网络,扫描过程中会自动罗列出找到的无线网络的信息,传输速度,截获的通讯数据包大小,使用的无线信号频端,加密类别等。
第四步 扫描了一段时间,差不多有好几个信号了。
你选择一个进行破解,我选了了“bingo, 用鼠标单击bingo,会出现上一样的白色阴影,然后点下面的”selection ok“即可。
第五步,也是最激动人心的一步。完成第四步后,出现下图窗口,具体如何操作看图片。
约过了8分钟,wep密码自然而然就出来了,呵呵,到时有你激动的。
(破解中,会抓取ivs数据包,以我经验一般在20000-30000之间可以解密了)
四、连接篇
得到了密码,我们试试看看能不能连上
重新回到windows系统,用刚才得到的密码,来连接binggo网络
密码自然是正确的,马上就连上了,呵呵
转载li2013的回答
Ⅳ 密码学在计算机网络安全中的作用和地位是什么
密码学是实现信息安全的数学理论,属于最底层的东西。主要研究安全算法。
Ⅵ 软件加密与解密的前言
隐蔽软件(surreptitious software)是近十年来计算机安全研究领域新兴的一个分支。在隐蔽软件的研究过程中不仅需要借鉴计算机安全方面的技术,还会用到计算科学其他领域的大量技术,如密码学、隐写术、数字水印、软件量度(software metric)、逆向工程以及编译器优化等。我们使用这些技术来满足在计算机程序中安全存储秘密信息的需求,尽管这些需求的表现形式千差万别、各不相同。本书中“秘密”一词的意思比较广,书中所介绍技术(代码混淆、软件水印和指纹、防篡改技术以及软件“胎记”等)的使用目的是防止他人剽窃软件中的智力成果。比如,软件中使用指纹技术可以用来跟踪软件是否被盗版,代码混淆技术能够加大攻击者逆向分析软件的难度,而防篡改技术则可以使别人很难制作软件的破解版,等等。
好了,现在我们来讲讲为什么需要阅读本书,谁使用隐蔽软件以及本书将会涵盖哪些内容。
为什么阅读本书
与传统的安全研究不同,隐蔽软件不关心如何使计算机免于计算机病毒入侵,它关心的是计算机病毒的作者是如何防止他人分析病毒的!同样,我们也不关心软件到底有没有安全漏洞,我们关心的是如何隐蔽地在程序中加入一些只有在程序被篡改时才会执行的代码。密码学研究领域中,被加密数据的安全性依赖于加密密钥的隐秘性,而我们现在研究的恰恰是如何隐藏密钥。软件工程中有大量的软件量度技术,以确保程序结构良好,本书中将使用同样的技术使程序复杂难读。本书中描述的很多技术都是基于编译器优化技术研究开发的算法的,但是编译优化的目的是使编译器生成个头尽量小、运行速度尽量快的程序,而使用本书中介绍的一些技术却会使生成的程序个头又大,执行起来又慢。最后,传统的数字水印和隐写术是想办法把要隐藏的信息藏到图像、音频、视频甚至纯文本文件中,而隐蔽软件则是把需要隐藏的信息藏到计算机代码中。
那么,为什么要阅读本书呢?为什么要了解一种不能防止计算机被病毒或者蠕虫攻击的安全技术?为什么要学习一种只会让代码体积变大而执行速度变慢的编译优化技术?为什么要把精力花在一种违反了密码学基本前提(即密钥是不可能被攻击者获得的)的密码学分支上呢?
回答是,传统的计算机安全和密码学研究成果有时并不能解决实际工作中遇到的且亟待解决的安全问题。比如,在本书中将展示如何使用软件水印技术防止软件盗版。软件水印是在程序中嵌入的唯一标识(类似信用卡的卡号或者版权声明),通过这个标识,程序的某个副本就和你(程序的作者)或者客户联系在了一起。要是你发现市场上在卖自己软件的盗版光盘,就可以通过在盗版软件中提取的水印追查制作这个盗版软件的母版 当初是哪个家伙从你这里买走的。当给合作商提供新开发的游戏的测试版时,你也可以在测试版中加上数字水印。要是你感觉有人泄露了你的代码,就能(从众多的合作商中)找出肇事者,并把他送上法庭。
又比如,在程序的新版本中加上了某个新的算法,你当然不希望竞争对手也得到这个算法,并把它加到他们的软件中。这时,你就可以去混淆程序,使之尽可能变得复杂难懂,使竞争对手逆向分析软件时效率很低。而如果确实怀疑某人剽窃了你的代码,本书也会教你如何使用软件“胎记”证实你的怀疑。
再比如,你的程序中包含有某段不能为人所知的代码,并且你想确保没有这段代码程序就不能正常运行。例如,你肯定不希望黑客修改程序中的软件使用许可验证代码,或者可用于解密数字版权管理系统中mp3文件的密钥。第7章将讨论多种防篡改技术,确保受到篡改的程序停止正常运行。
听说你把密钥放在可执行文件里了?这主意实在太糟糕了!以往的经验告诉我们,任何类似“不公开,即安全” 的做法最终都将以失败告终,而且不管在程序中怎样隐藏密钥,最终它都逃不出一个足够顽强的逆向分析人员的手心。当然,必须承认你的做法也还是对的。本书中介绍的所有技巧都不能保证软件能永远免于黑客的毒手。不必保证某个东西永远处于保密的状态,也不必保证程序永远处于不可能被篡改的状态,更不需要保证代码永远不会被剽窃。除非这个研究领域有什么重大的突破,否则能指望的只是延缓对方的攻击。我们的目标就是把攻击者的攻击速度减缓到足够低,使他感到攻击你的软件十分痛苦或要付出过高的代价,从而放弃攻击。也可能攻击者很有耐心地花了很长时间攻破了你的防御,但这时你已经从这个软件中赚够了钱,或者已经用上了更新版本的代码(这时他得到的东西也就一钱不值了)。
比方说,你是一个付费频道的运营商,用户通过机顶盒来观看你提供的电视节目。每个机顶盒都是带有标签的——在代码的某个位置上存放了分配给每个用户的唯一标识(ID),这样你就可以根据用户的缴费情况决定是允许还是拒绝某个特定用户观看频道里的节目。可是现在有一个黑客团伙找到并且反汇编了这段代码,发现了计算用户ID的算法,并且在网上以低廉的价格把修改用户ID的方法卖给了网民。这时你该怎么办呢?你也许想到了使用防篡改的智能卡,不过这玩意儿并不像看上去那么难破解,这将在第11章中讲解。或者你可能想到要混淆代码,使之更难以被分析。或者你也可以使用防篡改技术使程序一被修改就自动停止运行。更有可能,你会混合使用上述各种技巧来保护代码。但是尽管使用了所有技术,你还必须要知道并且必须接受,你的代码仍然可能被破解,秘密仍会泄露(在这个案例里就是机顶盒里的用户ID仍然会被篡改)这一事实。怎么会这样呢?这只是因为“不公开,既安全”这个想法在根本上就存在漏洞。不过既然本书中介绍的所有技术都不能给你一个“完美并且长期的安全保证”,那么为什么还要使用这些技术,为什么还要买这样一本书呢?答案很简单,代码能顶住黑客攻击的时间越长,订阅频道的客户就越多,同时升级机顶盒的周期也就越长,这样你赚到的钱和省下的钱也就越多。
就这么简单。
谁使用隐蔽软件
很多知名的公司都对隐蔽软件有浓厚的兴趣。事实上很难真正掌握有关技术在实践中具体被使用的程度(因为大多数公司在如何保护自己的代码一事上绝对是守口如瓶的),但是我们还是可以根据他们专利的申请和拥有情况把他们对隐蔽软件的感兴趣程度猜个八九不离十。微软公司拥有多个关于软件水印[104,354]、代码混淆[62,62,69,69,70,70,180,378]和软件“胎记”[364]技术的专利。Intertrust公司拥有大量与数字版权管理技术相关的组合式专利,包括代码混淆和代码防篡改专利。2004年,在微软与Intertrust之间的马拉松式官司落下了帷幕之后,微软向Intertrust支付了高达4.4亿美元的专利使用费,才获得了后者所有的专利使用许可。同年,微软也开始与PreEmptive Solution公司开展商业合作[250],从而把PreEmptive Solution开发的identifier obfuscator(PreEmptive solution公司在该工具中拥有专利[351])加到了Visual Studio的工具集里。而普渡大学科研成果的副产品Arxan,因其独创的防篡改算法专利[24,305]而成功地开办了一家公司。苹果公司拥有一个代码混淆方面的专利,估计是用于保护其iTune软件的。Convera,一家从英特尔公司独立出来的企业,则着力研究应用于数字版权管理的代码防篡改技术[27,268-270]。从加拿大北方电信公司中分离出来的Cloakware公司也是这个领域里最成功的企业之一。该公司拥有他们称为“白盒加密”的专利[67,68,182],即把加密算法和密钥藏到程序代码中。2007年12月,Cloakware公司被一家主营付费电视业务的荷兰公司Irdeto以7250万美元的价格收购。即使是相对的后来者Sun Microsystem也已经提交了一些代码混淆领域的专利申请。
Skype的VoIP客户端也使用了类似Arxan[24]、英特尔[27]及本书中将要提到的[89]代码混淆和防篡改技术进行了防逆向工程加固。对于Skype公司来说,保护其客户端的完整性无疑是极其重要的,因为一旦有人成功逆向分析了其客户端软件,解析出Skype所使用的网络协议,黑客们就能写出廉价的能与Skype软件进行正常通信的程序(这样的话,人们就没有必要一定用Skype)。所以保持网络协议不公开则有助于Skype拥有一个庞大的用户群,这大概也是2005年易贝公司以26亿美元收购Skype的原因吧。实际上,使用隐蔽软件技术还使Skype公司赢得了足够多的时间,进而成为了VoIP技术的领军企业。即使这时Skype的协议被分析出来了(这一点黑客们确实也做到了,详见7.2.4节),黑客们也拿不出一个能够撼动Skype市场地位的类似软件了。
学术研究者从多种角度对隐蔽软件技术进行了研究。一些拥有编译器和程序语言研究背景的研究者,比如我们,会很自然地加入这一领域的研究,因为涉及代码转换的绝大多数算法都会涉及静态分析的问题,而这一问题则是编译优化技术的研究者再熟悉不过的了。尽管以前,密码学研究者大多不屑于研究“不公开,即安全”的问题,但最近一些密码学研究人员已经开始把密码学的相关技术应用于软件水印以及发现代码混淆技术的局限性上了。来自多媒体水印、计算机安全和软件工程方面的研究人员也已经发表了很多关于隐蔽软件的文章。遗憾的是,由于没有专门的刊物、学术会议(供研究人员相互之间进行交流),这一领域的研究进展被大大延缓了。事实上,为了使这些研究成果能被传统的学术会议和期刊接受,研究人员在不停地努力着,现在仍在努力。目前已经发表过隐蔽软件研究成果的学术会议有POPL(Principles of Programming Languages,程序设计原理)上的ACM专题研讨会、信息隐藏研讨会、IEEE的软件工程研讨会、高级密码学会议(CRYPTO)、ISC(Information Security Conference,信息安全大会)以及其他一些关于数字版权管理的学术会议。随着隐蔽软件这一领域的研究越来越成为学术研究的主流,我们有望拥有专门针对于隐蔽软件的期刊、专题讨论会甚至是研讨会,只是可惜目前为止这一切都还没有实现。
军方也在隐蔽软件上花了很多精力(和纳税人的钱)。比如,Cousot公司拥有的软件水印算法[95]专利就归属于世界上第九大国防工程承包商法国Thales集团。下面是一段引自最新的(2006)美军招标文件[303]中有关AT(anti-tamper)技术 研究的文字。
现在,所有的美军项目执行部门(PEO)和项目管理方(PM)在设计和实现有关系统时,必须在系统中使用军队和国防部制定的AT策略。嵌入式软件现代武器系统的核心,是被保护的最重要技术之一。AT技术能够有效地保证这些技术不被他国(人)逆向工程分析利用。仅仅由标准编译器编译生成而不加AT技术防护的代码是很容易被逆向分析的。在分析软件时,逆向工程分析人员会综合使用诸如调试器、反编译器、反汇编器等很多工具,也会使用各种静态和动态分析技巧。而使用AT技术的目的就是使逆向工程变得更为困难,进而防止美国在技术领域的优势被他国窃取。今后还有必要向部队的PEO和PM提供更有用、更有效并且多样化的AT工具集……研发AT技术的目的在于提供一个能够抗逆向工程分析的高强度壳 ,从而最大限度地迟滞敌方对被保护软件的攻击。这样美国就有机会维持其在高科技领域的优势或者减缓其武器技术泄密的速度。最终,美军就能继续保持其技术优势,进而保证其军备的绝对优势。
这份招标文件来自于美军导弹和空间程序(设计部门),专注于实时嵌入式系统的保护。我们有理由相信产生这份招标文件的原因是,美军担心射向敌方的导弹由于种种原因落地后未能爆炸,使敌方有机会接触到嵌入在导弹中负责引导导弹飞临目标上空的控制软件。
下面是另一段引自美国国防部[115]的文字。
进行主动式软件保护 (SPI)是国防部的职责之一,它必须开发和部署相关的保护技术,以保证含有国防武器系统关键信息的计算机程序的安全。SPI提供的是一种全新的安全防护方法,它并不(像传统的安全技术那样)保护计算机或者网络的安全,而只是加强计算机程序自身的安全。这种新方法能显着提升国防部的信息安全情况。SPI的适用范围很广,从台式机到超级计算机上面所有的程序都能使用SPI技术予以保护。它是(软件保护技术中)完整的一层,是“纵深防御”的一个范例。SPI技术是对网络防火墙、物理安全等传统安全技术的一个补充,但是其实现并不依赖于这些传统的安全设备。现在SPI技术被部署在选定的HPC中心和150多家国防部机关以及其他由商业公司参与建设和维护的军事基地。广泛地部署SPI技术将会有效地增强美国和美国国防部对关键应用技术的保护。
.上面这段话说明了什么?它说明美国国防部不仅关心导弹会不会掉到敌方领土上去,还关心在自己的安全系数和性能都很高的计算机中心运行的软件的安全。事实上,窃密和反窃密是防间谍机关和情报部门之间永恒的主题。比方说,一架战斗机上的某个程序需要更新一下,这时我们很可能就是用一台笔记本电脑连接到这架战斗机上进行更新操作。但是万一这台笔记本电脑不慎遗失了,或者干脆就被其他国家政府使用某种方法控制了,就像电影里常演的那样,这时会有什么情况发生呢?对方会马上把相关的代码拿去做逆向工程分析,并把分析的结果用于改进其战斗机中所使用的软件。更有甚者,对方会悄悄地在你的软件中加上一个特洛伊木马,并让飞机在特定的时间里从天上掉下来。如果我们不能绝对保证上述这一幕100%不可能发生的话,隐蔽软件至少可以作为安全防御的最后一道防线(至少还能做到事后的责任追究)。例如,飞机中的软件可以用有权访问相关软件的人的ID做一个指纹签名。要是哪天,在其他国家的战斗机上发现了这些代码,就可以立即对这些代码进行逆向分析,并进一步推算出谁是泄密事件的元兇。
什么?我听见你说,为什么我要对政府之间和商业巨头之间如何保护它们各自的秘密感兴趣呢?如果黑客破解了这些软件,他们也不过是通过自己的劳动换取一些微薄的利益而已啊。话虽如此,但是这些保护技术给你 带来的好处最终还是大于它给商业巨头带来的好处。理由是,对你来说,法律形式的保护措施(如专利、商标和版权)只有当你拥有足够的财力,能在法庭上把对方告倒的时候才会管用。换而言之,即使你认为某家大公司通过破解你的代码,剽窃了一个极有“钱途”的主意,你也无力通过那种马拉松式的官司在法庭上告倒微软,除非你有足够的经济实力能在这种财力的比拼中熬出头 。而在本书中讨论的保护技术(比如代码混淆和防篡改技术)则既廉价又好用,中小型企业和商业巨头均可使用。而且如果这时你去告这家大公司的话,也可以用水印或者软件“胎记”等技术,在法庭上当场拿出代码被剽窃的真凭实据来。
最后不得不简单地提一下另一类极其擅长使用隐蔽软件的人——坏蛋们。病毒的作者已经能非常成功地利用代码混淆的技术伪装病毒的代码,使之逃避杀毒软件的检测了。值得一提的是,人们使用这些技术(如保护DVD、游戏和有线电视)时经常被黑客破解,而黑客使用这些技术(如构建恶意软件)时,人们却很难抗击。
本书内容
隐蔽软件研究的目的是发明能够尽可能迟滞对手(逆向工程分析)进度,同时又尽可能地减少因为使用该技术,而在程序执行时增加的计算开销的算法。同时也需要发明一种评估技术,使我们可以说“在程序中使用了算法A之后,相对于原先的程序,黑客攻破新程序需要多花T个单位的时间,而新程序增加的性能开销是0”,或者最低限度我们也应该可以说“相对于算法B,使用算法A保护的代码更难被攻破”。特别要强调一下,隐蔽软件研究尚处于婴儿期,虽然我们在书中会把相关的保护算法和评估算法全都介绍给大家,但是这门艺术的现状却还并不理想(到时候你可不能太失望啊)。
在本书中,我们试图把当前所有有关隐蔽软件的研究成果组织起来系统化地介绍给读者。我们力争每章内容涵盖一种技术,并描述这一技术的应用领域以及目前可用的算法。第1章将给出隐蔽软件这个领域的一些基本概念;第2章用对抗性演示的模式介绍黑客逆向分析软件时常用的工具和技巧,然后针对这些工具和技巧介绍如何防范黑客的攻击;第3章详细讲述黑客和软件保护方用于分析计算机程序的技术;第4章、第5章和第6章分别介绍与代码混淆有关的算法;第7章介绍与防篡改技术相关的算法;第8章和第9章分别介绍与水印相关的算法;第10章介绍与软件“胎记”相关的算法;第11章讲述基于硬件设备的软件保护技术。
如果你是位企业管理人员,只是对隐蔽软件的研究现状和这些技术怎么应用到你的项目中感兴趣,那么只要阅读第1章和第2章就够了。如果你是位拥有编译器设计背景的研究人员,那么建议直接跳到第3章开始阅读。但是之后的章节还是最好顺序阅读。这是因为……呃,还是举个例子吧,介绍水印技术的章节中会用到在代码混淆章节中介绍的知识。当然在本书撰写过程中,我们还是尽量使各章内容都能独立成章的,所以(如果你拥有一些背景知识)偶尔跳过那么一两章也未尝不可。如果你是一位工程师,想要使用有关技术加固你的软件,那么强烈建议你仔仔细细地阅读第3章的所有内容,如果有条件的话,还应该再搞几本编译原理方面的教材恶补一下“程序静态分析”的知识。然后你就可以随意跳到感兴趣的章节去阅读了。如果你是名大学生,把本书作为一门课程的教材来阅读,那么就应该一页一页地完整阅读本书,期末别忘了做好复习。
希望本书能够做到两件事情。首先,希望能向你,亲爱的读者,证明代码混淆、软件水印、软件“胎记”和防篡改等技术里有大量妙不可言的想法,值得你花点时间去学习,而且这些技术也可以用来保护软件。其次,希望本书能把本领域内当前所有有用的信息汇集在一起,从而为隐蔽软件的深入研究提供一个良好的起点。
Christian Collberg和Jasvir Nagra
2009年2月2日(土拨鼠日)
P.S.实际上写作这本书还有第三个目的。要是在阅读本书时,你突然灵光闪现,冒出一个绝妙的主意,进而激发了你投身于隐蔽软件研究的雄心壮志,那么,亲爱的读者,我这第三个目的就算是达到了。请把你的新算法告诉我们,我们将把它加到本书的下一版里!
Ⅶ 密码学的主要思想是什么
公钥密码体制的思想是基于陷门单向函数公钥用于该函数的正向(加密)计算私钥用于该函数的反向(解密计算)。
加密算法的设计
设计加密算法的思想往往是:构造一个称为某种网络的固定结构,然后以该种网络的若干次迭代来对明文及密钥数据提供必要的混乱和扩散。
一个完整的网络应使每一输入比特经其变换以后都可能使形态改变至少一次。此外,按照Feistel构造中m与n是否相等可把Feistel网络分为平衡与非平衡的。
最基本的要素:S-盒、P-置换、以及结构(轮)函数
Ⅷ 无线网络密码
对啊,就是这样的,如果想更改可以进入无线网络管理器高级配置修改相关设置就好了
Ⅸ 现代密码学的发展历史
人类有记载的通信密码始于公元前400年。古希腊人是置换密码的发明者。1881年世界上的第一个电话保密专利出现。电报、无线电的发明使密码学成为通信领域中不可回避的研究课题。
在第二次世界大战初期,德国军方启用“恩尼格玛”密码机,盟军对德军加密的信息有好几年一筹莫展,“恩尼格玛”密码机似乎是不可破的。但是经过盟军密码分析学家的不懈努力,“恩尼格玛”密码机被攻破,盟军掌握了德军的许多机密,而德国军方却对此一无所知。
太平洋战争中,美军破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,导致了太平洋战争的决定性转折, 相反轴心国中,只有德国是在第二次世界大战的初期在密码破译方面取得过辉煌的战绩。因此,我们可以说,密码学在战争中起着非常重要的作用。
随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高。如网络银行、电子购物、电子邮件等正在悄悄地融入普通百姓的日常生活中,人们自然要关注其安全性如何。1977年,美国国家标准局公布实施了“美国数据加密标(DES)”,军事部门垄断密码的局面被打破,民间力量开始全面介入密码学的研究和应用中。民用的加密产品在市场上已有大量出售,采用的加密算法有DES、IDEA、RSA等。
现有的密码体制千千万万,各不相同。但是它们都可以分为单钥密码(对称密码体制)如 DES密码,和公钥密码(非对称加密体制)如RSA密码。前者的加密过程和脱密过程相同,而且所用的密钥也相同;后者,每个用户都有各自的公开和秘密钥。
编码密码学主要致力于信息加密、信息认证、数字签名和密钥管理方面的研究。信息加密的目的在于将可读信息转变为无法识别的内容,使得截获这些信息的人无法阅读,同时信息的接收人能够验证接收到的信息是否被敌方篡改或替换过;数字签名就是信息的接收人能够确定接收到的信息是否确实是由所希望的发信人发出的;密钥管理是信息加密中最难的部分,因为信息加密的安全性在于密钥。历史上,各国军事情报机构在猎取别国的密钥管理方法上要比破译加密算法成功得多。
密码分析学与编码学的方法不同,它不依赖数学逻辑的不变真理,必须凭经验,依赖客观世界觉察得到的事实。因而,密码分析更需要发挥人们的聪明才智,更具有挑战性。
现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技术。
1976年Diffie和Hellman在《密码新方向》中提出了着名的D-H密钥交换协议,标志着公钥密码体制的出现。 Diffie和Hellman第一次提出了不基于秘密信道的密钥 分发,这就是D-H协议的重大意义所在。
PKI(Public Key Infrastructure)是一个用公钥概念与技术来实施和提供安全服务的具有普适性的安全基础设施。PKI公钥基础设施的主要任务是在开放环境中为开放性业务提供数字签名服务。