• 加密技术



    引入:


    随着计算机技术和微电子技术的发展,由于互联网本身的不安全性,我们不仅需要对口令加密,有时也需要对网络上传输的文件进行加密.加密作为保障数据安全的一种方式,加密技术通常分为两大类:“对称式”和“非对称式”。

     

    对称密码(置换和代换)


    如图:


    X:为明文,算法的输入

    Y:  通过密钥K,加密后的密文

    K:为密钥

    对称密码单密密码或传统密码):发送方和接收方使用相同的密钥


    步骤:

    1,加密算法根据输入信息X和密钥K,生成密文Y (具体的函数由密钥K的值决定)

    其中要通信的双方持有相同的密钥,通过安全通道传递.

    2,到达目的地后,通过密钥K解密即可得到明文.

     

    使用最广泛的加密体制是数据加密标准(DES-Data Encryption Standard)使用64位分组长度和56为密钥长度.其他常见的对称加密算法:三重DES,高级加密标准(AES-Advanced Encryption Standard),Blowfish算法,RC5算法.


    缺点:

    通信双方事先对密钥达成一致协议在.现实中,未见过面的双方使用应用对称密钥密钥进行通信.解决方案-使用双方都信任的密钥分发中心KDC(key Distribution Center).

     

     

    公钥密码(基于数学函数的算法)


    如图:


     

    非对称密码(双钥密码或公钥密码):收发双方使用不同的密钥。(仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的)


    步骤:

    1,每一用户产生一对密钥,用来加密和解密消息

    2,每一用户将其中一个密钥存放在公开的寄存器或其他可访问的文件中,该密钥称为公钥,另一密钥是私有的.

    3,甲发送消息给乙,则甲用乙的公钥对消息加密

    4,乙收到消息后,用自己的私钥对消息解密.

     


     

      对于公钥加密,通信实体必须先交换公共密钥.一个用于可以通过很多方式公布它的公共密钥,例 如在个人网   页上,但是这种简单的方式可能会遭到第三方的主动攻击,解决办法-认证中心CA(Certification Authority)


     

        RAS算法

      第一个既能用于数据加密也能用于数据签名的算法.以发明者的名字命名,采用的分组密码。其他的公钥加密   算法:ElGamal算法(数据加密,数据签名),背包加密算法

     


    对比:

     

    对称加密体制的优缺点: 


    优点:

              加密速度快,保密度高。 

    缺点: 

    1.密钥是保密通信的关键,发信方必须安全、妥善的把密钥送到收信方,不能泄露其内容,密钥的传输必须安全,如何才能把密钥安全送到收信方是对称加密体制的突出问题。 

    2. n个合作者,就需要n不同的密钥,如果n个人两两通信需要密钥数量n(n-1),使得密钥的分发复杂。即,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。 

    3.通信双方必须统一密钥,才能发送保密信息,如果双方不相识,这就无法向对方发送秘密信息了。 

    4.难以解决电子商务系统中的数字签名认证问题。对开放的计算机网络,存在着安全隐患,不适合网络邮件加密需要。 

        

     

    非对称加密体制的优缺点:


    缺点: 

         加密算法复杂,加密和解密的速度比较慢。 

    优点: 

    1.公钥加密技术与对称加密技术相比,其优势在于不需要共享通用的密钥。  

    2.公钥在传递和发布过程中即使被截获,由于没有与公钥相匹配的私钥,截获的公钥对入侵者没有太大意义。

    3.密钥少便于管理,N个用户通信只需要N对密钥,网络中每个用户只需要保存自己的解密密钥。 

    4.密钥分配简单,加密密钥分发给用户,而解密密钥由用户自己保留。

     

    总结:


    通过我们的了解,对称加密的实现比较简单,但是安全性不是很高,一般用在对安全要求级别不是很高的情况下,但是非对称加密比较复杂,但是安全性很高,在实际应用中需要我们综合利弊考虑.




  • 相关阅读:
    MarkDown语法
    AxureRP 序列号
    数据库选型相关
    linux 防火墙
    SpringMVC控制器方法参数传入的ModelMap 和Model类型有啥区别
    2017中国软件技术大会参会总结
    SpringMVC的Model ModeMap ModelAndView @ModelAttribute @SessionAttribute区分
    mybatis调用oracle存储过程 out游标类型参数 如何赋给java map
    mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析
    mybatis 调用oracle存储过程如何返回out参数值
  • 原文地址:https://www.cnblogs.com/pangblog/p/3329081.html
Copyright © 2020-2023  润新知