密码技术

密码技术,第1张

密码算法的特性
1、是否需要事先配送私钥:对称密码需要考虑
2、是否会遭到中间人攻击:非对称密码分发公钥时需要考虑
3、不可抵赖(可被双方 和 第三方 用原理证明):非对称密码分发公钥时需要考虑
4、能否保证消息的机密性:即不可破译
5、能否保证消息的完整性(一致性):即不可篡改
6、不可冒充(伪造)

总结:对称密码(解决456)--非对称密码之单向通信--> 混合密码(解决1) --非对称密码之数字签名--> 公钥证书(解决23)

概念
密码算法:加密算法 + 密钥 + 解密算法,简称密码
密钥空间:密钥的所有取值
隐蔽式安全性:以密码算法不为人所知,来保证机密性
分组密码:对明文进行分组加密,而非以全文作为输入
流密码:不分组,整体加密

破解密文的方法
1、窃听 + 破译
2、社会工程学
破解密钥的方法
1、暴力破解(密钥穷举),例如破译凯撒密码
2、频率分析,例如破译简单替换密码
3、选择明文攻击(对分组进行明文穷举)

加密系统的可选技术
隐写术:将消息藏在更大的数据中,例如藏头诗
伪随机数生成器
散列值(摘要,哈希值,指纹):原文经过散列函数(摘要函数,哈希函数,杂凑函数,单向加密)计算出来的值
对称密码(共享密钥密码):加密和解密用同一个私钥
非对称密码(公钥密码):公钥加密,私钥解密
消息认证码
数字签名
公钥证书

碰撞:两个消息的散列值相同
弱抗碰撞性:给定一条消息,很难找到另一条消息与其散列值相同。防止以下情形,Bob持有一个消息A,计算其摘要;Alice找到与A散列值相同的另一条消息B,用B将A调包;由于摘要不变,不被Bob发觉
强抗碰撞性:很难找到两条散列值相同的消息。防止以下情形,Alice拿两个摘要相同的消息A和B,将A发给Bob;Bob计算其摘要;Alice再用B将A调包;由于摘要不变,不被Bob发觉
MD5(Message Digest 5)
历史:1991年Ronald Rivest 设计出MD5
现状:2004年王小云提出了MD5碰撞攻击算法
SHA
历史:1993年NIST发布SHA,1995年发布SHA-1,2002年发布SHA-2
现状:2004年王小云提出了SHA-0的碰撞攻击算法;2005年王小云提出了SHA-1的碰撞攻击算法
SHA-3
历史:2007年NIST发起选拔SHA-3,2012年Joan Daemen等人设计的Keccak算法被选定为SHA-3

弱伪随机数:随机性
强伪随机数:不可预测性
真随机数:不可重现性

随机数生成器:硬件可以通过热噪声实现真随机数
伪随机数生成器:软件只能生成伪随机数,需要一种子seed来初始化

伪随机数算法:线性同余法、散列法、密码法等

好的对称密码解决:不可破译
缺点:需要事先配送密钥
凯撒密码
加密算法:字母平移
密钥:平移位数
解密算法:逆向平移
破解密钥:穷举可能的密钥
简单替换密码
加密算法:一个字母替换成另一个字母
密钥:替换表
解密算法:逆向替换
破解密钥:对密文的字母 和 字母组合进行频率分析,与通用频率表对比;用破译出来的明文字母,代入密文,循环分析
Enigma密码
发明者:德国人Arthur Sherbius
加密算法:双重加密,每日密钥作为密钥1,想一个密钥2;用密钥1加密密钥2,得到密钥2密文;用密钥2加密消息;将密钥2密文和消息密文一起发出
密钥:密钥册子记录的每天不同的密钥
解密算法:用每日密钥解密密钥2密文,得到密钥2;用密钥2解密消息密文
破译者:Alan Turing 图灵

DES密码(Data Encryption Standard)
历史:1974年IBM公司的Horst Feistel开发出了Lucifer密码,1977年被美国国家标准学会(American National Standards Institute,ANSI)确定为DES标准
加密算法:以64比特为一组,进行16轮运算。在一轮中,把一组分为左侧和右侧,并从密钥中提取子密钥;轮函数用一侧和子密钥生成一个比特序列,用这个比特序列对另一侧进行异或运算(XOR)
密钥:长度56位
破译:可在现实时间内被暴力破解

三重DES密码(triple-DES,TDEA,3DES)
加密算法:将DES重复三次
密钥:长度 56 3

AES密码(Advanced Encryption Standard)
历史:1997年,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)公开募集AES,2000年比利时密码学家Joan Daemen 和 Vincent Rijmen提交的Rijndael方案,被选为标准
加密算法:以128比特为一组,进行多轮的替换、平移、矩阵运算
密钥:有128,192,256三种长度

分组密码的迭代模式
ECB模式:Electronic CodeBook mode,电子密码本模式;明文分组 和 密文分组 顺序对应。主动攻击者可以改变密文分组的顺序,复制 或 删除密文分组,使得接受者解密后得到错误的明文
CBC模式:Cipher Block Chaining mode,密码分组链接模式;将本组明文 和 上组密文 进行异或运算后,在进行加密;如果被篡改,则不能正常解密
CFB模式:Cipher Feedback mode,密文反馈模式;将本组明文 和 上组密文 进行异或运算后,就得到本组的密文
OFB模式:Output Feedback mode,输出反馈模式;用随机比特序列作为初始化组(初始化向量);用初始化组的密文和 明文分组 异或运算,得到密文分组;再次对初始化组密文进行加密运算,得到新的初始化组密文,跟下组明文进行异或运算,以此类推
CTR模式:CounTeR mode,计数器模式;用随机比特序列作为计数器的初始值,加密后与明文分组进行异或 *** 作,得到密文分组;计数器加一,对下组明文进行加密

对称密码中,发送方发送密文时,带上消息的MAC值A;接收方用相同方法计算出MAC值B;对比A和B,确保消息不被篡改
Encrypt-then-MAC:MAC值为消息密文的散列值
Encrypt-and-MAC:MAC值为消息明文的散列值
MAC-then-Encrypt:MAC值为明文散列值的密文

重放攻击:攻击者窃听到Alice给Bob发送的消息后,重复给Bob发送,Bob以为都是Alice发的
预防重放攻击:消息里带有一个id

比对称密码:不可篡改、不可伪造
缺点:需要实现配送私钥

基于口令的密码:Password Based Encryption,PBE
解决:密钥(会话密钥)保存问题
CEK:会话密钥
KEK:用来加密CEK的密钥
方案
1、随机数作为盐salt,口令 + 盐 的散列值作为KEK
2、用KEK加密CEK,得到CEK密文
3、只保存盐和CEK密文,人脑记住口令,丢弃KEK

字典攻击:如果没有盐参与生成KEK,那么口令决定了KEK,常用的口令对应一个常用KEK字典,攻击者直接拿常用KEK去解密CEK密文
盐的作用:KEK由盐参与形成,不可能有KEK字典包含这样的KEK

非对称密码单向通信,不能单独用于通信,只用在混合密码中
方案:Alice 给 Bob 分发加密密钥(公钥);Bob用公钥加密消息,发送给Alice;Alice用解密密钥(私钥)解密
总结:消息接收者是密钥对主人,即私钥持有人;公钥用于加密,私钥用于解密

RSA密码
历史:1978年,Ron Rivest、Adi Shamir、Reonard Adleman共同发表了RSA
加密算法:密文 = 明文 E mode N
公钥:E 和 N的组合
解密算法:明文 = 密文 D mode N
私钥:D 和 N的组合

生成密钥对
生成质数:用伪随机数生成随机数,通过Miller-Rabin测试法测试它是不是质数,直到得到质数
求最大公约数:欧几里得的辗转相除法
1、求N
生成两个512位的质数p和q,N = p q
2、求L
L是p-1 和 q-1 的最小公倍数
3、求E
用伪随机数生成(1,L)范围内的随机数,直到满足E和L的最大公约数为1
4、求D
用伪随机数生成(1,L)范围内的随机数,直到满足(E D) mod L = 1

破解:对N进行质因数分解,得到p和q,从而求出D。但是对大数的质因数分解,未有快速有效的方法

首次通信为混合密码,后续通信为对称密码
比消息认证码:无需事先配送私钥
总体思路:Bob 用会话密钥加密消息,用Alice的公钥加密会话密钥,一起发给Alice;Alice用私钥解密会话密钥,用会话密钥解密消息
会话密钥:用来加密消息的 对称密码的密钥
1、Alice 给 Bob 发送公钥
2、Bob随机生成会话密钥,用会话密钥加密消息,得到消息密文
3、Bob用公钥加密会话密钥,得到会话密钥密文
4、Bob将会话密钥密文和消息密文一起发给Alice
5、Alice用私钥解密会话密钥,再用会话密钥解密消息
6、双方都有了会话密钥,从此以后,可以用对称密码通信了,带上消息认证码

缺点:分发公钥时,可能遭受中间人攻击;Alice可能对给Bob发送公钥这件事进行抵赖
中间人攻击:中间人从一开始Alice向Bob发放公钥时,就拦截了消息,得到Alice的公钥;然后伪装成Alice,向Bob发送自己的公钥;从而Bob打算发给Alice的消息,能被中间人解密

不能单独用于通信,只用在公钥证书中
明文签名:Alice用签名密钥(私钥)加密消息的摘要,把摘要密文和消息明文一起发给Bob;Bob解密摘要密文,得到摘要A;算出明文摘要B,对比A和B
总结:私钥用于加密,公钥用于解密,与 非对称加密之单向通信,刚好反过来

公钥证书:Public-Key Certificate,PKC,简称证书
认证机构:Certification Authority,CA
证书标准:国际电信联盟ITU 和 国际标准化组织ISO指定的X509标准
流程:
1、Alice在CA登记
2、CA生成Alice的证书明文,包含Alice登记的信息、Alice的公钥、CA信息
3、CA用自己的私钥加密证书明文部分,得到数字签名
4、证书明文部分 和 数字签名 组成PKC,颁发给Alice
5、Bob向Alice获取这个PKC,拿本地已有的CA公钥去验证证书,就得到了可信的Alice的公钥
6、从此Alice 和 Bob之间可以进行混合密码通信

首次通信为从CA获取PKC,后续通信为混合密码
比混合密码:防止了中间人攻击;CA不能抵赖自己的证书

历史:1994年网景公司设计出SSL,2014年SSL 30被发现安全漏洞,1999年IEIF发布TLS
TLS(Transport Layer Security)是SSL(Secure Socket Layer)的后续版本,在tcp和>

隐蔽软件(surreptitious software)是近十年来计算机安全研究领域新兴的一个分支。在隐蔽软件的研究过程中不仅需要借鉴计算机安全方面的技术,还会用到计算科学其他领域的大量技术,如密码学、隐写术、数字水印、软件量度(software metric)、逆向工程以及编译器优化等。我们使用这些技术来满足在计算机程序中安全存储秘密信息的需求,尽管这些需求的表现形式千差万别、各不相同。本书中“秘密”一词的意思比较广,书中所介绍技术(代码混淆、软件水印和指纹、防篡改技术以及软件“胎记”等)的使用目的是防止他人剽窃软件中的智力成果。比如,软件中使用指纹技术可以用来跟踪软件是否被盗版,代码混淆技术能够加大攻击者逆向分析软件的难度,而防篡改技术则可以使别人很难制作软件的破解版,等等。
好了,现在我们来讲讲为什么需要阅读本书,谁使用隐蔽软件以及本书将会涵盖哪些内容。
为什么阅读本书
与传统的安全研究不同,隐蔽软件不关心如何使计算机免于计算机病毒入侵,它关心的是计算机病毒的作者是如何防止他人分析病毒的!同样,我们也不关心软件到底有没有安全漏洞,我们关心的是如何隐蔽地在程序中加入一些只有在程序被篡改时才会执行的代码。密码学研究领域中,被加密数据的安全性依赖于加密密钥的隐秘性,而我们现在研究的恰恰是如何隐藏密钥。软件工程中有大量的软件量度技术,以确保程序结构良好,本书中将使用同样的技术使程序复杂难读。本书中描述的很多技术都是基于编译器优化技术研究开发的算法的,但是编译优化的目的是使编译器生成个头尽量小、运行速度尽量快的程序,而使用本书中介绍的一些技术却会使生成的程序个头又大,执行起来又慢。最后,传统的数字水印和隐写术是想办法把要隐藏的信息藏到图像、音频、视频甚至纯文本文件中,而隐蔽软件则是把需要隐藏的信息藏到计算机代码中。
那么,为什么要阅读本书呢?为什么要了解一种不能防止计算机被病毒或者蠕虫攻击的安全技术?为什么要学习一种只会让代码体积变大而执行速度变慢的编译优化技术?为什么要把精力花在一种违反了密码学基本前提(即密钥是不可能被攻击者获得的)的密码学分支上呢?
回答是,传统的计算机安全和密码学研究成果有时并不能解决实际工作中遇到的且亟待解决的安全问题。比如,在本书中将展示如何使用软件水印技术防止软件盗版。软件水印是在程序中嵌入的唯一标识(类似xyk的卡号或者版权声明),通过这个标识,程序的某个副本就和你(程序的作者)或者客户联系在了一起。要是你发现市场上在卖自己软件的盗版光盘,就可以通过在盗版软件中提取的水印追查制作这个盗版软件的母版 当初是哪个家伙从你这里买走的。当给合作商提供新开发的游戏的测试版时,你也可以在测试版中加上数字水印。要是你感觉有人泄露了你的代码,就能(从众多的合作商中)找出肇事者,并把他送上法庭。
又比如,在程序的新版本中加上了某个新的算法,你当然不希望竞争对手也得到这个算法,并把它加到他们的软件中。这时,你就可以去混淆程序,使之尽可能变得复杂难懂,使竞争对手逆向分析软件时效率很低。而如果确实怀疑某人剽窃了你的代码,本书也会教你如何使用软件“胎记”证实你的怀疑。
再比如,你的程序中包含有某段不能为人所知的代码,并且你想确保没有这段代码程序就不能正常运行。例如,你肯定不希望黑客修改程序中的软件使用许可验证代码,或者可用于解密数字版权管理系统中mp3文件的密钥。第7章将讨论多种防篡改技术,确保受到篡改的程序停止正常运行。
听说你把密钥放在可执行文件里了?这主意实在太糟糕了!以往的经验告诉我们,任何类似“不公开,即安全” 的做法最终都将以失败告终,而且不管在程序中怎样隐藏密钥,最终它都逃不出一个足够顽强的逆向分析人员的手心。当然,必须承认你的做法也还是对的。本书中介绍的所有技巧都不能保证软件能永远免于黑客的毒手。不必保证某个东西永远处于保密的状态,也不必保证程序永远处于不可能被篡改的状态,更不需要保证代码永远不会被剽窃。除非这个研究领域有什么重大的突破,否则能指望的只是延缓对方的攻击。我们的目标就是把攻击者的攻击速度减缓到足够低,使他感到攻击你的软件十分痛苦或要付出过高的代价,从而放弃攻击。也可能攻击者很有耐心地花了很长时间攻破了你的防御,但这时你已经从这个软件中赚够了钱,或者已经用上了更新版本的代码(这时他得到的东西也就一钱不值了)。
比方说,你是一个付费频道的运营商,用户通过机顶盒来观看你提供的电视节目。每个机顶盒都是带有标签的——在代码的某个位置上存放了分配给每个用户的唯一标识(ID),这样你就可以根据用户的缴费情况决定是允许还是拒绝某个特定用户观看频道里的节目。可是现在有一个黑客团伙找到并且反汇编了这段代码,发现了计算用户ID的算法,并且在网上以低廉的价格把修改用户ID的方法卖给了网民。这时你该怎么办呢?你也许想到了使用防篡改的智能卡,不过这玩意儿并不像看上去那么难破解,这将在第11章中讲解。或者你可能想到要混淆代码,使之更难以被分析。或者你也可以使用防篡改技术使程序一被修改就自动停止运行。更有可能,你会混合使用上述各种技巧来保护代码。但是尽管使用了所有技术,你还必须要知道并且必须接受,你的代码仍然可能被破解,秘密仍会泄露(在这个案例里就是机顶盒里的用户ID仍然会被篡改)这一事实。怎么会这样呢?这只是因为“不公开,既安全”这个想法在根本上就存在漏洞。不过既然本书中介绍的所有技术都不能给你一个“完美并且长期的安全保证”,那么为什么还要使用这些技术,为什么还要买这样一本书呢?答案很简单,代码能顶住黑客攻击的时间越长,订阅频道的客户就越多,同时升级机顶盒的周期也就越长,这样你赚到的钱和省下的钱也就越多。
就这么简单。
谁使用隐蔽软件
很多知名的公司都对隐蔽软件有浓厚的兴趣。事实上很难真正掌握有关技术在实践中具体被使用的程度(因为大多数公司在如何保护自己的代码一事上绝对是守口如瓶的),但是我们还是可以根据他们专利的申请和拥有情况把他们对隐蔽软件的感兴趣程度猜个八九不离十。微软公司拥有多个关于软件水印[104,354]、代码混淆[62,62,69,69,70,70,180,378]和软件“胎记”[364]技术的专利。Intertrust公司拥有大量与数字版权管理技术相关的组合式专利,包括代码混淆和代码防篡改专利。2004年,在微软与Intertrust之间的马拉松式官司落下了帷幕之后,微软向Intertrust支付了高达44亿美元的专利使用费,才获得了后者所有的专利使用许可。同年,微软也开始与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的协议被分析出来了(这一点黑客们确实也做到了,详见724节),黑客们也拿不出一个能够撼动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技术的目的在于提供一个能够抗逆向工程分析的高强度壳 ,从而最大限度地迟滞敌方对被保护软件的攻击。这样美国就有机会维持其在高科技领域的优势或者减缓其武器技术泄密的速度。最终,美军就能继续保持其技术优势,进而保证其军备的绝对优势。
这份招标文件来自于美军导d和空间程序(设计部门),专注于实时嵌入式系统的保护。我们有理由相信产生这份招标文件的原因是,美军担心射向敌方的导d由于种种原因落地后未能爆炸,使敌方有机会接触到嵌入在导d中负责引导导d飞临目标上空的控制软件。
下面是另一段引自美国国防部[115]的文字。
进行主动式软件保护 (SPI)是国防部的职责之一,它必须开发和部署相关的保护技术,以保证含有国防武器系统关键信息的计算机程序的安全。SPI提供的是一种全新的安全防护方法,它并不(像传统的安全技术那样)保护计算机或者网络的安全,而只是加强计算机程序自身的安全。这种新方法能显著提升国防部的信息安全情况。SPI的适用范围很广,从台式机到超级计算机上面所有的程序都能使用SPI技术予以保护。它是(软件保护技术中)完整的一层,是“纵深防御”的一个范例。SPI技术是对网络防火墙、物理安全等传统安全技术的一个补充,但是其实现并不依赖于这些传统的安全设备。现在SPI技术被部署在选定的HPC中心和150多家国防部机关以及其他由商业公司参与建设和维护的军事基地。广泛地部署SPI技术将会有效地增强美国和美国国防部对关键应用技术的保护。
 上面这段话说明了什么?它说明美国国防部不仅关心导d会不会掉到敌方领土上去,还关心在自己的安全系数和性能都很高的计算机中心运行的软件的安全。事实上,窃密和反窃密是防间谍机关和情报部门之间永恒的主题。比方说,一架战斗机上的某个程序需要更新一下,这时我们很可能就是用一台笔记本电脑连接到这架战斗机上进行更新 *** 作。但是万一这台笔记本电脑不慎遗失了,或者干脆就被其他国家政府使用某种方法控制了,就像里常演的那样,这时会有什么情况发生呢?对方会马上把相关的代码拿去做逆向工程分析,并把分析的结果用于改进其战斗机中所使用的软件。更有甚者,对方会悄悄地在你的软件中加上一个特洛伊木马,并让飞机在特定的时间里从天上掉下来。如果我们不能绝对保证上述这一幕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日(土拨鼠日)
PS实际上写作这本书还有第三个目的。要是在阅读本书时,你突然灵光闪现,冒出一个绝妙的主意,进而激发了你投身于隐蔽软件研究的雄心壮志,那么,亲爱的读者,我这第三个目的就算是达到了。请把你的新算法告诉我们,我们将把它加到本书的下一版里!

《图解密码技术》

目录  

第1部分 密码 1
第1章 环游密码世界 3
11 本章学习的内容 4
12 密码 4
121 Alice与Bob 4
122 发送者、接收者和窃听者 4
123 加密与解密 6
124 密码保证了消息的机密性 7
125 破译 7
13 对称密码与公钥密码 8
131 密码算法 8
132 密钥 8
133 对称密码与公钥密码 9
134 混合密码系统 10
14 其他密码技术 10
141 单向散列函数 10
142 消息认证码 10
143 数字签名 11
144 伪随机数生成器 11
15 密码学家的工具箱 12
16 隐写术与数字水印 13
17 密码与信息安全常识 14
171 不要使用保密的密码算法 14
172 使用低强度的密码比不进行任何加密更危险 15
173 任何密码总有一天都会被破解 15
174 密码只是信息安全的一部分 16
18 本章小结 16
19 小测验的答案 17
第2章 历史上的密码——写一篇别人看不懂的文章 19
21 本章学习的内容 20
22 恺撒密码 20
221 什么是恺撒密码 21
222 恺撒密码的加密 21
223 恺撒密码的解密 22
224 用暴力破解来破译密码 23
23 简单替换密码 24
231 什么是简单替换密码 24
232 简单替换密码的加密 25
233 简单替换密码的解密 26
234 简单替换密码的密钥空间 26
235 用频率分析来破译密码 26
24 Enigma 31
241 什么是Enigma 31
242 用Enigma进行加密通信 31
243 Enigma的构造 32
244 Enigma的加密 34
245 每日密码与通信密码 36
246 避免通信错误 36
247 Enigma的解密 36
248 Enigma的弱点 38
249 Enigma的破译 38
25 思考 40
26 本章小结 41
27 小测验的答案 42
第3章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密 45
31 炒鸡蛋与对称密码 46
32 本章学习的内容 46
33 从文字密码到比特序列密码 46
331 编码 46
332 XOR 47
34 一次性密码本——绝对不会被破译的密码 50
341 什么是一次性密码本 50
342 一次性密码本的加密 50
343 一次性密码本的解密 51
344 一次性密码本是无法破译的 51
345 一次性密码本为什么没有被使用 52
35 DES 53
351 什么是DES 53
352 加密和解密 54
353 DES的结构(Feistel网络) 54
354 差分分析与线性分析 60
36 三重DES 61
361 什么是三重DES 61
362 三重DES的加密 61
363 三重DES的解密 63
364 三重DES的现状 64
37 AES的选定过程 65
371 什么是AES 65
372 AES的选拔过程 65
373 AES最终候选算法的确定与AES的最终确定 66
38 Rijndael 66
381 什么是Rijndael 66
382 Rijndael的加密和解密 67
383 Rijndael的破译 71
384 应该使用哪种对称密码呢 71
39 本章小结 72
310 小测验的答案 73
第4章 分组密码的模式——分组密码是如何迭代的 75
41 本章学习的内容 76
42 分组密码的模式 77
421 分组密码与流密码 77
422 什么是模式 77
423 明文分组与密文分组 78
424 主动攻击者Mallory 78
43 ECB模式 79
431 什么是ECB模式 79
432 ECB模式的特点 80
433 对ECB模式的攻击 80
44 CBC模式 82
441 什么是CBC模式 82
442 初始化向量 83
443 CBC模式的特点 84
444 对CBC模式的攻击 84
445 填充提示攻击 86
446 对初始化向量(IV)进行攻击 86
447 CBC 模式的应用实例 86
45 CFB模式 88
451 什么是CFB模式 88
452 初始化向量 89
453 CFB模式与流密码 89
454 CFB模式的解密 90
455 对CFB模式的攻击 90
46 OFB模式 91
461 什么是OFB模式 91
462 初始化向量 92
463 CFB模式与OFB模式的对比 92
47 CTR模式 93
471 计数器的生成方法 95
472 OFB模式与CTR模式的对比 95
473 CTR模式的特点 95
474 错误与机密性 96
48 应该使用哪种模式呢 96
49 本章小结 97
410 小测验的答案 98
第5章 公钥密码——用公钥加密,用私钥解密 101
51 投币寄物柜的使用方法 102
52 本章学习的内容 102
53 密钥配送问题 102
531 什么是密钥配送问题 102
532 通过事先共享密钥来解决 104
533 通过密钥分配中心来解决 105
534 通过Diffie-Hellman密钥交换来解决密钥配送问题 106
535 通过公钥密码来解决密钥配送问题 106
54 公钥密码 107
541 什么是公钥密码 107
542 公钥密码的历史 108
543 公钥通信的流程 108
544 各种术语 110
545 公钥密码无法解决的问题 110
55 时钟运算 110
551 加法 111
552 减法 113
553 乘法 114
554 除法 114
555 乘方 118
556 对数 118
557 从时钟指针到RSA 119
56 RSA 120
561 什么是R 
 

密码学是研究编制密码和破译密码的技术科学。

研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。

依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。

密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。

密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。

它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。

它的现实研究成果,特别是各国 现用的密码编制及破译手段都具有高度的机密性。

进行明密变换的法则,称为密码的体制。

指示这种变换的参数,称为密钥。

它们是密码编制的重要组成部分。

密码体制的基本类型可以分为四种:错乱——按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替——用一个或多个代替表将明文字母或数码等代替为密文;密本——用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱——用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。

以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。

20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、脱密密钥的分离。

加密密钥是公开的,脱密密钥是保密的。

这种新的密码体制,引起了密码学界的广泛注意和探讨。

利用文字和密码的规律,在一定条件下,采取各种技术手段,通过对截取密文的分析,以求得明文,还原密码编制,即破译密码。

破译不同强度的密码,对条件的要求也不相同,甚至很不相同。

中国古代秘密通信的手段,已有一些近于密码的雏形。

宋曾公亮、丁度等编撰《武经总要》“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密本体制的特点。

1871年,由上海大北水线电报公司选用6899个汉字,代以四码数字,成为中国最初的商用明码本,同时也设计了由明码本改编为密本及进行加乱的方法。

在此基础上,逐步发展为各种比较复杂的密码。

在欧洲,公元前405年,斯巴达的将领来山得使用了原始的错乱密码;公元前一世纪,古罗马皇帝凯撒曾使用有序的单表代替密码;之后逐步发展为密本、多表代替及加乱等各种密码体制。

二十世纪初,产生了最初的可以实用的机械式和电动式密码机,同时出现了商业密码机公司和市场。

60年代后,电子密码机得到较快的发展和广泛的应用,使密码的发展进入了一个新的阶段。

密码破译是随着密码的使用而逐步产生和发展的。

1412年,波斯人卡勒卡尚迪所编的百科全书中载有破译简单代替密码的方法。

到16世纪末期,欧洲一些国家设有专职的破译人员,以破译截获的密信。

密码破译技术有了相当的发展。

1863年普鲁士人卡西斯基所著《密码和破译技术》,以及1883年法国人克尔克霍夫所著《军事密码学》等著作,都对密码学的理论和方法做过一些论述和探讨。

1949年美国人香农发表了《秘密体制的通信理论》一文,应用信息论的原理分析了密码学中的一些基本问题。

自19世纪以来,由于电报特别是无线电报的广泛使用,为密码通信和第三者的截收都提供了极为有利的条件。

通信保密和侦收破译形成了一条斗争十分激烈的隐蔽战线。

1917年,英国破译了德国外长齐默尔曼的电报,促成了美国对德宣战。

1942年,美国从破译日本海军密报中,获悉日军对中途岛地区的作战意图和 ,从而能以劣势兵力击破日本海军的主力,扭转了太平洋地区的战局。

在保卫英伦三岛和其他许多著名的历史事件中,密码破译的成功都起到了极其重要的作用,这些事例也从反面说明了密码保密的重要地位和意义。

当今世界各主要国家的 都十分重视密码工作,有的设立庞大机构,拨出巨额经费,集中数以万计的专家和科技人员,投入大量高速的电子计算机和其他先进设备进行工作。

与此同时,各民间企业和学术界也对密码日益重视,不少数学家、计算机学家和其他有关学科的专家也投身于密码学的研究行列,更加速了密码学的发展。

现在密码已经成为单独的学科,从传统意义上来说,密码学是研究如何把信息转换成一种隐蔽的方式并阻止其他人得到它。

密码学是一门跨学科科目,从很多领域衍生而来:它可以被看做是信息理论,却使用了大量的数学领域的工具,众所周知的如数论和有限数学。

原始的信息,也就是需要被密码保护的信息,被称为明文。

加密是把原始信息转换成不可读形式,也就是密码的过程。

解密是加密的逆过程,从加密过的信息中得到原始信息。

cipher是加密和解密时使用的算法。

最早的隐写术只需纸笔,现在称为经典密码学。

其两大类别为置换加密法,将字母的顺序重新排列;替换加密法,将一组字母换成其他字母或符号。

经典加密法的资讯易受统计的攻破,资料越多,破解就更容易,使用分析频率就是好办法。

经典密码学现在仍未消失,经常出现在智力游戏之中。

在二十世纪早期,包括转轮机在内的一些机械设备被发明出来用于加密,其中最著名的是用于第二次世界大战的密码机Enigma。

这些机器产生的密码相当大地增加了密码分析的难度。

比如针对Enigma各种各样的攻击,在付出了相当大的努力后才得以成功。

崽崽可以使用黑科技盗号来获得他人的个人信息。步骤如下:
1 准备所需要的设备,如电脑、移动设备等。
2 利用密码暴力破解工具,尝试不同的常用密码来尝试登录目标帐号。
3 运用数据库泄露、有效性分析、弱口令扫描工具来实施对目标帐号的侵入,并利用这些信息进行弱口令测试。
4 针对特定的应用或者服务,使用特定的工具或者方法来进行侵入,如SQL注入、XSS 攻击、DNS 欺骗等。
5 使用隐写术和加密工具将到的信息传递出去,从而实施一场成功的行为。

密码学的历史发展有哪些呢

1。

古代加密方法(手工阶段) 源于应用的无穷需求总是推动技术发明和进步的直接动力。存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。

从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。

古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。

公元前400年,斯巴达人就发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。

这是最早的密码技术。 我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。

比如:我画蓝江水悠悠,爱晚亭枫叶愁。 秋月溶溶照佛寺,香烟袅袅绕轻楼 2。

古典密码(机械阶段) 古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。

古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。 3。

近代密码(计算机阶段) 密码形成一门新的学科是在20世纪70年代,这是受计算机科学蓬勃发展 和推动的结果。快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。

计算机和电子学时代的到来给密码设计者带来了前所未有的自由,他们可以轻易地摆脱原先用铅笔和纸进行手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。 总之,利用电子计算机可以设计出更为复杂的密码系统。

密码学的历史

密码大事记 公元前5世纪,古希腊斯巴达出现原始的密码器,用一条带子缠绕在一根木棍上,沿木棍纵轴方向写好明文,解下来的带子上就只有杂乱无章的密文字母。

解密者只需找到相同直径的木棍,再把带子缠上去,沿木棍纵轴方向即可读出有意义的明文。这是最早的换位密码术。

公元前1世纪,著名的恺撒(Caesar)密码被用于高卢战争中,这是一种简单易行的单字母替代密码。 公元9世纪, 的密码学家阿尔·金迪(al' Kindi 也被称为伊沙克 Ishaq,(801~873年),同时还是天文学家、哲学家、化学家和音乐理论家)提出解密的频度分析方法,通过分析计算密文字符出现的频率破译密码。

公元16世纪中期,意大利的数学家卡尔达诺(GCardano,1501—1576)发明了卡尔达诺漏格板,覆盖在密文上,可从漏格中读出明文,这是较早的一种分置式密码。 公元16世纪晚期,英国的菲利普斯(Philips)利用频度分析法成功破解苏格兰女王玛丽的密码信,信中策划暗杀英国女王伊丽莎白,这次解密将玛丽送上了断头台。

几乎在同一时期,法国外交官维热纳尔(或译为维琼内尔) Blaise de Vigenere(1523-1596)提出著名的维热纳尔方阵密表和维热纳尔密码(Vigenerecypher),这是一种多表加密的替代密码,可使阿尔—金迪和菲利普斯的频度分析法失效。 公元1863,普鲁士少校卡西斯基(Kasiski)首次从关键词的长度着手将它破解。

英国的巴贝奇(Charles Babbage)通过仔细分析编码字母的结构也将维热纳尔密码破解。 公元20世纪初,第一次世界大战进行到关键时刻,英国破译密码的专门机构“40号房间”利用缴获的德国密码本破译了著名的“齐默尔曼电报”,促使美国放弃中立参战,改变了战争进程。

大战快结束时,准确地说是1918年,美国数学家吉尔伯特·维那姆发明一次性便笺密码,它是一种理论上绝对无法破译的加密系统,被誉为密码编码学的圣杯。但产生和分发大量随机密钥的困难使它的实际应用受到很大限制,从另一方面来说安全性也更加无法保证。

第二次世界大战中,在破译德国著名的“恩格玛(Enigma)”密码机密码过程中,原本是以语言学家和人文学者为主的解码团队中加入了数学家和科学家。电脑之父亚伦·图灵(Alan Mathison Turing)就是在这个时候加入了解码队伍,发明了一套更高明的解码方法。

同时,这支优秀的队伍设计了人类的第一部电脑来协助破解工作。显然,越来越普及的计算机也是军工转民用产品。

美国人破译了被称为“紫密”的日本“九七式”密码机密码。靠前者,德国的许多重大军事行动对盟军都不成为秘密;靠后者,美军炸死了偷袭珍珠港的元凶日本舰队总司令山本五十六。

同样在二次世界大战中,印第安纳瓦霍土著语言被美军用作密码,从吴宇森导演的《风语者》Windtalkers中能窥其一二。所谓风语者,是指美国二战时候特别征摹使用的印第安纳瓦约(Navajo)通信兵。

在二次世界大战日美的太平洋战场上,美国海军军部让北墨西哥和亚历桑那印第安纳瓦约族人使用约瓦纳语进行情报传递。纳瓦约语的语法、音调及词汇都极为独特,不为世人所知道,当时纳瓦约族以外的美国人中,能听懂这种语言的也就一二十人。

这是密码学和语言学的成功结合,纳瓦霍语密码成为历史上从未被破译的密码。 1975年1月15日,对计算机系统和网络进行加密的DES(Data Encryption Standard数据加密标准)由美国国家标准局颁布为国家标准,这是密码术历史上一个具有里程碑意义的事件。

1976年,当时在美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)两人提出了公开密钥密码的新思想(论文"New Direction in Cryptography"),把密钥分为加密的公钥和解密的私钥,这是密码学的一场革命。 1977年,美国的里维斯特(Ronald Rivest)、沙米尔(Adi Shamir)和阿德勒曼(Len Adleman)提出第一个较完善的公钥密码体制——RSA体制,这是一种建立在大数因子分解基础上的算法。

1985年,英国牛津大学物理学家戴维·多伊奇(David Deutsch)提出量子计算机的初步设想,这种计算机一旦造出来,可在30秒钟内完成传统计算机要花上100亿年才能完成的大数因子分解,从而破解RSA运用这个大数产生公钥来加密的信息。 同一年,美国的贝内特(Ben)根据他关于量子密码术的协议,在实验室第一次实现了量子密码加密信息的通信。

尽管通信距离只有30厘米,但它证明了量子密码术的实用性。与一次性便笺密码结合,同样利用量子的神奇物理特性,可产生连量子计算机也无法破译的绝对安全的密码。

2003,位于日内瓦的id Quantique公司和位于纽约的MagiQ技术公司,推出了传送量子密钥的距离超越了贝内特实验中30厘米的商业产品。日本电气公司在创纪录的150公里传送距离的演示后,最早将在明年向市场推出产品。

IBM、富士通和东芝等企业也在积极进行研发。目前,市面上的产品能够将密钥通过光纤传送几十公里。

美国的国家安全局和美联储都在考虑购买这种产品。MagiQ公司的一套系统价格在7万美元到10万美元之间。

://devcsdn/article/62/62594s。

历史上有哪些关于密码的重大历史事件

致命错误引发历史上最伟大的密码破译事件

--------------------------------------------------------------------------------

这是发生在第一次世界大战时的事情,它在世界情报学历史上占有重要地位,它使得美国举国震怒,结束中立,最终加入到对德作战的行列。

第一次世界大战期间,1917年1月17日,英军截获了一份以德国最高外交密码 0075加密的电报。这个令人无法想像的密码系统由1万个词和词组组成,与1000个数字码群对应。密电来自德国外交部长阿瑟·齐麦曼,传送给德国驻华盛顿大使约翰·冯·贝伦朵尔夫,然后继续传给德国驻墨西哥大使亨尼希·冯·艾克哈尔特。电文将在那里解密,最后要交给墨西哥总统瓦律斯提阿诺·加汉扎。

密件从柏林经美国海底电缆送到了华盛顿。英军在那里将其截获并意识到了它的重要性。英国密码破译专家开始全力以赴进行破译,然而,面对这个未曾被破译的新外交密码系统,专家们绞尽脑筋仍一筹莫展。

令英国密码破译专家意想不到的机遇降临了。接到密件的德国驻华盛顿大使约翰·冯·贝伦朵尔夫在他的华盛顿办公室里犯下了致命的错误:他们在将电报用新的0075密件本译出后,却又用老的密件本将电报加密后传送到墨西哥城。大使没有意识到,他已经犯下了一个密码使用者所能犯的最愚蠢的、最可悲的错误。

没过多久,已经破译了老密码的英方便从德国大使的糊涂 *** 作中获得了新旧密码的比较版本。英国的解码人员开始了艰苦的工作:将密件在旧密码中译出,用纸笔建构模型。随着齐麦曼的密件逐渐清晰,电报内容浮现出来,其重要性令人吃惊。

当时的情况是,尽管1915年美国的远洋客轮“露斯塔尼亚”号被德军击沉,但只要德国此后对其潜艇的攻击行动加以限制,美国仍将一直保持中立。齐麦曼的电文概括了德国要在1917年2月1日重新开始无限制海战以抑制英国的企图。为了让美国无暇他顾,齐麦曼建议墨西哥入侵美国,宣布得克萨斯州、新墨西哥州和亚利桑那州重新归其所有。德国还要墨西哥说服日本进攻美国,德国将提供军事和资金援助。

英国海军部急于将破译的情报通知美国,但同时又不能让德国知道其密码已被破译。于是,英国的一个特工成功地渗入了墨西哥电报局,得到了送往墨西哥总统的解了密的文件拷贝。这样,秘密就可能是由墨西哥方泄露的,它以此为掩护将情报透露给了美国。

美国愤怒了。每个美国人都被激怒了。原先只是东海岸的人在关心战局的进展,现在整个美国都开始担心墨西哥的举动。电文破译后6个星期,美国总统伍德罗·威尔逊宣布美国对德宣战。此时,站在他背后的是一个团结起来的愤怒的国家。齐麦曼的电文使整个美国相信德国是国家的敌人。这次破译由此也被称为密码学历史上最伟大的密码破译。

谁了解密码学的发展历史

介绍密码学的发展历史

密码学的发展历程大致经历了三个阶段:古代加密方法、古典密码和近代密码。

1古代加密方法(手工阶段)

源于应用的无穷需求总是推动技术发明和进步的直接动力。存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。

古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。

公元前400年,斯巴达人就发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。这是最早的密码技术。

我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。

比如:我画蓝江水悠悠,爱晚亭枫叶愁。秋月溶溶照佛寺,香烟袅袅绕轻楼

2古典密码(机械阶段)

古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。

3近代密码(计算机阶段)

密码形成一门新的学科是在20世纪70年代,这是受计算机科学蓬勃发展 和推动的结果。快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。计算机和电子学时代的到来给密码设计者带来了前所未有的自由,他们可以轻易地摆脱原先用铅笔和纸进行手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。总之,利用电子计算机可以设计出更为复杂的密码系统。

怎样清除宏杰加密解密历史记录加密解密的历史记录无法清除 爱问知识

1 解密方法在软件的帮助里面写得很清楚。

最后的办法是利用开始使用的时候填入的邮箱与客服联系解密事宜。 2 你去官方网站下载最新的版本,然后重新安装加密软件,就行了 3 解铃还需系铃人!一般卸载了那个软件也应该可以解密了的!如果不行,那个这个软件就是水货!建议用文件夹加密超级大师。

4 去网上下载个加密破解器。 5 以上4步都没有解密,那就没办法了。

删除软件文件也没办法恢复。联系作者吧!没有更好的办法了。

软件界面上有的。 最后说一句忠告的话:不要用免费的加密软件,作者会故意留一些缺陷或者漏洞。

历史上有哪些关于密码的重大历史事件

致命错误引发历史上最伟大的密码破译事件 -------------------------------------------------------------------------------- 这是发生在第一次世界大战时的事情,它在世界情报学历史上占有重要地位,它使得美国举国震怒,结束中立,最终加入到对德作战的行列。

第一次世界大战期间,1917年1月17日,英军截获了一份以德国最高外交密码 0075加密的电报。这个令人无法想像的密码系统由1万个词和词组组成,与1000个数字码群对应。

密电来自德国外交部长阿瑟·齐麦曼,传送给德国驻华盛顿大使约翰·冯·贝伦朵尔夫,然后继续传给德国驻墨西哥大使亨尼希·冯·艾克哈尔特。电文将在那里解密,最后要交给墨西哥总统瓦律斯提阿诺·加汉扎。

密件从柏林经美国海底电缆送到了华盛顿。英军在那里将其截获并意识到了它的重要性。

英国密码破译专家开始全力以赴进行破译,然而,面对这个未曾被破译的新外交密码系统,专家们绞尽脑筋仍一筹莫展。 令英国密码破译专家意想不到的机遇降临了。

接到密件的德国驻华盛顿大使约翰·冯·贝伦朵尔夫在他的华盛顿办公室里犯下了致命的错误:他们在将电报用新的0075密件本译出后,却又用老的密件本将电报加密后传送到墨西哥城。大使没有意识到,他已经犯下了一个密码使用者所能犯的最愚蠢的、最可悲的错误。

没过多久,已经破译了老密码的英方便从德国大使的糊涂 *** 作中获得了新旧密码的比较版本。英国的解码人员开始了艰苦的工作:将密件在旧密码中译出,用纸笔建构模型。

随着齐麦曼的密件逐渐清晰,电报内容浮现出来,其重要性令人吃惊。 当时的情况是,尽管1915年美国的远洋客轮“露斯塔尼亚”号被德军击沉,但只要德国此后对其潜艇的攻击行动加以限制,美国仍将一直保持中立。

齐麦曼的电文概括了德国要在1917年2月1日重新开始无限制海战以抑制英国的企图。为了让美国无暇他顾,齐麦曼建议墨西哥入侵美国,宣布得克萨斯州、新墨西哥州和亚利桑那州重新归其所有。

德国还要墨西哥说服日本进攻美国,德国将提供军事和资金援助。 英国海军部急于将破译的情报通知美国,但同时又不能让德国知道其密码已被破译。

于是,英国的一个特工成功地渗入了墨西哥电报局,得到了送往墨西哥总统的解了密的文件拷贝。这样,秘密就可能是由墨西哥方泄露的,它以此为掩护将情报透露给了美国。

美国愤怒了。每个美国人都被激怒了。

原先只是东海岸的人在关心战局的进展,现在整个美国都开始担心墨西哥的举动。电文破译后6个星期,美国总统伍德罗·威尔逊宣布美国对德宣战。

此时,站在他背后的是一个团结起来的愤怒的国家。齐麦曼的电文使整个美国相信德国是国家的敌人。

这次破译由此也被称为密码学历史上最伟大的密码破译。

加密的历史怎么样

《山海经》之中,雄性的性狂想,只是很小很小的一部分,实际上,这部书里充斥着大量的原始性崇拜与性启蒙。

书中的许多故事,如果出现在欧洲,出现在美洲,肯定是早就被解读出来了。但是中国是一个含蓄的国度,虽然中国人口很多,生育率居高不下,但这种事情,做是可以做的,谁要是说出来,那可不见得是好事。

所以中国人有话要说,那我们就只能听到神乎其神的神话:在西北方的海外,赤水的北岸,有座章尾山。山上住着一个神,长着人的面孔、蛇的身子而全身是红色,身子长达一千里,竖立生长的眼睛正中合成一条缝,他闭上眼睛就是黑夜、睁开眼睛就是白昼,不吃饭、不睡觉、不呼吸,只以风雨为食物。

他能照耀阴暗的地方,所以称作烛龙。 我们可以发现,神祇烛阴是男性性特征的夸张表现,而神烛龙,却是女性性特征的极度夸张。

明白了,这个怪神,虽然是对女性性特征的强烈夸张,但仍然充满了男性的狂想。 在这里,男人渴望着这样一种女人,她们不挑不拣、不嫌贫,任何时候都不会拒绝男人,这样的话,男人就不需要打拼奋斗了,不需要赚钱糊口了,只需要和女人没日没夜地欢爱下去,直到地久天长、地老天荒…… 不客气地讲,男人的性狂想走到这步,就有点距现实太远了,所以这两段禁忌性文字,即使化身于两个奇怪的神,也仍然无法登堂入室,进入大众的视线。

但是这种性狂想仍然存在,所以烛阴和烛龙这两个怪神,说不定什么时候还会蹿出来,让人们大吃一惊。除了烛阴和烛龙这两个性神之外,在《山海经》中,甚至连雷神都带有着明显的性特征。

雷泽中有一位雷神,长着龙的身子人的头,他一鼓起肚子就响雷。这个雷神的姿势好怪异……这个雷神,不过是原始社会时期的欲望之神,它很像是非洲土著部落中掌握了部落权力的酋长,将生殖器官用竹木夸张地装饰起来,天天晃荡着在女原始人面前炫耀,要命的是,这些装饰物虽然华美庞大,而且还会弄出巨大的音响效果,可是这些饰物一取掉,原始野男人就立即现了原形…… 正因为原形让人沮丧,所以原始人最爱夸张自己的突凸之物,最爱炫耀自己的性能力——现代文明人也爱这么干,到目前为止,这种夸张与炫耀,仍然是男人的一种习惯与风格。

中国古代密码

中国是世界上最早使用密码的国家之一。而最难破解的“密电码”也是中国人发明的。

反切注音方法出现于东汉末年,是用两个字为另一个字注音,取上字的声母和下字的韵母,“切”出另外一个字的读音。“反切码”就是在这种反切拼音基础上发明的,发明人是著名的抗倭将领、军事家戚继光。戚继光还专门编了两首诗歌,作为“密码本”:一首是:“柳边求气低,波他争日时。莺蒙语出喜,打掌与君知”;另一首是:“春花香,秋山开,嘉宾欢歌须金杯,孤灯光辉烧银缸。之东郊,过西桥,鸡声催初天,奇梅歪遮沟。”

这两首诗歌是反切码全部秘密所在。取前一首中的前15个字的声母,依次分别编号1到15;取后一首36字韵母,顺序编号1到36。再将当时字音的八种声调,也按顺序编上号码1到8,形成完整的“反切码”体系。使用方法是:如送回的情报上的密码有一串是5-25-2,对照声母编号5是“低”,韵母歌编号25是“西”,两字的声母和韵母合到一起了是di,对照声调是2,就可以切出“敌”字。戚继光还专门编写了一本《八音字义便览》,作为训练情报人员、通信兵的教材。

密码是一种用来混淆的技术,它希望将正常的(可识别的)信息转变为无法识别的信息。当然,对一小部分人来说,这种无法识别的信息是可以再加工并恢复的。密码在中文里是“口令”(password)的通称。登录网站、电子邮箱和银行取款时输入的“密码”其实严格来讲应该仅被称作“口令”,因为它不是本来意义上的“加密代码”,但是也可以称为秘密的号码。

制作隐藏密码的,可以采用隐写术(Steganography)的方式。具体步骤如下:
1选择一张你喜欢的作为载体。可以选择普通的照片或者是一张空白的。
2选择一种编辑软件,比如Photoshop,打开载体。
3利用编辑软件创建一个新图层,然后使用文字工具在这个新图层中输入你想要隐藏的密码或信息,使其与载体上的其他内容相似(比如字体、颜色等)。
4将这个新图层设置为不透明,使得你添加的信息与载体融为一体。
5保存修改后的载体。
完成以上步骤后,你所隐藏的密码就会被嵌入到载体中,只有知道密码并采用相应的解密方法才能够将其提取出来。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13368058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存