zoukankan      html  css  js  c++  java
  • 加密小史


    China-American
    小C和小A明文通信。
    1. 明文通信

    明文通信的问题:通信内容有可能被截获,以至于被偷窥,被篡改。


    2.对称加密通信

    加密特点:
    (1)加解密公用一个密钥。
    (2)密钥只允许通信双方知道。

    对称加密的问题:密钥需要被传递,密钥密钥有可能被截获,导致密文可能被解密,被偷窥,被篡改。

    3.rsa加密(体制)通信

    加密特点:
    (1)私钥保密,公钥公开。(不可互换)
    (2)公钥始终用来加密,私钥始终用来解密(收信)
    (3)双向安全通信需要两对不同密钥。

    在加密算法中,公钥用于对数据进行加密,私钥用于对数据进行解密。

    4.rsa签名(体制)公告

    签名特点:
    (1)私钥保密,公钥公开。
    (2)私钥始终用来加密,公钥始终用来解密(验签)

    签名的作用:rsa保证公告是签名者发布的,且内容完全、准确。

    在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。

    如果你想发布一个公告【公告本身不加密】,需要一个手段来证明这确实是你本人发的,而不是其他人冒名顶替的。那你可以在你的公告开头或者结尾附上一段用你的私钥加密的内容(例如说就是你公告正文的一段话),那所有其他人都可以用你的公钥来解密,看看解出来的内容是不是相符的。如果是的话,那就说明这公告确实是你发的---因为只有你的公钥才能解开你的私钥加密的内容,而其他人是拿不到你的私钥的。

    数字签名无非就两个目的:
    证明消息是你发的
    证明消息收发内容一致性

    其实,上面关于“公告”那段内容,已经证明了第一点:证明这消息是你发的。
    那么要做到第二点,也很简单,就是把你公告的原文做一次哈希(md5或者sha1都行),然后用你的私钥加密这段哈希作为签名,并一起公布出去。当别人收到你的公告时,他可以用你的公钥解密你的签名,如果解密成功,并且解密出来的哈希值确实和你的公告原文一致,那么他就证明了两点:这消息确实是你发的,而且内容是完整的。
  • 相关阅读:
    Metro-Ural119递推
    Flags-Ural1225简单递推
    Candies-POJ3159差分约束
    Is the Information Reliable? -POJ2983差分约束
    MPI Maelstrom
    Codeforces Round #342 (Div. 2)-B. War of the Corporations
    Codeforces Round #342 (Div. 2)-A. Guest From the Past
    Vim升华之树形目录插件NERDTree安装图解
    The Same Game-POJ1027模拟
    Flesch Reading Ease -POJ3371模拟
  • 原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/8204695.html
Copyright © 2011-2022 走看看