导航:首页 > 源码编译 > 什么是对称密钥算法

什么是对称密钥算法

发布时间:2022-05-03 05:46:51

1. 对称加密算法的加密算法主要有哪些

1、3DES算法

3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:

3DES加密过程为:C=Ek3(Dk2(Ek1(M)))

3DES解密过程为:M=Dk1(EK2(Dk3(C)))

2、Blowfish算法

BlowFish算法用来加密64Bit长度的字符串。

BlowFish算法使用两个“盒”——unsignedlongpbox[18]和unsignedlongsbox[4,256]。

BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,以64位密文的形式输出。用BlowFish算法加密信息,需要两个过程:密钥预处理和信息加密。

分别说明如下:

密钥预处理:

BlowFish算法的源密钥——pbox和sbox是固定的。我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。具体的变化算法如下:

1)用sbox填充key_sbox

2)用自己选择的key8个一组地去异或pbox,用异或的结果填充key_pbox。key可以循环使用。

比如说:选的key是"abcdefghijklmn"。则异或过程为:

key_pbox[0]=pbox[0]abcdefgh;

key_pbox[1]=pbox[1]ijklmnab;

…………

…………

如此循环,直到key_pbox填充完毕。

3)用BF_En加密一个全0的64位信息,用输出的结果替换key_pbox[0]和key_pbox[1],i=0;

4)用BF_En加密替换后的key_pbox,key_pbox[i+1],用输出替代key_pbox[i+2]和key_pbox[i+3];

5)i+2,继续第4步,直到key_pbox全部被替换;

6)用key_pbox[16]和key_pbox[17]做首次输入(相当于上面的全0的输入),用类似的方法,替换key_sbox信息加密。

信息加密就是用函数把待加密信息x分成32位的两部分:xL,xRBF_En对输入信息进行变换。

3、RC5算法

RC5是种比较新的算法,Rivest设计了RC5的一种特殊的实现方式,因此RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。

(1)什么是对称密钥算法扩展阅读:

普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由于中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱,因此NIST认定它只有80位的安全性。

对密钥选项1的已知最佳攻击需要约2组已知明文,2部,2次DES加密以及2位内存(该论文提到了时间和内存的其它分配方案)。

这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约2次加密操作找到2个目标密钥中的一个。

2. 简要说说对称加密和非对称加密的原理以及区别是什么

对称加密的原理是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。

非对称加密的原理是甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。

对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。

一、密钥不同

1、对称加密:对称加密加密和解密使用同一个密钥。

2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。

二、安全性不同

1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。

2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。

三、数字签名不同

1、对称加密:对称加密不可以用于数字签名和数字鉴别。

2、非对称加密:非对称加密可以用于数字签名和数字鉴别。

3. 对称密钥体制与公钥密钥体制的特点各自是什么各有何优缺点

对称密钥体制是加密密钥与解密密钥密码相同,两个参与者共享同一个密钥。

公钥密码体制是使用不同的加密密钥和解密密钥,加密密钥是公开信息,而解密密钥需要保密。

公钥密码体制有很多良好的特性,它不仅可以用来加密,还可以很方便的用于鉴别和数字签名。但公钥密码算法比对称密钥密码算法要慢好几个数量级。

对称密钥体制的加解密速度快且安全强度高,但密钥难管理和传送,不适于在网络中单独使用。



密钥的产生

1、选择两个大素数,p和q。

2、计算:n = p * q (p,q分别为两个互异的大素数,p,q必须保密,一般要求p,q为安全素数,n的长度大于512bit,这主要是因为RSA算法的安全性依赖于因子分解大数问题)。有欧拉函数(n)=(p-1)(q-1)。

3、然后随机选择加密密钥e,要求e和( p - 1 ) * ( q - 1 )互质。

4、最后,利用Euclid算法计算解密密钥d,满足de≡1(modφ(n))。其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。

4. 对称加密算法 是如何工作的 详解!!

对称算法(Symmetric Algorithm)就是加密密钥和解密密钥相同或能相互推导的密码算法。
秘密密钥算法或单密钥算法,要求发送者和接收者在安全通信之前,商定一个密钥。
对称算法的安全性完全依赖于密钥,加密和解密表示为:
EK(M) = C
DK(C) = M

5. 什么是对称加密算法

对称加密就是加密用的密码和解密用的密码是一样的,非对称就是加密和解密用的密钥不一样。

6. 什么是对称密码和非对密码,分析这两种密码体系的特点和应用领域

一、对称密码

1、定义:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

2、特点:算法公开、计算量小、加密速度快、加密效率高。

3、应用领域:由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。

二、非对密码

1、定义:非对称密码指的是非对称密码体制中使用的密码。

2、特点:

(1)是加密密钥和解密密钥不同 ,并且难以互推 。

(2)是有一个密钥是公开的 ,即公钥 ,而另一个密钥是保密的 ,即私钥。

3、应用领域:很好的解决了密钥的分发和管理的问题 ,并且它还能够实现数字签名。

(6)什么是对称密钥算法扩展阅读

对称加密算法特征

1、加密方和解密方使用同一个密钥;

2、加密解密的速度比较快,适合数据比较长时的使用;

3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦

7. 对称加密算法和非对称加密算法的区别是什么

(一)对称加密(Symmetric Cryptography)
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。
2000年10月2日,美国国家标准与技术研究所(NIST--American National Institute of Standards and Technology)选择了Rijndael算法作为新的高级加密标准(AES--Advanced Encryption Standard)。.NET中包含了Rijndael算法,类名叫RijndaelManaged,下面举个例子。
加密过程:

private string myData = "hello";
private string myPassword = "OpenSesame";
private byte[] cipherText;
private byte[] salt = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0 };

private void mnuSymmetricEncryption_Click(object sender, RoutedEventArgs e)
{
var key = new Rfc2898DeriveBytes(myPassword, salt);
// Encrypt the data.
var algorithm = new RijndaelManaged();
algorithm.Key = key.GetBytes(16);
algorithm.IV = key.GetBytes(16);
var sourceBytes = new System.Text.UnicodeEncoding().GetBytes(myData);
using (var sourceStream = new MemoryStream(sourceBytes))
using (var destinationStream = new MemoryStream())
using (var crypto = new CryptoStream(sourceStream, algorithm.CreateEncryptor(), CryptoStreamMode.Read))
{
moveBytes(crypto, destinationStream);
cipherText = destinationStream.ToArray();
}
MessageBox.Show(String.Format("Data:{0}{1}Encrypted and Encoded:{2}", myData, Environment.NewLine, Convert.ToBase64String(cipherText)));
}
private void moveBytes(Stream source, Stream dest)
{
byte[] bytes = new byte[2048];
var count = source.Read(bytes, 0, bytes.Length);
while (0 != count)
{
dest.Write(bytes, 0, count);
count = source.Read(bytes, 0, bytes.Length);
}
}

解密过程:

private void mnuSymmetricDecryption_Click(object sender, RoutedEventArgs e)
{
if (cipherText == null)
{
MessageBox.Show("Encrypt Data First!");
return;
}
var key = new Rfc2898DeriveBytes(myPassword, salt);
// Try to decrypt, thus showing it can be round-tripped.
var algorithm = new RijndaelManaged();
algorithm.Key = key.GetBytes(16);
algorithm.IV = key.GetBytes(16);
using (var sourceStream = new MemoryStream(cipherText))
using (var destinationStream = new MemoryStream())
using (var crypto = new CryptoStream(sourceStream, algorithm.CreateDecryptor(), CryptoStreamMode.Read))
{
moveBytes(crypto, destinationStream);
var decryptedBytes = destinationStream.ToArray();
var decryptedMessage = new UnicodeEncoding().GetString(
decryptedBytes);
MessageBox.Show(decryptedMessage);
}
}

对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

(二)非对称加密(Asymmetric Cryptography)
1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。
非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。
目前最常用的非对称加密算法是RSA算法,是Rivest, Shamir, 和Adleman于1978年发明,他们那时都是在MIT。.NET中也有RSA算法,请看下面的例子:
加密过程:

private byte[] rsaCipherText;
private void mnuAsymmetricEncryption_Click(object sender, RoutedEventArgs e)
{
var rsa = 1;
// Encrypt the data.
var cspParms = new CspParameters(rsa);
cspParms.Flags = CspProviderFlags.UseMachineKeyStore;
cspParms.KeyContainerName = "My Keys";
var algorithm = new RSACryptoServiceProvider(cspParms);
var sourceBytes = new UnicodeEncoding().GetBytes(myData);
rsaCipherText = algorithm.Encrypt(sourceBytes, true);
MessageBox.Show(String.Format("Data: {0}{1}Encrypted and Encoded: {2}",
myData, Environment.NewLine,
Convert.ToBase64String(rsaCipherText)));
}

解密过程:

private void mnuAsymmetricDecryption_Click(object sender, RoutedEventArgs e)
{
if(rsaCipherText==null)
{
MessageBox.Show("Encrypt First!");
return;
}
var rsa = 1;
// decrypt the data.
var cspParms = new CspParameters(rsa);
cspParms.Flags = CspProviderFlags.UseMachineKeyStore;
cspParms.KeyContainerName = "My Keys";
var algorithm = new RSACryptoServiceProvider(cspParms);
var unencrypted = algorithm.Decrypt(rsaCipherText, true);
MessageBox.Show(new UnicodeEncoding().GetString(unencrypted));
}

虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。为了解释这个过程,请看下面的例子:
(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。
(2) Alice的浏览器向银行的网站请求公钥。
(3) 银行将公钥发送给Alice。
(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。
(5) Alice的浏览器将加密后的对称密钥发送给银行。
(6) 银行使用私钥解密得到Alice浏览器的对称密钥。
(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。

(三)总结
(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
电脑上可以试一下超级加密3000.具有文件加密、文件夹加密、数据粉碎、彻底隐藏硬盘分区、禁止或只读使用USB存储设备等功能。加密速度块!并且还有防复制防移动防删除的功能。每次使用加密文件夹或加密文件后不用再重新加密。而且使用也非常方便,安装软件后直接对需要加密的文件夹右击,选择超级加密或文件夹保护就可以了。

8. 什么是对称加密技术

对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法, 对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES 的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。
对称加密算法在电子商务交易过程中存在几个问题:
要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥。直接的面对面协商可能是不现实而且难于实施的,所以双方可能需要借助于邮件和电话等其它相对不够安全的手段来进行协商;
密钥的数目难于管理。因为对于每一个合作者都需要使用不同的密钥,很难适应开放社会中大量的信息交流;
对称加密算法一般不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份;
对称密钥的管理和分发工作是一件具有潜在危险的和烦琐的过程。对称加密是基于共同保守秘密来实现的,采用对称加密技术的贸易双方必须保证采用的是相同的密钥,保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程序。

9. 什么是对称密码算法、非对称密码算法SSL使用的是什么算法

概括的来说:对称密码就是加密与解密用同样的密钥, ,它的速度快非对称密码,加密用的与解密用的密钥不相同,比如A,B是一对密钥,加密用A那解密就要用B, ,它的速度慢以上只是大概的说明,详细的话,可不是两三句话的内容SSL中两种技术都用,把两种技术结合,非对称技术用于加密会话密钥,会话密钥用来对称的加密我们的消息,

阅读全文

与什么是对称密钥算法相关的资料

热点内容
苹果手机怎么给我的电话加密码 浏览:667
程序反编译教学 浏览:656
ecc加密算法c语言代码 浏览:877
nvr预览提示码流已加密 浏览:740
编程怎么让飞镖掉落下来 浏览:590
如何在服务器上运行后台代码 浏览:768
安卓手机编译时间 浏览:322
php插入数据库代码 浏览:389
明日之后怎么搜索别的服务器的人 浏览:826
思迅加密锁驱动未能正常升级 浏览:141
文件夹哪个是相册跟视频 浏览:168
用函数编译计算器程序 浏览:702
保卖数码是哪个app 浏览:133
汽车级单片机特点 浏览:280
visualstudio教程pdf 浏览:644
oracle命令窗口 浏览:984
51单片机开发板应用演示 浏览:490
编译程序利用子函数计算 浏览:1003
编译terminated 浏览:988
1u服务器如何才能静音 浏览:213