1、des(data encryption standard)演算法:資料加密標準。是替換和置換細緻而複雜的結合體,替換和置換乙個接著乙個,共迴圈16次。演算法首先將明文分塊,每塊64位。金鑰也是64位,但實際上它可以使任意56位的數字(多餘的8位通常作為校驗位,但不影響加密)。
替換提供了混亂性,置換提供了擴散性。
混亂性:當明文中的字元變化時,擷取者不能預知密文會有何變化。
擴散性:將明文中單一字母包含的資訊散布到整個輸出中的特性。
des演算法加密過程如下圖:
2、aes加密演算法(advanced encryption standard):高階加密標準。分塊大小為128位,像des一樣,也使用重複的迴圈,對於128、192和256位點的金鑰分別會有10、12和14次迴圈。
aes典型:rijndael演算法:rijndael是一種快速演算法,主要使用的時候替換、置換、移位、加以及特殊的或運算。在rijndael中,迴圈稱為「輪」;
a、位元組替換:這一步使用和des相似的替換結構,根據一張替換表來替換128位分塊中的每個位元組,這一步是直接的混亂操作。
b、行移位:乙個置換步驟。對於128和192位的分塊,第n行迴圈左移(n-1)個位元組;對於256位的分塊,第2行移位1個位元組,第三行和第四行分別移位3和4個位元組。這是乙個直接的混亂操作。
c、列移位:該步驟包括左移、與自身的異或運算。這些步驟提供了混亂性和擴散性。
d、加上子金鑰:金鑰的一部分與迴圈結果進行特殊或運算,這一部分對於此次迴圈式唯一的。這步操作提供了混亂性並合併了金鑰。
3、rsa(rivest-shamir-adelman)加密演算法:是一種公開金鑰體制,使用兩個金鑰d和e,分別用於解密和加密。
我對MySQL的認識
上週第一次聽說了mysql,之前一點了解都沒有,上課之後加上做作業的額外了解,我知道了它在資料庫的作用,它是資料庫的語言,是乙個資料庫管理系統,也是乙個關聯式資料庫。它是由oracle支援的開源軟體。這意味著任何乙個人都可以使用mysql而不用支付一毛錢。另外,如果需要,還可以更改其源 或進行二次開...
談談我對CMMI的認識
cmmi是一種非常好的軟體工程方法,已經總結和建立了很多優秀的流程方法,而且諮詢公司會提供模板資料,把這些別人的東西般過來學習和實施,就可以在自己的企業運作得非常好 在我看來,這些理解完全是錯誤的。這種錯誤理解或觀念,使得很多企業實施cmmi後卻完全看看不到效果,甚至事倍功半,開發效率和質量還比不上...
我對創業的再認識
昨天又一次湧動出創業的想法 要為程式設計師做點什麼.以前,我總是想創業需要前沿的技術,需要多少多少資源.要創就創世界上新穎的公司.要賺多少多少錢.其實不然.創業,首先是你能給社會上帶來什麼,有人真正需要嗎?也就是你的價值所在.創業,也不一定是要最前沿的技術,所謂適合的就是最好的.我這次創業的想法,就...