PKCS#1規範閱讀筆記1--------基本概念

     規範中有不少數學相關的推演和計算,並不打算在這裏介紹,主要介紹一下相關的計算流程及最終的簽名結果。算法

     算法能夠分爲:對稱算法和非對稱算法兩大類。對稱算法加密和解密都用的是同一個密鑰;而非對稱算法倒是有一對密鑰對(公鑰和私鑰),可是這對公鑰加密的東西,能用私鑰解開;反之亦然。安全

    RSA就是屬於非對稱算法,RSA也有一對密鑰對用來參與運算。公鑰,顧名思義就是能夠公開的密鑰,其實就是能夠拿給你們看的密鑰。私鑰,固然就是隻有本身才能知道的密鑰,不能夠給人看的,也就是說只有你本身才能知道的。函數

     一開始的時候,老是會分不清楚RSA加解密與簽名驗籤的關係是什麼?加密

    應用場景:接口

    加解密,確定是有什麼東西是不想給別人知道的,比如有個寶貝得鎖在箱子裏,鑰匙固然要在本身這裏才安全。而RSA裏面的私鑰呢只有本身能夠看見,至關於鑰匙了。一把鑰匙對應一把鎖,這個鎖天然就是公鑰了。ssl

    簽名驗籤呢,就比如目前有一份合同,甲乙雙方都按了手印,以示達成協議,再也不反悔,因此簽名的內容須要是公示給你們看的。可是隻有本身親手按的才能認對吧,那確定是要用私鑰作簽名了,由於私鑰只有本身才有啊;公鑰固然就用來驗簽了。openssl

    計算流程:數學

    加解密:公鑰(鎖)對明文(寶貝)加密(鎖在箱子裏);私鑰(鑰匙)對密文(鎖上的箱子)進行解密(打開箱子),就能夠獲得明文(寶貝)了。方法

    簽名驗籤:私鑰(指紋)對明文(合同)進行簽名(按手印);公鑰(公安局裏你的指紋記錄)對簽名值(按了手印的合同)進行驗籤(覈驗手印是否匹配),若是匹配,就是驗籤經過,就沒有辦法抵賴了。協議

    計算方法:

    從計算流程上能夠看出,若是拋開應用場景,而只關注數學運算的話:

     加密:公鑰 + 明文 ---> 密文

     驗籤:公鑰 + 簽名 ---> 驗簽結果

     解密:私鑰 + 密文 ---> 明文

     簽名:私鑰 + 明文 ---> 簽名

     因此所有過程,只涉及:公鑰運算和私鑰運算而已。若是調用openssl的接口,就會發現只有RSA_decrypt和RSA_encrypt兩個函數就夠了。

相關文章
相關標籤/搜索