论文部分内容阅读
摘要:信息的安全性关系我们个人生活、企业生存和国家的安全,然后数据是我们信息的重要载体,数据的安全不仅包括数据收集的安全、数据传输的安全,还包括数据使用的安全,本文通过对数据在传输过程中安全问题的探析,首先对数据传输过程常用的两种算法做了概述,然后通过分析RSA算法和AES算法在数据传输中的应用,最后得出RSA+AES在数据传输的过程中起到的重要的作用。希望通过算法的组合应用,在数据传输的安全性方面尝试更多的安全策略,提供更多的安全解决方案。
关键词: 数据传输;RSA;安全
一、前言
数据在网络进行传输时,需要借助一定的介质基础完成,但是在数据通过网络进行传输的过程中,难以会受到来个来自多个方面的攻击,比如网络计算机病毒、木马、流氓软件、系统漏洞等,另外还包括数据截取、中断、篡改和伪造等多种威胁。因此,为了提高数据在网络传输过程中的安全性,我们通过对数据在传输的过程中的加密方式进行探讨,特别是对于非常重要的数据,采用AES+RSA加密算法对重要数据传输加密,确保重要数据传输的安全性。
二、RSA和AES加密算法的概述
(一)RSA
1977年,三位科学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。这种算法是比较可靠的,密钥越长,它就越难破解。2048位以上的密钥能够抵抗到目前绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
(二)AES
AES是高级加密标准。它的出现主要是为了取代DES加密算法的,因为我们都知道DES算法的密钥长度是56Bit,后来出现3DES,但是还是不能满足人们对安全性的要求。于是1997年1月2号,美国国家标准技术研究所宣布希望征集高级加密标准,用以取代DES。AES也得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael算法获胜。AES密码与分组密码Rijndael基本上完全一致,但只有分组长度为128Bit的Rijndael才称为AES算法。
三、RSA+AES算法的结合应用
我们知道非对称加密和对称加密算法在不同的场景,需要两种算法的组合。
(一)针对客户端传输重要信息给服务端,服务端返回的信息不需加密的情况
客户端传输重要信息给服务端,服务端返回的信息不需加密,比如我们在绑定银行卡时,需传递用户的银行卡号信息,这就需要对银行卡号加密。具体应用是,我们使用RSA算法,客户端通过应用公钥加密,服务端使用私钥解密,最后返回一些提示信息,比如状态码、操作成功与否。这种情况仅仅使用RSA算法就可以实现。
(二)针对客户端传输重要信息给服务端,服务端返回的信息需加密的情况
客户端传输重要信息给服务端,服务端返回的信息需加密,例如客户端登录的时候,传递用户名和密码等资料,需要进行加密,服务端验证登录信息后,返回令牌token需要進行加密,客户端解密后保存,这种情况我们就需要通过RSA和AES两种算法相结合。
1、RSA算法的应用
(1)生成RSA的公钥和私钥
我们通过RSA算法生成密码对,生成公钥和私钥,我们可以运用不同的工具生成公钥和私钥。
通过这种方式,我们可以生成公钥和私钥,其中公钥可以存放在客户端,可以让任何人知道。私钥一定要存放在服务器端,妥善保管,避免私钥的泄露。如果发生泄露,可以重新生成公钥和密钥。
(2)公钥加密,私钥解密
在客户端对重要信息加密,比如银行卡号,使用RSA加密,调用RSAUtils的encryptByPublicKey()方法。在服务端,可以使用RSAUtils的decryptByPrivateKey()方法进行解密。
2、AES算法的应用
(1)AES算法的加密
在客户端进行AES加密,调用AESUtils中的generateKey()方法,随机产生一个密钥,用于对数据进行加密。
(2)AES算法的解密
在服务端进行AES解密,由于AES属于对称算法,加密和解密的密钥一致,这就需要再传输的过程中用密钥+密文的方式。
3、RSA+AES算法的应用
这里我们通过客户端的身份信息的加密,密文的传输,以及密钥的解密为例,说明RSA+AES算法的应用。
(1)对身份信息的传输,在客户端用RSA+AES算法加密:首先客户端随机生成AES的密钥,然后对身份证信息进行AES加密,最后在客户端通过RSA算法对AES密钥加密,这里的加密是应用RSA生成的公钥进行加密。
(2)数据的传输,通过加密的AES密钥即使被黑客截获也是很难破解的。
(3)对身份信息的接受和解密:在服务器端,我们使用RSA + AES对重要信息进行解密。这里的解密就是用RSA算法生成的私钥对AES密文进行解密,获得密钥原文,利用密钥原文对身份信息进行解密,获得原始身份信息。
四、结论
在数据的传输过程中,我们经常会采用AES算法、RSA算法或者两者结合的现象,比如在现实开发中,服务端有时也需要向客户端传递重要信息,比如登录的时候,返回token给客户端,作为令牌,这个令牌就需要进行加密,原理同上,最后多一步就是将解密后的AES密钥,对将要传递给客户端的数据token进行AES加密,返回给客户端,由于客户端和服务端都已经拿到同一把AES钥匙,所以客户端可以解密服务端返回的加密后的数据。如果客户端想要将令牌进行保存,则需要使用自己定义的默认的AES密钥进行加密后保存,需要使用的时候传入默认密钥和密文,解密后得到原token。
利用AES+RSA算法,具有这样的优势,效率比较高,如果仅用RSA算法对所有数据加密,效率低,耗时多,如果利用两者结合,效率会比较高。
胡运江 重庆三峡学院
关键词: 数据传输;RSA;安全
一、前言
数据在网络进行传输时,需要借助一定的介质基础完成,但是在数据通过网络进行传输的过程中,难以会受到来个来自多个方面的攻击,比如网络计算机病毒、木马、流氓软件、系统漏洞等,另外还包括数据截取、中断、篡改和伪造等多种威胁。因此,为了提高数据在网络传输过程中的安全性,我们通过对数据在传输的过程中的加密方式进行探讨,特别是对于非常重要的数据,采用AES+RSA加密算法对重要数据传输加密,确保重要数据传输的安全性。
二、RSA和AES加密算法的概述
(一)RSA
1977年,三位科学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。这种算法是比较可靠的,密钥越长,它就越难破解。2048位以上的密钥能够抵抗到目前绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
(二)AES
AES是高级加密标准。它的出现主要是为了取代DES加密算法的,因为我们都知道DES算法的密钥长度是56Bit,后来出现3DES,但是还是不能满足人们对安全性的要求。于是1997年1月2号,美国国家标准技术研究所宣布希望征集高级加密标准,用以取代DES。AES也得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael算法获胜。AES密码与分组密码Rijndael基本上完全一致,但只有分组长度为128Bit的Rijndael才称为AES算法。
三、RSA+AES算法的结合应用
我们知道非对称加密和对称加密算法在不同的场景,需要两种算法的组合。
(一)针对客户端传输重要信息给服务端,服务端返回的信息不需加密的情况
客户端传输重要信息给服务端,服务端返回的信息不需加密,比如我们在绑定银行卡时,需传递用户的银行卡号信息,这就需要对银行卡号加密。具体应用是,我们使用RSA算法,客户端通过应用公钥加密,服务端使用私钥解密,最后返回一些提示信息,比如状态码、操作成功与否。这种情况仅仅使用RSA算法就可以实现。
(二)针对客户端传输重要信息给服务端,服务端返回的信息需加密的情况
客户端传输重要信息给服务端,服务端返回的信息需加密,例如客户端登录的时候,传递用户名和密码等资料,需要进行加密,服务端验证登录信息后,返回令牌token需要進行加密,客户端解密后保存,这种情况我们就需要通过RSA和AES两种算法相结合。
1、RSA算法的应用
(1)生成RSA的公钥和私钥
我们通过RSA算法生成密码对,生成公钥和私钥,我们可以运用不同的工具生成公钥和私钥。
通过这种方式,我们可以生成公钥和私钥,其中公钥可以存放在客户端,可以让任何人知道。私钥一定要存放在服务器端,妥善保管,避免私钥的泄露。如果发生泄露,可以重新生成公钥和密钥。
(2)公钥加密,私钥解密
在客户端对重要信息加密,比如银行卡号,使用RSA加密,调用RSAUtils的encryptByPublicKey()方法。在服务端,可以使用RSAUtils的decryptByPrivateKey()方法进行解密。
2、AES算法的应用
(1)AES算法的加密
在客户端进行AES加密,调用AESUtils中的generateKey()方法,随机产生一个密钥,用于对数据进行加密。
(2)AES算法的解密
在服务端进行AES解密,由于AES属于对称算法,加密和解密的密钥一致,这就需要再传输的过程中用密钥+密文的方式。
3、RSA+AES算法的应用
这里我们通过客户端的身份信息的加密,密文的传输,以及密钥的解密为例,说明RSA+AES算法的应用。
(1)对身份信息的传输,在客户端用RSA+AES算法加密:首先客户端随机生成AES的密钥,然后对身份证信息进行AES加密,最后在客户端通过RSA算法对AES密钥加密,这里的加密是应用RSA生成的公钥进行加密。
(2)数据的传输,通过加密的AES密钥即使被黑客截获也是很难破解的。
(3)对身份信息的接受和解密:在服务器端,我们使用RSA + AES对重要信息进行解密。这里的解密就是用RSA算法生成的私钥对AES密文进行解密,获得密钥原文,利用密钥原文对身份信息进行解密,获得原始身份信息。
四、结论
在数据的传输过程中,我们经常会采用AES算法、RSA算法或者两者结合的现象,比如在现实开发中,服务端有时也需要向客户端传递重要信息,比如登录的时候,返回token给客户端,作为令牌,这个令牌就需要进行加密,原理同上,最后多一步就是将解密后的AES密钥,对将要传递给客户端的数据token进行AES加密,返回给客户端,由于客户端和服务端都已经拿到同一把AES钥匙,所以客户端可以解密服务端返回的加密后的数据。如果客户端想要将令牌进行保存,则需要使用自己定义的默认的AES密钥进行加密后保存,需要使用的时候传入默认密钥和密文,解密后得到原token。
利用AES+RSA算法,具有这样的优势,效率比较高,如果仅用RSA算法对所有数据加密,效率低,耗时多,如果利用两者结合,效率会比较高。
胡运江 重庆三峡学院