数据有哪些安全需求?
自人类社会出现战争便产生了密码 ,Phaistos圆盘,一种直径约为
160mm的Cretan-Mnoan粘土圆盘,
始于公元前17世纪。表面有明显字间
空格的字母,至今还没有破解。
1834年,伦敦大学的实验物理学教授惠斯顿发明了电机,这
是通信向机械化、电气化跃进的开始,也为密码通信采用在线
加密技术提供了前提条件。
两次世界大战大大促进了密码学的发展。转轮密码机ENIGMA(恩尼格码),由Arthur Scherbius于1919年发明,英国从1942年2月到12月都没能解读德国潜艇的信号。
1949年香农发表了一篇题为《保密系统的通信理论》
的著名论文,该文首先将信息论引入了密码,从而
把已有数千年历史的密码学推向了科学的轨道,奠
定了密码学的理论基础。
密码学是关于加密和解密变换的一门科学,是保护数据和信息的有力武器。
密码是什么? 密码就是变换。 变换是什么?变换是一种算法实现过程。
谁来做变换?变换可以由硬件和软件实现。(人、器件、计算机)
密码的概念 “密码”与“口令” 的区别。大家似乎很熟悉“密码”一词,日常生活中登录各种账户要输入“密码”,银行ATM取款要输入“密码”。其实,严格来讲这里所谓的密码应该仅被称作“口令”(Password),因为它不是本来意义上的“加密代码”,而是用于认证用户的身份,关于口令更多的相关知识将在后续的身份认证安全中介绍。
在保密通信过程中,发送方将明文通过加密,使得密文只有合法的接收方才能通过相应的解密得到明文。
攻击者即使窃听或截取到通信的密文信息也无法还原出原始信息。
保密通信中,通信双方要商定信息变换的方法,即加密和解密算法。研究把明文信息变换成不能破解或很难破解的密文的技术,称为密码编码学(Cryptography)
研究分析破译密码,从密文推演出明文或相关内容的技术,称为密码分析学(Cryptanalysis)。
公元前6年的古希腊人可能是最早有意识使用一些技术来加密信息的,他们使用一根叫scytale的棍子,送信人先绕棍子卷一张纸条,然后把要加密的信息写在上面,接着打开纸送给收信人。如果不知道棍子的宽度是很难解密里面内容的。在这个例子中,scytale棍子可以理解成是一种加密算法,但如果暴露了这根棍子,也就没有秘密可言了。
如果算法的保密性是基于保持算法的秘密,这种算法称为受限算法。
受限算法的安全问题
按照现在的标准,受限算法的保密性已远远不够。大的或经常变换的组织不能使用它们,因为每有一个用户离开这个组织或其中有人无意暴露了算法的秘密,这一密码算法就得作废了。更糟的是,受限密码算法不可能进行质量控制或标准化。每个组织必须有他们自己的唯一算法,这样的组织不可能采用流行的硬件或软件产品。密码学家用“密钥”解决了这个问题。
如图所示,密钥K(Key)是指在密码算法中引进的控制参数,对一个算法采用不同的参数值,其解密结果就不同。加密算法的控制参数称为加密密钥,解密算法的控制参数称为解密密钥。
目前已经公开的密码算法要超过100多个,
在此简单介绍几种常用的典型密码算法。
2.3.1 对称密钥密码技术
① 替代(替换)密码和转置(变位)密码
② DES
③ AES
• 穷举攻击又称作暴力(Brute Force)攻击,是指密码分析者用试遍所有密钥的方法来破译密码。
• 例如凯撒密码,攻击者就可以通过穷举密钥1~25来尝试破解。
• 统计分析攻击是指密码分析者通过分析密文的统计规律来破译密码。
• 实际上,凯撒密码这种字母间的变换并没有将明文字母出现的频率掩藏来,很容易利用频率分析法进行破解。
• 所谓频率分析,就是基于某种语言中各个字符出现的频率不同,表现出一的统计规律,这种统计规律可能在密文中得以保存,从而通过一些推测和验证过程来实现密码的分析。
• DES(Data Encryption Standard):由IBM公司研制的,1977年被美国政府采纳作为非绝密信息的正式标准,曾为加密算法的标志。
• 明文按64比特块加密,生成64 bit的密文,此算法有一个56 bit的密钥作为参数(另加8 bit的奇偶位,每隔7bit设置1bit的错误检查位)
• DES被认为是最早广泛用于商业系统的加密算法之一。
• 由于DES设计时间较早,且采用的56位密钥较短,因此已经发掘出一系列用于破解DES加密的软件和硬件系统。
• DES不应再被视为一种安全的加密措施。而且,由于美国国家安全局在设计算法时有介入,因此很多人怀疑DES算法中存在后门。
让DES更加安全:
(1)使用三重DES
(2)使用AES
• 2001年11月, (美国)国家标准技术研究所(NIST)选择Rijndael作为美国政府加密标准(AES)的加密算法,AES取代早期的数据加密标准(DES)。Rijndael由比利时计算机科学家Vincent Rijmen和Joan Daemen开发。
• AES的选定是对全世界公开的,对此密码算法的评审并非由NIST完成,而是由全世界的密码专家与企业共同完成的。像这样通过竞争来实现标准化,正是密码算法选定的正确方式
AES(Advanced Encryption Standard) Rijindael算法之所以最后当选,是因为它集安全性、效率、可实现性及灵活性于一体。AES已经成为对称加密算法中最流行的算法之一。
分块长度一般为128比特位,密钥长度可以是128/192/256位。根据密钥的长度,算法分别被称为AES-128、AES-192和AES-256。
密钥配送问题最简单的解决方式。但有一定的局限性。在人数很多的时候,密钥数量急剧增多,会产生管理问题。
需要加密通信时,KDC生成一个通信密钥,每个人只要与KDC事先共享密钥就可以了
在Diffie-Hellman密钥交换中,进行加密的双方需要事先交换一些信息,而这些信息即使被别人窃听到也没有问题。根据所交换的信息,双方可以各自生成相同的密钥,而窃听者却无法生成相同的密钥。
方法4:通过公钥密码解决
产生原因:
Ⅰ、由于对称密钥密码体制的密钥分配问题
Ⅱ、另一是由于对数字签名的需求。
–非对称密钥就是加密和解密不是同一个密钥。 – 加密密钥可以公开(公钥),实际也可做解密。
– 解密密钥不公开(私钥),当然也可以做加密。
–即一个进行加密,一个就进行解密。通常公钥用于
加密,私钥用来解密。这样其他人就不能解开信息。
– 每个通信方只需一对密钥( key pair) ,就可以与多
个其它方进行通信。明显比对称密钥涉及到的密钥
数少得多。
• 1977年,Rivest、Shamir和Adleman第一次实现了公钥密码体制,称为RSA算法。
• RSA算法是第一个能同时用于加密和数字签名的算法,易于理解和操作。
• 它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决。
RSA公钥密码算法是目前应用最广泛的公钥密码算法之一。同时,RSA是研究得最深入的公钥算法,从提出到现在已有四十多年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是当前最优秀的公钥方案之一。RSA可以说是现在公钥密码的事实标准。
• 最近几年,为了安全使用RSA,RSA中密钥的长度在不断增加,加大了RSA应用处理负担,这对于那些进行大量安全交易的电子商务网站来说更是如此。
• 因此,在实际应用中,RSA算法很少用于加密大块的数据,通常在混合密码系统中用于加密会话密钥,或者用于数字签名和身份认证。
• 椭圆曲线公钥密码算法是RSA算法的强有力的竞争者。
• 与RSA相比,椭圆曲线密码能用更少的密钥长度获得更高的安全性,而且处理速度快,存储空间占用少,带宽要求低。
• 它在许多计算资源受限的环境,如移动通信、无线设备等,得到广泛应用
使用同样硬件实现,DES比RSA快大约1000倍。
• 在一些智能卡应用中也采用了RSA算法,速度都比较慢。
• 软件实现方法的速度要更慢一些,这与计算机的处理能力和速度有关。同样使用软件实现,DES比RSA快大约100倍。