kerckhoffs原理在密码锁的原理系统中的作用

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

在这一章里,我们将要讨论密码锁的原理学里的一些基本概念这些讨论将为后面嘚密码锁的原理技术相关章节的学习奠定基础,进而为贯穿于全书的诸多素材的理解提供有力支撑我们将会尽可能地避免艰深晦涩的数學表达。尽管如此这本书里仍将提供足够的细节,以便您不仅能明白“是什么”而且还会对“为什么”有一定程度的理解。
在作为引訁的本章之后接下来的关于密码锁的原理技术的几章将分别聚焦在如下4个方面的内容:
● 对称密钥加密体系
● 公开密钥加密体系
● 高级密码锁的原理分析
另外,我们还会涵盖其他一些特别的专题
说到“加密”,实际上包括如下几个基本术语:
● 密码锁的原理学——制作囷破解“秘密代码”的技艺和科学
● 加密(加密系统)——“秘密代码”的制作过程。
● 密码锁的原理分析——“秘密代码”的破解过程
● 加密——根据情况不同,这个词语可以看成上述所有术语(甚至还有诸如此类的更多说法和词汇)中任何一个的同义词具体场合的精确含義应该根据上下文来判定清楚。
“密码锁的原理”或“加密系统”用于“加密”数据对于原始的未加密的数据,我们称之为“明文”;對于加密的结果我们称之为“密文”。通过称为“解密”的过程我们把密文恢复成原始的明文。“密钥”是一个重要的概念我们用咜来配置密码锁的原理系统以实施加密和解密。
在“对称密钥”密码锁的原理体系中加密和解密使用的是同样的密钥,如图2-1 中所示的黑盒密码锁的原理系统说明了这个特性另外,还有所谓“公开密钥”加密技术的概念其中用到的加密和解密密钥是不同的。既然使用不哃的密钥公开加密密钥就成为可能的了——这就是公开密钥这个名字的由来 。在公开密钥加密中加密密钥被相应地称为“公钥”,而解密密钥则需要确保机密被称为“私钥”。在对称密钥加密中密钥被称为“对称密钥”。我们需要区分清楚这些关于密钥的术语以免混淆。

对于理想的密码锁的原理系统要能够确保:在没有密钥的情况下,想从密文恢复出明文是不可能的也就是说,即使攻击者洳Trudy,完全了解系统使用的算法以及许多其他的相关信息(本书后续将进一步细化和明确说明这些内容)她也不能在没有密钥的情况下恢复出奣文。这是加密系统的目标虽然现实往往并非能够如愿以偿。
密码锁的原理学的基本原则之一是:密码锁的原理系统的内部工作原理对於攻击者如Trudy,是完全可见的唯一的秘密就是密钥。这就是所谓的Kerckhoffs原则(译者注:在密码锁的原理学中kerckhoffs原则由Anguste kerckhoffs提出:所谓密码锁的原理系统是安全的,表明可以公开除了密钥之外的整个密码锁的原理系统的一切内容与之相对的原则或理念是security through obscurity,其强调通过对系统或算法的保密来实现安全)信不信由你,这个原则确实是因一个名叫Kerckhoffs的家伙而命名的1883年,Kerckhoffs作为荷兰语言学者和密码锁的原理专家列举了6条关于密码锁的原理设计和使用的基本原则(见参考文献[164])。如今以他的名字命名的原则指出:密码锁的原理系统决不能强制保密必须容许可以轻洏易举地落入敌方之手(见参考文献[165]),也就是说密码锁的原理系统的设计不再是秘密。
Kerckhoffs原则的关键是什么呢毕竟,对于Trudy来说如果她不知道密码锁的原理系统如何工作,攻击加密系统时就必定会更加困难那么,为什么我们会想要让Trudy的日子过得更惬意呢事实上,如果你嘚安全依赖于秘密设计的系统那么至少会有下面几个问题。首先即使可以保密,所谓“秘密”加密系统的细节也极少会长期保持机密性逆向工程可能会被用于从软件恢复出算法实现,而且即使算法嵌入到所谓的防篡改硬件中,有时也仍然会遭受逆向工程攻击进而被泄露。其次更加令人担忧的是这样一个事实:当算法本身一旦暴露在公众明察秋毫的视野之下,秘密的加密算法和系统将不再有任何咹全性可言而这样的例子由来已久,层出不穷查阅参考文献[29],你可以找到一个相对而言比较近的例子其中微软就违背了Kerckhoffs原则。
密码鎖的原理专家们不会轻易相信加密算法是值得使用的除非经受住大量密码锁的原理专家在跨度较长的一段时间内的广泛和公开的分析。朂起码的一点就是任何不满足Kerckhoffs原则的加密算法都是不可信的换句话说,对于密码锁的原理系统要假设都是有问题的,除非被证明是有效可用的
Kerckhoffs原则常常会被极大地扩展到密码锁的原理学领域之外,以至于覆盖到了安全领域的各个方面在其他相关环境里,这个基本原則往往代表了“安全设计本身应置于公众的审视之下”的理念这是基于这样一种信念:更多的“眼球”(译者注:关注)意味着更容易暴露絀更多的安全缺陷,从而最终会使得系统更加安全(因为能够弥补所暴露出的安全缺陷)虽然Kerckhoffs原则(包括在狭义的加密概念中的形式和更广义嘚扩展环境中的存在)似乎已经基本上获得了广泛认可,但是在现实世界中仍因许多实际的诱惑使得违背这一基本原则的实例时有发生,洏且几乎无一例外地伴随着灾难性的后果贯穿本书,我们将亲眼目睹几个安全失效的例子这些例子均是由于未能遵从可敬的Kerckhoffs先生的忠告而直接导致失败的。
接下来我们将简要地看看几个经典的密码锁的原理系统。虽然加密技术的历史是一个非常有吸引力的话题但是這部分素材的目的还是为一些关键概念的理解提供基础的入门性引导,而这些关键概念在现代密码锁的原理学领域也日益凸显换言之,請读者注意这些有关经典密码锁的原理系统的内容因为我们在接下来的两章里和许多案例中还将再次提及所有这些关键概念,而在后续嘚章节中我们也会持续地运用这些概念。
在本节中我们来考察4类经典的密码锁的原理,它们中的每一个都分别说明了与现代密码锁的原理系统密切相关的一个特性要讨论的第一个例子是简单替换,这是最古老的密码锁的原理系统之一它的使用可以追溯到至少两千年鉯前,这个例子也非常适合说明一些基本的攻击类型和手段在第二个例子中,我们要将注意力转向一类称为“双重换位加密法”的密码鎖的原理技术其中包含了现代密码锁的原理学中使用的一些重要概念。我们还要讨论经典的密码锁的原理本方法因为许多现代密码锁嘚原理系统都可以看成这些经典密码锁的原理本的“电子”版本。最后我们要考察所谓的一次性密码锁的原理本,这是一类可以被证明為安全的并且有实际意义的密码锁的原理系统。除此之外本书中其他的密码锁的原理系统(以及常规使用的密码锁的原理系统)都不是可無法证明为安全的。
首先我们来考察一类称为简单替换密码锁的原理的方法,我们给出一个特别简单的实现案例在这个最简单的例子Φ,消息的加密是通过将当前字母替换为在常规字母表中第n个位置之后的那个字母来完成的例如,当选择n=3时这个替换(其中n相当于密钥)洳下:

这里,我们采用如下约定:明文写成小写字母而密文写成大写字母。在这个例子里密钥可以简洁地以数字“3”来表示,因为轮換的偏移量就是事实上的密钥
用这个密钥“3”,我们就可以加密如下明文消息:
通过查找上面列表里的每一个明文字母可以逐步完成茬密文行中相应字母的替换;或者也可以简单地将每个字母逐个置换成常规字母表里该字母之后第3个位置的那个字母。对于式(2.1)中的这个特萣的明文字符串加密的结果就是:
为了解密这个简单的替换,我们需要在密文行中查看密文字母并将其置换为明文行中的对应字母;或鍺也可以将每一个密文字母向前移动三个位置(当然是在常规字母表里的位置)这个简单的“三位偏移”替换方法就是著名的凯撒密码锁的原理 。
“三位偏移”的轮换算法没什么神奇的无论多少位的轮换也都一样。如果我们限定这种简单替换密码锁的原理仅在常规字母表中進行轮换那么可能的密钥n将属于{0, 1, 2, ... , 25}这个集合的元素之一。假设Trudy截获了密文消息:
并且她猜想该密文是通过一种简单的基于“n位偏移”的替換算法加密的那么,她就可以尝试26个可能密钥里的每一个通过使用每一个假定的密钥来“解密”密文消息,并且检查所获得的假定结果明文是否有实际含义如果该消息确实是通过“n位偏移”来加密的,Trudy就完全能够找到真实的明文进而获得密钥。平均而言这大约只需经过13次尝试。
这种强力攻击就是Trudy可以经常尝试的事情之一假定Trudy拥有充足的时间和资源,她将会最终遍历到那个正确的密钥从而破解消息密文这种在所有密码锁的原理攻击中最基本的方法就是所谓的“穷举式密钥检索”。既然这种攻击常常会被使用那么要使得可能的密钥数量(译者注:密钥空间的大小)足够大,以至于对Trudy来说仅仅使用这种简单的尝试所有密钥的方法无法在任何合理的时间度量内完成,這是非常必要的(虽然有了这一切都还远远不够)
那么,多大的密钥空间算是足够大呢假设Trudy有一台高速的计算机(或者有一组计算机),计算能力是每秒钟完成240个密钥的测试 这样算来,大小为256的密钥空间将会在216秒的时长内被遍历完毕即大约耗费18个小时;而对于大小为264的密钥涳间的穷举式密钥检索,则会耗费超过半年的时间;如果密钥空间大小为2128那么遍历该空间需要超过9×1018年的漫长时间。对于现代对称密钥加密系统典型的密钥长度一般是128位或更长,由此可以提供2128或更大的密钥空间
现在,我们回来继续讨论简单替换密码锁的原理如果仅僅允许在常规字母表中轮换的方式,那么可能的密钥数量实在是太少了因为Trudy可以非常快速地完成穷举式密钥检索。那么还有什么办法能够让我们再增加密钥的数量吗?事实上完全没有必要将简单替换操作仅局限在“常规字母表中的n位轮换方式”,因为任何一种26个字母嘚排列组合都可以作为密钥例如,下面的排列组合就给出了可用于简单替换密码锁的原理的密钥这并不是基于常规字母表的轮换。

关於安全的密码锁的原理方案合理的定义不止一个。理想情况下我们当然希望能有严格的数学证明来说明针对系统不存在任何可行的攻擊,但是这样的密码锁的原理系统极其罕见并且可证明为安全的密码锁的原理方案对大部分应用来说都非常不切实际。

既然无法奢望对密码锁的原理系统的安全性进行严格证明那么我们所能够要求的就是已知著名的攻击行为在该系统上无效,即从所谓的计算不可行概念嘚含义上来思考鉴于这看起来将是最为至关重要的一个特性,我们将使用稍微有点儿不同的定义来说明我们称密码锁的原理系统是安铨的,则意味着已知的著名攻击需要耗费和穷举式密钥检索一样巨大的工作量才能破解它换句话说,尚未发现捷径攻击

请注意,根据峩们的定义拥有较少数量密钥的安全密码锁的原理系统可能比拥有较多数量密钥的非安全密码锁的原理系统更容易被攻破。虽然这看起來有悖常理但其实对这种看似荒唐的情形也能有合理的解释。我们给出的定义其依据是密码锁的原理系统永远无法提供比穷举式密钥檢索更高的安全性,因此密钥的长度可以被看成该系统安全性水平的“标签”一旦发现捷径攻击,该密码锁的原理算法就失去了确保系統能够提供密钥长度所标示的“标签”级安全水平的能力简而言之,捷径攻击的出现表明密码锁的原理系统存在设计缺陷

另外还要注意,在实践中我们必须选择安全的密码锁的原理算法(在我们所定义的安全的意义上)并且要拥有足够大的密钥空间,以便使得穷举式密钥檢索在现实中不可行当需要选择密码锁的原理系统来保护敏感数据时,上述两个因素都是需要慎重考虑的

有需要试读电子版文档的朋伖请留下邮箱,一有时间我就会发给大家的

更多图书试读内容请持续关注

整了6k字然而我发现基本概念基本沒弄清楚。

考完试了然而这份复习笔记跟考试并无关系。

有错。不全。加粗的也不是重点。

下次复习。一定记得看图。。

1. 第一个中国密码锁的原理:太公兵法

2. 第一个最大公因数密码锁的原理:豪密。

5.1除密钥均暴露,仍安全(任何不变的都会被发现)。

6. 信息安全的特点(区别于纸面安全):originalcopy无法区分、改动无痕、易于delete、取决于二进制信息而非生理物理特征;全面性(weakest link)、螺旋前进、動态、层次性、相对性

8.1 威胁的分类:自然、物理、硬件、中介(media)、泄漏、交流(communication)、个人;无意、有意。

interruption:可用性、易于检测、方法有:损坏硬件、引入噪音、删掉路由(routine)、DOS

interception:保密性、被动、难于检测、方法:抓包、wiretap窃听、链路***(link monitor)、无法被完全避免;

modification:完整性、可被防御(数字水印digital watermarking)、方法:修改数据库记录、延迟交流、修改硬件;

fabrication:真实性、与不可复制相关、方法:插入包带有假IP地址、钓鱼网站。

9.2 主动攻击难于预防但可从破坏中回复DOS:不停发SYN;重放攻击。

10. 抵御安全威胁的goal:预防(prevention)、探测、恢复;需要政策和机制;安全服务:認证、访问控制(access control)、数据保密性、完整性、不可复制、可用性

3. 分析方法:仅密文、已知(some)明文、选择明文、选择密文、相关密钥。

ciphers:一戰出现二战运用:Enigma:遵循Kerckhoffs原则,算法是物理构造Krotor的初始设定(排序、初始位置)、插线板设定。/*破解Enigma的三阶段*/破解加密的方法:查找pattern、减少dimension、暴力

1. 对称加密算法:ED相同。两次加密则复原(involution)实际代表K相同。符合Kerckhoffs原则

3. Feistel 密码锁的原理结构:a product cipher,几乎所有现代对称加密算法基于此。使用块加密且增加块长度,若完全任意映射K长度为n

3.1 扩散diffusion:迭代交换左右,密文统计特性与明文

4. DES:加密64-bit 块、用56-bit K,基于Feistel结构;强雪崩影响、反破译(只可暴力)、不安全

168。利用2312相等则退化为DES

8. 块加密的操作模式(mode of operation):描述如何应用单块操作来安全地转化夶量数据

a codebook(选择明文),重放攻击

12. 公钥应用领域:加密解密、数字签名、交换会话密钥。

13. DH算法无法抵御中间人攻击只能用于交换密鑰。/*实现方法*/

14. 消息完整性可被数字签名保证

15. 对称:快、开销小。常公钥交换密钥加密解密仍对称。

1. 数字签名的必要条件:可与文件绑萣;他人不可伪造接收方可验证;发送方不可抵赖;第三方确认以防争端;可证实发送方、时间、内容。可备份与存储易于签名。

单姠散列函数的安全性考量:primage:逆推;second-preimage:找出与给定P1映射结果相同的P2collision:制造P1P2映射结果相同

function:用于保证消息完整性。HMAC难于制造碰撞因此並不像MD5SHA1那样易于攻击。

key、只能被指定人验证、可抵赖(只要知道密钥就可伪造包括接收方)。MAC更快应用于无需抗抵赖的场合。

1. 字典攻击Dictionary attack用于攻击密码锁的原理对字典中每一个可能,进攻者计算H(word)看结果是否出现在密码锁的原理文件中。

加盐:随机选择salt与密码锁的原理一起hash,同时存储hashsalt即:同密码锁的原理可能有不同的存储形态。一次完全预计算从可推演所有密码锁的原理到只能推演一个密码锁嘚原理

4. 生物尺度的密码锁的原理,revocation是难题另外有图像密码锁的原理。

5. 生物尺度biometric identification:优点:不会遗失;缺点:设备、算法不安全、隐私

5. DAC:可授予他人自己有的权限。缺点:

6.2 Biba Model:不可上写下读即保证完整性。

channels)解决方法:认证后关闭或减速通道、检测;不可能完全消除、限淛共享资源、引入噪声。

9.3 分割会话和user可以解决单用户多账户问题

9.4 动态激活和解除角色,保证最小权限

relations):直接作用在用户的PRM、同时只能┅个,和DSD:作用于session上可以多个而不冲突。

9.7 优点:易于授权管理、加速工作需要分类、易于获得最小权限、易于工作共享不同角色执行鈈同的任务、易于文件层次管理。

10. 安全访问控制的原则:

problem、重定向到更好的网关、可连接性测试(echo/echoreply)、时间戳请求回复

12. SEQ用来检查无丢包

REQ,源地址是受害者地址终点是broadcastaddress,则每台网络上的主机都对受害者reply

cookies可确保服务器不会储存states除非客户发来至少两次信息。过程:服务器必須在cookie中存储socket

Extensions并不提供加密服务也不对抗DoS进攻。

process不受影响但传输层和应用层数据都被保护。常用于peer-to-peer连接;而tunnel mode 加密或认证整个包在新的包头附上new IP

serviceTCP来提供保密性完整性和认证服务。

SSL连接connection和会话session:连接提供了合适的安全类型点对点关系,临时每个连接依附于一次会话。會话:clientserver的关联被握手协议创建,定义一组连接可用的安全参数避免了大量的negotiation cost,不需为每次连接提供安全参数

layer:接受、加密信息(應用层到传输层),步骤:接受信息、block(fragmentation)、压缩或解压缩、计算MACHMAC值加密,加入SSLrecord

28. 握手协议:让服务器和客户双方都认证协商加密算法、消息验证码算法和密钥,在应用层数据传输前执行握手协议4阶段:establish safety negotiation, server 认证和key

Compiler:修改编译器,则编译login的时候接受a fixed password,然后修改编译器则编譯器编译出一个新的版本,extra code会自动插入重新编译编译器。

木马隐藏:RootKit主要特征:stealth。步骤:登入系统获得root权限,下载rootkit***。方法:鈈可见文件夹***black

beginning(append):增强隐蔽性因为原始程序完整,但若程序大复制代价高,且文件大小增大尤其在多重病毒下;beginning and

14. 病毒:增长通过影响其他程序;木马:孤立可执行程序,不复制;蠕虫:孤立向target system 复制自身。

18. 防御方法一:区分数据和指令,只允许写数据不允许数据执荇。但审查auditable action需要能改变数据为可执行eg. LOCK

20. 防御方法三:inhibit sharing:用多重安全机制程序在最低层,用户不可以在那一层操作

file,不久后再计算反病毒方法是查找特定的字节序列,即virus signature

viruses,壳代码下载***实际的bot它让防火墙、杀毒软件无效,记录IRCserver的位置连接并加入,需要DNSbotmaster发咘命令。

26. 每个bot可以扫描IP感染更多受害者。

31. 隐藏spam源目的:逃避黑名单

即使密码锁的原理系统中的算法為密码锁的原理分析者所知也难以从截获的密文推导出明文或密钥。
也就是说密码锁的原理体制的安全性仅应依赖于对密钥的保密,洏不应依赖于对算法的保密
只有在假设攻击者对密码锁的原理算法有充分的研究,并且拥有足够的计算资源的情况下仍然安全的密码锁嘚原理才是安全的密码锁的原理系统
一句话: “一切秘密寓于密钥之中”
对于商用密码锁的原理系统而言,公开密码锁的原理算法的优點包括:
①有利于对密码锁的原理算法的安全性进行公开测试评估;
②防止密码锁的原理算法设计者在算法中隐藏后门;
③易于实现密码鎖的原理算法的标准化;
④有利于使用密码锁的原理算法产品的规模化生产实现低成本和高性能。
但是必须要指出的是密码锁的原理設计的公开原则并不等于所有的密码锁的原理在应用时都一定要公开密码锁的原理算法。例如世界各国的军政核心密码锁的原理就都不公開其加密算法
综上,一个提供机密***务的密码锁的原理系统是实际可用的必须满足的基本要求:
①系统的保密性不依赖于对加密体淛或算法的保密,而仅依赖于密钥的安全性 “一切秘密寓于密钥之中”是密码锁的原理系统设计的一个重要原则。
②满足实际安全性使破译者取得密文后在有效时间和成本范围内,确定密钥或相应明文在计算上是不可行的
③加密和解密算法应适用于明文空间、密钥空間中的所有元素。
④加密和解密算法能有效地计算密码锁的原理系统易于实现和使用。

你对这个回答的评价是

下载百度知道APP,抢鲜体驗

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的***

参考资料

 

随机推荐