码迷,mamicode.com
首页 > 其他好文 > 详细

系统安全之数据加密解密

时间:2018-04-05 23:12:44      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:数据加密解密

1.为什么要进行数据加密?

  若不对数据加密,难免在进程间通信时,会有第三者窃听甚至修改通信数据;因此为了更好的确保数据的机密性,完整性,需要对数据加密。

2.加密方案组成

    加密算法及协议

    加密密钥

3.常用的数据加密算法

    1.对称加密算法:

        特点:加密密钥和解密密钥相同(秘钥长度一般为56bits,128bits, 192bits, 256bits)

           主流的加密算法

            DES

            3DES

            AES

            TWOFISH

            ....

        其他特性:    

           1.对于一对通信主机,需要保证密钥的唯一性

           2. 会对原始的数据分割成固定块大小逐个加密

           3.加密和解密的速度非常快(加密密钥的长度比较短)

        缺陷:

           1.因为需要保证密钥的唯一性,当一台主机要和多台主机通信时,需要拥有大量的密钥

           2.密钥需要一台主机发送给另一台主机,途中很难保证密钥安全,所以密钥分发困难

    2.非对称的加密算法(也叫公钥加密算法)

        特点:密钥不同;由私钥和用私钥抽取生成的公钥组成

            私钥:由特定的工具生成,仅由使用者自己保存,需要保证一定的私密性(512bits, 1024bits, 2048bits, 4096bits, 8192bits, 16384bits)

            公钥:由特定的工具,从私钥中抽取,抽取的其中不重要的一部分,可以公开

            主流的加密算法

                RSA:加密,数字签名;

DSA:数字签名算法;

Elgamal:

        其他特性:

                1.在加密和解密的时候,私钥加密的数据只能其对应的公钥才能解开,公钥加密的数据只能对应的私钥才能解开

                 2.私钥长度比较长,加密后的数据更安全

        缺陷:

                因为秘钥太长,加密数据会消耗较多的系统资源;所以很少用来加密大量数据

        公钥加密的用途

                1.密钥交换:发送方用接收方的公钥去加密自己的密钥,接收方收到后可以用自己的私钥解密

                2.数字签名:用自己的私钥加密数据,然后将公钥发送给接收方,让接收方解密


        单向加密算法

只能加密不能解密,又称为"数据指纹提取";数据指纹即数据的特征码;

主流的单向加密算法:

md5:Message Digest version 5,信息摘要算法第5版;

128bits定长输出;

sha系列:Security Hash Algorithm,安全的哈希算法;

sha-1:160bits定长输出;

sha224:224bits定长输出;

sha256:256bits

sha384:384bits

sha512:512bits

                特性:

                    1.定长输出:无论加密的明文有多长,输出都是定长的

                    2.雪崩效应:若明文有一丝变化,其加密后内容,差别很大

4.如何在通信时加密数据,使通信更为安全?

     1.发送方先用单向加密抽出数据中的一部分加密,得到结果称为特征码;同时用自己的私钥加密特征码

     2.发送方用对称加密去加密数据;同时用接收方的公钥加密对称密钥

     3.接收方用发送方的公钥解密特征码,认证发送方

     4.接收方用自己的私钥解密对称密钥,随后用解密出来的密钥解密数据

     5.收到数据后,再用单向加密获得特征码,与之前得到的特征码按位对比,确保数据信息的完整性



系统安全之数据加密解密

标签:数据加密解密

原文地址:http://blog.51cto.com/wangchaode/2095140

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!