对称加密算法
对称加密算法在加解密时使用相同的密钥,主要用于保证数据的机密性。最具代表性的算法是IBM在20世纪70年代提出的des(数据加密标准)算法。在此基础上,提出了三重des (triple des)、随机化des (rds)、idea(国际数据加密算法)、广义des(广义des)、新des、blowfish、feal和rc5等多种改进的des算法。2001年,美国国家标准与技术研究所发布了高级加密标准(AES),取代DES成为对称密钥加密中最流行的算法之一。
对称加密算法具有计算成本低、加密速度快的优点,适用于小型或海量数据的加密。它是目前信息加密的主要算法。
其缺点是双方使用同一个密钥,很难保证双方密钥的安全性。当关键数据量增加时,密钥管理会给用户带来负担;此外,它只适用于加密和解密数据,以提供数据机密性。它不适用于分布式网络系统,密钥管理困难,成本高。
不对称密码算法
非对称加密算法也叫公钥算法,它的加密和解密是相对独立的,使用不同的密钥。主要用于身份认证、数字签名等信息交换领域。RSA是公钥密码系统算法中最著名的代表,除了背包密码、DSA、McEliece密码、Diffe _ Hellman、Rabin、零知识证明、椭圆曲线、Eigamal算法等。非对称加密算法的优点是能够适应网络开放性的要求,密钥管理问题相对简单,可以方便地实现数字签名和验证。其缺点是算法复杂,数据加密率低。然而,对称加密算法和非对称加密算法都有密钥泄漏的风险。所以Riverst在1989年开发了无密钥的MD2算法,由此引出了散列算法(也称散列函数)的研究,即将任意长的输入消息串变为固定长的无密钥输出串,过程是单向的,不可逆的。流行的算法有MD5、SHA-1、RIPEMD、HAVAL。哈希算法没有密钥存储和分发问题,因此非常适合在分布式网络系统中使用。但由于加密计算的复杂性,通常只在数据有限的情况下使用,如注册系统中广泛使用的密码加密、软件寿命加密等。数据加密技术可以保证最终数据的准确性和安全性,但计算开销相对较高,加密不能阻止数据流向外部。所以加密本身并不能完全解决保护数据隐私的问题。数据加密算法作为隐私保护的关键技术,在大数据时代将着重于对现有算法的改进。对称加密算法和非对称加密算法综合使用。随着新技术的出现,新的加密算法将随着新技术的发展而发展。
对称加密和非对称加密分为国际算法和国家秘密算法。
非对称加密:RSA(国际算法),SM2(国家秘密算法)
对称加密:DES(国际算法),SM4(国家秘密算法)
以RSA加密流程为例
RSA的公钥和私钥的组成,以及加密和解密的公式见下表:
素数是一个整数,除了它自己和1之外,不能表示为其他任何两个整数的乘积。
两个公约数只有1的数叫做素数。
设m可被n整除,只取余数作为结果,这叫模运算。
步骤如:
(1)设计公钥和私钥(e,n)和(d,n)。
设p=3,q=11,得到n = p×q = 3×11 = 33;f(n)=(p-1)(q-1)= 2×10 = 20;E=3,(3和20为素数),那么e×d≡1 modf(n),即3×d≡1 mod 20。
d的值怎么取?可以通过试算来搜索。查看试验结果
通过试算,我们发现当d=7时,e×d≡1 mod f(n)的同余方程成立。因此,d=7。所以我们可以设计一对公钥私钥,加密密钥(公钥)为KU=(e,n)=(3,33),解密密钥(私钥)为KR =(d,n)=(7,33)。
(2)英语数字化。
将明文信息数字化,并在每个块中分组两个数字。假设明文英文字母编码表按字母顺序排列,如所示
分组密钥的明文信息为11、05、25。
(3)明文加密
用户加密密钥(3,33)将数字化的明文分组信息加密成密文。根据C≡Me(mod n),对应的密文信息是11,31,16。
(4)密文解密。
用户b收到密文,如果解密,只需要计算,即:
用户b得到的明文信息是:11,05,25。根据上面的编码表,翻译成英文,我们恢复后就得到原来的“密钥”。
RSA的缺点:
1.生成密钥非常麻烦,受限于素数生成技术,很难一次实现一个秘密。
2.数据包长度太大。为了保证安全性,n必须至少为600位,这使得运算成本非常高,特别慢,比对称密码算法慢几个数量级;随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,而加密大量数据则依赖于对称密码算法。
1.《非对称加密算法 对称加密算法和非对称加密算法》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《非对称加密算法 对称加密算法和非对称加密算法》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/1405289.html