凯撒支持什么制度?
信息安全的发展历史
通信安全科学的诞生
罗马帝国的凯撒密码:可以将明文信息转换成人们无法理解的字符串,当密文到达合作伙伴时,可以很容易地恢复成原来的明文形式。凯撒密码是通过明文字母循环移位3位得到的。
1568年,L.Battista发明了多表替代密码,美国内战时盟军使用。示例:Vigenere密码和Beaufort密码
1854年,Playfair发明了多字母密码,代替了第一次世界大战中英国使用的密码。例:希尔密码,多表多字母代替密码已经成为经典密码学的主流。
密码分析(cryptanalysis)的发展:以1918 W.Friedman用重合指数破译多个表代替密码分析为里程碑。1949 C . Shannon的文章《安全系统的通信理论》发表在《贝尔系统技术杂志》上。这两项成果为密码学的科学研究奠定了基础。从艺术到科学。其实这就是通信安全科学的诞生,其中密码学是核心技术。
公钥密码学的革命
25年后的70年代,IBM的DES(美国数据加密标准)和1976的Diffie-Hellman提出了公钥密码学的思想,1977的公钥密码算法RSA为密码学的发展注入了新的活力。
公钥密码学掀起了一场革命,对信息安全做出了三大贡献:一是从计算复杂度上刻画了密码算法的强度,突破了香农只关心理论强度的局限;他把传统密码算法中两个密钥管理的机密性要求,变成了保护一个单元的机密性和另一个单元的完整性的要求。它将传统密码算法中密钥的所有权由通信双方变为单个用户,从而大大降低了密钥管理的复杂性。
公钥密码学的引入需要注意:一是密码学的研究逐渐超越了数据通信保密的范畴,开展了数据完整性、数字签名等技术的研究;第二,随着计算机和网络的发展,密码学逐渐成为计算机安全和网络安全的重要支柱,使数据安全成为信息安全的全新内容,超越了以往物理安全在计算机安全中的主导地位。
可信计算机的访问控制技术及评价标准
在1969中,兰普森提出了一个访问控制模型。
1973年,D.Bell和L.Lapadula建立了模拟军事安全战略的计算机运行模型,这是最早也是最常用的计算机多级安全模型。
1985年,美国国防部提出了基于贝尔-拉帕杜拉模型的可信计算机评估标准(通常称为《橙书》)。根据计算机系统的安全防护能力,分为8个等级。
在1987中,为了完整性保护和商业应用,提出了Clark-Wilson模型。
信息保障
1998 10 10月,美国国家安全局(NSA)发布了版本1.1,2003年2月6日,美国国防部(DOD)发布了信息安全实施令8500.2,从而信息安全成为美国国防组织开展信息化作战的既定指导思想。
IA:信息保障(IA):通过确保信息的可用性、完整性、可识别性、保密性和可否认性来保护信息系统,同时引入保护、检测和响应能力,为信息系统提供恢复功能。这是PDRR的信息安全模型。
保护保护,检测检测,反应响应,恢复恢复。
美国信息安全技术框架的进步,使人们认识到对信息安全的理解不应停留在保护的框架下,还要重视信息系统的检测和响应能力。
2003年,我国发布了《国家信息化领导小组关于信息安全的意见》,这是国家将信息安全提升到战略高度的指导性文件。
信息安全技术的研究成果;
开发各种密码算法及其应用;
DES(数据加密标准)、RSA(公钥系统)、ECC(椭圆曲线离散对数密码系统)等。
计算机信息系统的安全模型和安全评估准则:
访问监控模型、多级安全模型等。TCSEC(可信计算机系统评估准则)、ITSEC(信息技术安全评估准则)等。
加密(加密)
加密是一种手段,只有发送方和接收方可以通过重新组合信息来解码和恢复信息。
传统的加密系统是基于密钥的,是一种对称加密,即用户使用同一个密钥进行加密和解密。
目前,随着技术的发展,加密正逐渐融入系统和网络,如IETF正在开发的下一代互联网协议IPv6。硬件方面,英特尔也在开发一款用于PC和服务器主板的加密协处理器。
认证(认证)
防火墙是系统防止非法数据入侵的第一道防线,安全检查的作用是阻止非法用户。识别用户合法性的方法有很多,密码是最常用的。但是,由于许多用户使用容易猜到的单词或短语作为密码,这种方法经常失败。其他方法还包括人体生理特征的识别(如指纹),智能IC卡和u盘。
数字签名(数字签名)
数字签名可以用来证明消息确实是由发送方签署的,当它用于存储数据或程序时,可以用来验证数据或程序的完整性。
美国政府采用的数字签名标准(DSS)使用安全散列算法。利用该算法对处理后的信息进行计算,可以得到一个160位的数字串,这个数字串可以通过某种方式与信息的密钥结合,从而得到数字签名。
内容检查(内容检查)
即使有防火墙,认证和加密,人们仍然担心被病毒攻击。一些病毒通过电子邮件或用户下载的ActiveX和Java小程序传播。带病毒的小程序被激活后,可能会自动下载其他小程序。现有的反病毒软件可以清除电子邮件病毒,对付新的Java和ActiveX病毒也有一些办法,比如完善防火墙来监控小程序的运行,或者给小程序贴上标签让用户知道它们的来源。
介绍一些加密知识。
密钥加密/解密系统模型
在Diffie和Hellman在1976年发表他们的论文《密码学的新方向》[9]之前,所谓的密码学是指对称密钥密码系统。因为加密/解密使用相同的密钥,所以也称为单密钥密码系统。
这类算法历史悠久,从最早的凯撒密码到目前使用最多的DES密码算法,都属于单密钥密码系统。
通常,密钥加密系统包括以下部分:
①消息空间M(消息)
②密文空间C(密文)
③密钥空间K(密钥)
④加密算法E(加密算法)
⑤解密算法D(解密算法)
用加密密钥K1控制的加密算法对消息空间中的消息M(称为明文)进行加密,得到密文C。密文C可以通过由解密密钥K2控制的解密算法恢复成原始明文M。即:
EK1(M)=C
DK2(C)=M
DK2(EK1(M))=M
概念:
当算法的加密密钥可以由解密密钥推导出来,或者反过来,解密密钥可以由加密密钥推导出来时,这种算法称为对称算法,也叫秘密密钥算法或单密钥算法;
当加密密钥和解密密钥不同时,其中一个密钥无法从另一个密钥推导出来,这种算法称为公钥算法。
1.凯撒密码转换
更一般的移位替代密码变换是
加密:E(m)=(m+k) mod 26
解密:D(c)=(c-k)模26
2.替换密码
在排列密码中,明文和密文的字母保持不变,但顺序被打乱。在简单的垂直排列密码中,明文水平写在固定宽度的图表纸上,密文垂直读取;解密就是把密文竖着写在等宽的图表纸上,然后横着读明文。例如:
明文:加密是将数据转换成某种不可读的形式。
密文:EIF离岸价NSO DML CT raee rhmtufyeano PTT IRR Trinemiao taon nond NSOSA
20世纪40年代,香农提出了一个常用的评价概念。人们认为,一个好的加密算法应该是模糊的和扩散的。
模糊性:加密算法应隐藏所有局部模式,即语言的任何可识别字符都应模糊,加密方法应隐藏可能导致破解密钥的暗示性语言特征;
扩散性:需要加密来混合密文的不同部分,但是没有一个字符在原来的位置。
加密算法之所以容易被破解,就是因为不满足这两个香农条件。
数据加密标准
DES算法将64位明文输入块变为64位密文输出块,其密钥也是64位。它的作用是将输入的64位数据块逐位重组,将输出分成L0和R0两部分,每部分长度为32位。经过16次迭代,得到L16和r 16,作为逆置换的输入,得到密文输出。逆置换正是初始布局的逆运算。
具体方法我也说不上来图解。对不起
DES算法可以总结如下:
子密钥生成:
c[0]D[0]= PC–1(K)
对于1 & lt;= i & lt= 16
{C[i] = LS[i](C[i?1])
D[i] = LS[i](D[i?1])
k[I]= PC–2(C[I]D[I])}
加密过程:
L[0]R[0] = IP(x)
对于1 & lt;= i & lt= 16
{L[i] = R[i?1]
R[i] = L[i?1] XOR f?(R[i?1],K[i])}
c= IP?1(R[16]L[16])v
解密过程:
R[16]L[16] = IP(c)
对于1 & lt;= i & lt= 16
{R[i?1] = L[i]
l[我?1] = R[i] XOR f?(L[i],K[i])}
x= IP?1(L[0]R[0])
DES使用56位密钥加密64位数据块,并对64位数据块执行16轮编码。与每轮编码相比,从56位完整密钥中获得48位“每轮”密钥值。DES用软件解码需要很长时间,而用硬件解码速度非常快,不过好在当时大部分黑客都没有足够的设备来制造这样的硬件设备。
1977年,预计建造一台DES解密专用计算机需要2000万美元,需要12小时才能得到结果。所以DES在当时被认为是一种非常强的加密方法。但是,现在的计算机越来越快,制造这样一台特殊机器的成本已经下降到10万美元左右,所以在用它来保护十亿美元的银行间电缆时,会慎重考虑。另一方面,如果你只是用它来保护一个服务器,那么DES确实是一个很好的方法,因为黑客绝对不会为了入侵一个服务器而花那么多钱去破解DES密文。由于现在20万美元就可以制造出一台破译DES的专用计算机,所以它不再适用于需要“强”加密的场合。
DES算法的误用
DES算法具有极高的安全性。到目前为止,除了穷举搜索法攻击DES算法之外,还没有找到更有效的方法。56位密钥的穷举空间是256,这意味着如果计算机每秒检测一百万个密钥,要搜索所有密钥需要将近2285年。显然,这是很难实现的。当然,随着科技的发展,当超高速计算机出现时,我们可以考虑增加DES密钥的长度,以达到更高的保密程度。
从上面DES算法的介绍中我们可以看到,DES算法中使用的64位密钥只有56位,第8位的8位,16,24,...第64位不参与DES运算,这就给我们提出了一个应用要求,即DES的安全性是建立在除了8,16,24,...因此,在实际应用中,应避免使用8,16,24,...第64位作为有效数据位,另外56位作为有效数据位,以保证DES算法安全可靠地工作。如果不明白这一点,使用Key key的8,16,24,64位作为有效数据,并不能保证DES加密数据的安全性,对于使用DES实现保密的系统,还会造成数据被破译的危险。这是DES算法在应用中的误区,留下了被攻击和破译的巨大隐患。
A5计算方法
序列密码简介
序列密码又称流密码,是将明文分成字符(如单个字母)或其编码的基本单位(如0,1),然后与密钥流作用进行加密,用同步生成的同一密钥流进行解密。
序列密码的强度完全取决于密钥流生成器生成序列的随机性和不可预测性,核心问题是密钥流生成器的设计。实现可靠解密的关键技术是保持发送端和接收端密钥流的精确同步。
A5算法
A5算法是序列密码,是欧洲GSM标准中规定的加密算法。它用于加密数字蜂窝移动电话以及用户设备和基站之间的链路。A5算法很多,主要是A5/1和A5/2。其中A5/1是一种强加密算法,适用于欧洲。A5/2是弱加密算法,适用于欧洲以外的地区。这里将详细讨论A5/1算法。
A5/1算法的主要部件是三个线性反馈移位寄存器(LFSR)R1、R2和R3,长度分别为19、22和23。三个移位寄存器在时钟的控制下向左移位。每次左移后,寄存器的最低位由异或运算后寄存器中的一些位填充。每个寄存器的反馈多项式为:
r 1:x 18+x 17+x 16+x 13
R2:x21+x20
R3:x22+x21+x20+x7
A5算法的输入是64位会话密钥Kc和22位随机数(帧号)。
想法
IDEA是一种国际通用的数据加密算法,其原型是PES(建议加密标准)。改进后的PES算法被称为IPES,在1992中更名为IDEA(国际数据加密算法)。
IDEA是一种分组密码算法,分组长度为64位,密钥长度为128位。相同的算法可用于加密和解密。
IDEA的加密过程包括两个部分:
(1)输入的64位明文组被分成四个16子包:X1、X2、X3和X4。四个子群作为第一轮算法的输入,进行八轮迭代运算,产生64位密文输出。
(2)128位的输入会话密钥生成八轮迭代所需的52个子密钥(八轮运算每轮需要6个,4个用于输出变换)。
子密钥生成:将输入的128位密钥分成8个16子密钥(作为第一轮运算的6个密钥和第二轮运算的前2个密钥);将128位密钥循环左移25位,得到8个子密钥(前4个用于第二轮,后4个用于第三轮)。重复此过程,直到生成所有密钥。
IDEA的解密过程和加密过程是一样的,只是对子密钥的要求不同。下表给出了加密子密钥和相应的解密子密钥。
键之间满足:
Zi(r) ⊙ Zi(r)?1 = 1 mod(216+1)
Zi(r)?+?Zi(r) =0 mod (216+1)
河豚算法
Blowfish是Bruce Schneier设计的,可以免费使用。
Blowfish是16轮的分组密码。明文的分组长度为64位,使用变长密钥(从32位到448位)。Blowfish算法由两部分组成:密钥扩展和数据加密。
1.数据加密
数据加密总是需要16次迭代,如图所示。具体描述为(将明文X分成32位的两部分:xL,xR)
对于i = 1至16
{
xL = xL XOR Pi
xR = F(xL) XOR
如果
{
交换xL和xR
}
}
xR = xR XOR P17
xL = xL XOR P18
合并xL和xR
其中,P矩阵为18个32位子密钥P1,P2,…,P18。
解密过程与加密过程完全相同,只是密钥P1、P2、…、P18的使用顺序相反。
2.功能f
XL分为a、b、c、D四个8位组,分别送到四个S盒,每个S盒有8位输入和32位输出。四个S盒的输出通过一定的运算组合成一个32位输出,运算为
F(xL) =((S1,a + S2,b模232)异或S3,c) + S4,d模232
其中,Si,x表示子分组x(x=a,B,C或D)通过Si (i=1,2,3或4)盒的输出。
写的不多,不想罗列全过程,简单介绍一下就好。
GOST算法
GOST是前苏联设计的分组密码算法,被前苏联国家标准局采用。标准号码是:28147–89[5]。
GOST的消息包为64位,密钥长度为256位,还有一些附加密钥,采用32次迭代。
RC5算法
RC5是一个分组密码系统,具有可变的分组长度、密钥长度和加密迭代次数。RC5算法包括三个部分:密钥扩展、加密算法和解密算法。
PKZIP算法
PKZIP加密算法是一种密钥长度可变的序列密码算法,每次加密一个字节。它嵌入在PKZIP数据压缩程序中。
该算法使用三个32位变量key0、key1、key2和一个从key2派生的8位变量key3。Key0、key1和key2由密钥初始化,加密时这三个变量由明文更新。PKZIP序列密码的主要功能是updata_keys()。这个函数根据输入字节(通常是明文)更新三个32位变量,并获得key3。
要点:单向哈希函数
MD5计算方法
md5的全称是message-?消化?算法?5(信息汇总算法),由麻省理工学院在20世纪90年代初开发?实验室?为了什么?电脑?科学和rsa?数据?保安?公司的罗纳德?rivest开发的,md2,md3,md4开发的。其作用是在用数字签名软件签署私钥之前,将大容量信息“压缩”成保密格式。任意长度的字节串转换成一定长度的大整数)。无论是md2、md4还是md5,都需要得到一个随机长度的信息,生成一个128位的信息摘要。虽然这些?算法的结构或多或少有些相似,但md2的设计与md4和md5完全不同,因为md2是针对8位机优化的,而md4和md5是针对32位电设计的。大脑。
Rivest在1989开发了md2算法。在这个算法中,首先用数据补充信息,使信息的字节长度是16的倍数。然后,用16位测试并追加到?消息结束。并基于这个新生成的信息计算哈希值。后来,rogier和chauvaud发现,如果忽略校验和,就会发生md2冲突。md2算法的加密结果?是独一无二的——没有重复。?为了加强算法的安全性,rivest在1990中开发了md4算法。Md4算法也需要填写信息确认?安全信息的字节长度加448后能被512整除(信息字节长度mod?512?=?448)。然后,添加64位二进制消息的初始长度。信息处理成512位damg?rd/merkle迭代结构的块,每个块应该是?通过三个不同的步骤。den?Boer、bosselaers和其他人很快发现了攻击md4版本中第一步和第三步的漏洞。Dobbertin向你展示了如何使用普通的个人用电。大脑在几分钟内就发现了md4完整版本中的冲突(这个冲突其实是一个漏洞,会导致不同内容的加密但可能得到相同的加密结果)。毫无疑问,这是md4的末日?被淘汰了。?md4算法的安全性虽然有这么大的漏洞,但是对后来发展起来的几个信息安全加密算法的出现起到了重要的指导作用。除了md5,还有sha-1,ripe-md,哈弗等。?
一年后,也就是1991年,rivest开发出了技术上更成熟的md5算法。它在md4的基础上增加了“安全带”。概念。虽然md5比md4稍慢,但它更安全。该算法显然由四个步骤组成,与md4设计略有不同。在md5算法中,信息摘要的大小和填充是多少?的必要条件与md4完全相同。den?Boer和bosselaers已经发现了md5算法中的伪碰撞,但是没有其他发现的加密结果。货车?Oorschot和wiener曾经考虑过一个函数(蛮力?哈希?函数),而他们猜测一台专门为搜索md5冲突而设计的机器(这台机器在1994年的制造成本约为一百万美元)平均每24天就能找到一个?一场冲突。但是在1991到2001的10年里,并没有出现取代md5算法的md6或者其他什么新算法,所以我们可以看到这个缺陷是不存在的。太多影响md5的安全性。以上都不足以成为md5实际应用中的问题。而且,因为使用md5算法不需要支付任何版权费用,所以一般情况下?情况(非绝密应用领域。但即使用在绝密领域,md5也是一种优秀的中间技术),md5在任何情况下都应该被认为是非常安全的。
算法
MD代表消息摘要。MD5是MD4的改进版本,它为任意长度的输入消息生成128位哈希值(或消息摘要)。MD5算法如图4-2所示。
对md5算法的简单描述可以如下:md5对512位包中的输入信息进行处理,每个包被分成16个32位包。经过一系列的处理后,算法的输出由四个32位的包组成,将这四个32位的包串联起来将会生成一个128位的哈希值。?
1)附加填充位
首先,填充消息,使其长度是一个比512的倍数小64位的数字。填充方法:在消息后填充一位1,然后填充所需数量的0。填充位数的范围从1到512。
2)附加长度
将原始消息长度的64位表示形式追加到填充的消息中。当原始消息长度大于264时,用消息长度mod 264填充。此时,消息长度正好是512的整数倍。使m [0 1...n?1]是填充消息的每个字(每个字32位),n是16的倍数。
3)初始化MD缓冲区
初始化用于计算消息摘要的128位缓冲区。该缓冲器由四个32位寄存器a、b、c和d表示,寄存器的初始化值为(按低位字节优先的顺序存储):
答:01 23 45 67
乙:89 ab cd ef
C: fe dc ba 98
电话号码:76 54 32 10
4)以512位为一组处理传入消息。
这一步是MD5的主循环,包括四轮,如图4-3所示。每个周期以当前处理的512位数据包Yq和128位缓冲区值ABCD为输入,然后更新缓冲区内容。
四轮运算的区别在于每轮使用的非线性函数不同。第一轮运算前,先把A,B,C,D复制到其他变量A,B,C,D中..这四个非线性函数分别是(它们的输入/输出都是32位字):
F(X,Y,Z) = (XY)((~X) Z)
G(X,Y,Z) = (XZ)(Y(~Z))
H(X,Y,Z) = XYZ
I(X,Y,Z) = Y(X(~Z))
其中表示按位AND表示按位或;~表示按位取反;表示按位异或。
此外,如图4-4所示,表T [1...64]用64个元素也用在这一步,其中T[i]=232×abs(sin(i)),I的单位是弧度。
根据以上描述,本步骤的过程总结如下:
对于i = 0到N/16?1 do
/*每次处理16个字,即512个字节的消息包*/
/*将第I个块(512比特)复制成16个32比特的子分组到X */
对于j = 0到15做
将X[j]设为M[i*16+j]
End /*j循环*/
/*将A另存为AA,B另存为BB,C另存为CC,D另存为DD*/
AA = A
BB = B
CC = C
DD = D
/*第一轮*/
/*使[abcd k s i]指示操作。
a = b + ((a + F(b,c,d)+X[k]+T[I])& lt;& lt& lts)
其中,y < & lt& lts表示y周期左移s位*/
/*完成以下16操作*/
【ABCD 0 7 1?] [DABC 1 12 2?] [CDAB 2 17 3?] [BCDA 3 22 4?]
【ABCD 4 7 5?] [DABC 5 12 6?] [CDAB 6 17 7?] [BCDA 7 22 8?]
【ABCD 8 7 9?][DABC 9 12 10][CDAB 10 17 11][BCDA 11 22 12]
[ABCD 12 7 13][DABC 13 12 14][CDAB 14 17 15][BCDA 15 22 16]
/*第二轮*/
/*使[abcd k s i]指示操作。
a = b + ((a + G(b,c,d)+X[k]+T[I])& lt;& lt& lts)*/
/*完成以下16操作*/
[ABCD 1 5 17][DABC 6 9 18][CDAB 1 1 14 19][BCDA 0 20 20]
[DABC 10 9 22][CDAB 15 14 23][BCDA 4 20 24]
[ABCD 9 5 25][DABC 14 9 26][CDAB 3 14 27][BCDA 8 20 28]
[ABCD 13 5 29][DABC 2 9 30][CDAB 7 14 31][BCDA 12 20 32]
/*第三轮*/
/*使[abcd k s t]指示运行。
a = b + ((a + H(b,c,d)+X[k]+T[I])& lt;& lt& lts)*/
/*完成以下16操作*/
[ABCD 5 4 33][DABC 8 11 34][CDAB 11 16 35][BCDA 14 23 36]
[ABCD 1 4 37][DABC 4 11 38][CDAB 7 16 39][BCDA 10 23 40]
[ABCD 13 4 41][DABC 0 11 42][CDAB 3 16 43][BCDA 6 23 44]
[ABCD 9 4 45][DABC 12 11 46][CDAB 15 16 47][BCDA 2 23 48]
/*第四轮*/
/*使[abcd k s t]指示运行。
a = b + ((a + I(b,c,d)+X[k]+T[I])& lt;& lt& lts) */
/*完成以下16操作*/
[ABCD 0 6 49][DABC 7 10 50][CDAB 14 15 51][BCDA 5 21 52]
[ABCD 12 6 53][DABC 3 10 54][CDAB 10 15 55][BCDA 1 21 56]
[ABCD 8 6 57][DABC 15 10 58][CDAB 6 15 59][BCDA 13 21 60]
[ABCD 4 6 61][DABC 11 10 62][CDAB 2 15 63][BCDA 9 21 64]
A = A + AA
B = B + BB
C = C + CC
D = D + DD
End /*i循环*/
5)输出
从四个寄存器A、B、C和D的输出中,128位消息摘要按照低字节优先的顺序获得(即从A的低字节开始,到D的高字节结束)。
以上是对MD5算法的描述。MD5算法的运算都是基本运算,容易实现,速度快。
安全散列函数(SHA)
算法
SHA是NIST和NSA * *设计的一种安全哈希算法,用于数字签名标准DSS。SHA–1是SHA的修改版本,于1995年以FIPS出版物180–1[2]的名称发布。