<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    捕風之巢

    統(tǒng)計

    留言簿(3)

    java友情鏈接

    閱讀排行榜

    評論排行榜

    openssl簡介(二)--加密算法

    ?

    一.???? 加密算法

    一加密算法的一些常識

    要理解 ssl 先要知道一些加密算法的常識 .

    加密算法很容易理解啦,就是把明文變成人家看不懂的東西,然后送給自己想要的送到的地方,接收方用配套的解密算法又把密文解開成明文,這樣就不怕在路世上如果密文給人家截獲而泄密。

    加密算法有倆大類,第一種是不基于 KEY 的,舉個簡單的例子,我要加密 "fordesign" 這么一串字符,就把每個字符都變成它的后一個字符,那么就是 "gpseftjhm" 了,這樣的東西人家當然看不明白,接收方用相反的方法就可以得到原文。當然這只是個例子,現(xiàn)在應該沒人用這么搞笑的加密算法了吧。

    不基于 KEY 的加密算法好象一直用到了計算機出現(xiàn)。我記得古中國軍事機密都是用這種方式加密的。打戰(zhàn)的時候好象軍隊那些電報員也要帶著密碼本,也應該是用這種方式加密的。這種算法的安全性以保持算法的保密為前提。

    這種加密算法的缺點太明顯了,就是一旦你的加密算法給人家知道,就肯定掛。日本中途島慘敗好象就是密碼給老米破了。設計一種算法是很麻煩的,一旦給人破了就沒用了,這也忑浪費。

    我們現(xiàn)在使用的加密算法一般是基于 key 的,也就是說在加密過程中需要一個 key, 用這個 key 來對明文進行加密。這樣的算法即使一次被破,下次改個 key, 還可以繼續(xù)用。

    key
    是一個什么東西呢?隨便你,可以是一個隨機產生的數(shù)字,或者一個單詞,啥都行,只要你用的算法認為你選來做 key 的那玩意合法就行。

    這樣的算法最重要的是:其安全性取決于 key, 一般來說取決于 key 的長度。也就是說應該保證人家在知道這個算法而不知道 key 的情況下,破解也相當困 難。其實現(xiàn)在常用的基于 KEY 的加密算法在網(wǎng)絡上都可以找到,很多革命同志 ( 都是老外 ) 都在想辦法破解基于 key 的加密算法又包括倆類:對稱加密和不對稱 加密。對稱加密指的是雙方使用完全相同的 key ,最常見的是 DES.DES3,RC4 等。對稱加密算法的原理很容易理解,通信一方用 KEK 加密明文,另一 方收到之后用同樣的 KEY 來解密就可以得到明文。

    不對稱加密指雙方用不同的 KEY 加密和解密明文,通信雙方都要有自己的公共密鑰和私有密鑰。舉個例子比較容易理解,我們們假設通信雙方分別是 A,B.
    A,
    擁有 KEY_A1,KEY_A2, 其中 KEY_A1 A 的私有密鑰, KEY_A2 A 的公共密鑰。
    B,
    擁有 KEY_B1,KEY_B2, 其中 KEY_B1 B 的私有密鑰, KEY_B2 B 的公共密鑰。

    公共密鑰和私有密鑰的特點是,經過其中任何一把加密過的明文,只能用另外一把才能夠解開。也就是說經過 KEY_A1 加密過的明文,只有 KEY_A2 才能夠解密,反之亦然。

    通信過程如下:

    A-------->;KEY_A2------------>;B
    A<--------KEY_B2<------------A

    這個過程叫做公共密鑰交換,老外管這叫 keyexchange. 之后 A B 就分別用對方的公共密鑰加密,用自己的私有密鑰解密。

    一般公共密鑰是要發(fā)布出去的,然后你通過自己的私有密鑰加密明文,人家用你的公共密鑰解密,如果能解開,那么說明你是加密人,這就是 SSL 使用的驗證機制。

    常用的不對稱加密一般有 RSA,DSA,DH 等。我們一般使用 RSA.

    數(shù)字簽名也是不對稱加密算法的一個重要應用,理解它對于理解 SSL 很重要的,放在這里一起介紹一下。


    簽名是什么大家都很熟悉吧?證明該東西是你寫的,是你發(fā)布的,你就用簽名搞定。看看那些重要文件都要頭頭簽名。數(shù)字簽名就是數(shù)字化的簽名了。記得公用密鑰 和私有密鑰的特征嗎?只有你一個人有你自己的私有密鑰。而你的公用密鑰是其他人都知道的了。那么你在寫完一封郵件之后,用自己的私有密鑰加密自己的名字, 接收人用你的公共密鑰解開一看,哦,是你發(fā)的。這就是你的數(shù)字簽名過程了。

    上面的解釋是很簡化的了,其實數(shù)字簽名比這個復雜多了,但我們沒有了解的必要,知道數(shù)字簽名是這么一回事就可以了。


    還有一種我們需要知道的加密算法,其實我不覺得那是加密算法,應該叫哈希算法,英文是 messagedigest, 是用來把任何長度的一串明文以一定規(guī)則變成固定長度的一串字符串。它在 SSL 中的作用也很重要,以后會慢慢提及的。一般使用的是 MD5,SHA.

    base64
    不是加密算法,但也是 SSL 經常使用的一種算法,它是編碼方式,用來把 asc 碼和二進制碼轉來轉去的。

    具體的加密解密過程我們不需要了解,因為 SSL 根本不關心。但了解加密算法的一些基本原理是必要的,否則很難理解 SSL

    對加密算法的細節(jié)有興趣的同志,可以去網(wǎng)絡上找這些加密算法的原理的文章和實現(xiàn)的程序來研究,不過先學數(shù)論吧。

    posted on 2006-10-17 15:21 捕風 閱讀(441) 評論(0)  編輯  收藏 所屬分類: java安全

    主站蜘蛛池模板: 亚洲自偷自拍另类图片二区 | 国产黄在线观看免费观看不卡| 日本19禁啪啪无遮挡免费动图| 亚洲高清免费在线观看| 免费国产午夜高清在线视频| 中文字幕亚洲日本岛国片| 特a级免费高清黄色片| 亚洲精品第一国产综合精品99| 一区二区免费在线观看| 久久亚洲精品无码播放| 两个人看的www高清免费观看| 亚洲日韩国产精品第一页一区 | 日韩精品人妻系列无码专区免费| 亚洲AV无码码潮喷在线观看| 亚洲午夜免费视频| 亚洲视频免费观看| 永久免费的网站在线观看| 亚洲欧美日韩一区二区三区在线| 午夜神器成在线人成在线人免费 | 性感美女视频免费网站午夜| 亚洲成在人线在线播放无码 | 十八禁无码免费网站| 亚洲三级视频在线观看| 欧洲美熟女乱又伦免费视频 | 无遮挡呻吟娇喘视频免费播放| 国产精品亚洲玖玖玖在线观看| 国产成年无码久久久免费| 亚洲黄色免费观看| 日韩在线看片免费人成视频播放| 成人福利在线观看免费视频| 久久青青草原亚洲AV无码麻豆| 国产va免费精品观看精品| 曰批免费视频播放在线看片二| 亚洲Aⅴ无码专区在线观看q| 日韩精品无码区免费专区| 一级毛片正片免费视频手机看| 91亚洲国产成人久久精品网站| 日韩高清免费观看| 嫩草在线视频www免费观看| 亚洲不卡影院午夜在线观看| 亚洲精品一级无码中文字幕|