iOS加密整理

前言:之前很少接觸加解相關的東西,最近準備系統(tǒng)的學習下,所有就有了這篇文章,也希望看到的大佬不吝賜教!感激不盡!

一些小的知識點:

  1. 對稱密碼與公鑰密碼(非對稱加密)
  • 對稱密碼(symmetric cryptography)是指在加密和解密時使用同一密鑰的方式。
  • 公鑰密碼(public-key cryptography)則是指在加密和解密時使用不同密鑰的方式。因此公鑰密碼又稱為非對稱密碼(asymmetric cryptography)。
    2.DES(Data Encryption Standard)
    DES是一種將64bit的明文加密成64bit的密文的對稱密碼算法,它的密鑰長度是56bit。盡管從規(guī)格上來說,DES的密鑰長度是64bit,但由于每隔7bit會設置一個用于錯誤檢查的bit,因此實質(zhì)上其密鑰長度是56bit。
    DES是以64bit的明文(bit序列)為一個單位來進行加密的,這個64bit的單位稱為分組。一般來說,以分組為單位進行處理的密碼算法稱為分組密碼(block cipher),DES就是分組密碼的一種。
    DES每次只能加密64bit的數(shù)據(jù),如果要加密的明文比較長,就需要對DES加密進行迭代(反復),而迭代的具體方式就稱為模式(mode)。
  1. AES(Advanced Encryption Standard)是取代其前任標志(DES)而成為新標準的一種對稱密碼算法。全世界的企業(yè)和密碼學家提交了多個對稱密碼算法作為AES的候選,最終在2000年從這些候選算法中選出了一種名為Rijndael的對稱密碼算法,并將其確定為了AES。
  2. 三重DES的加密
    三重DES的加密機制如圖
三重DES.png

明文經(jīng)過三次DES處理才能變成最后的密文,由于DES密鑰的長度實質(zhì)上是56bit,因此三重DES的密鑰長度就是56 * 3 = 168bit。
從圖中我們可以發(fā)現(xiàn),三重DES并不是進行三次DES加密(加密->加密->加密),而是加密->解密->加密的過程。在加密算法中加入解密操作讓人感覺很不可思議,實際上這個方法是IBM公司設計出來的,目的是為了讓三重DES能夠兼容普通的DES。

  1. AES(Advanced Encryption Standard)
    AES是取代其前任標準(DES)而成為新標準的一種對稱密碼算法。全世界的企業(yè)和密碼學家提交了多個對稱密碼算法作為AES的候選,最終在2000年從這些候選算法中選出了一種名為Rijndael的對稱密碼算法,并將其確定為了AES。
  • 什么是Rijndael
    Rijndael是由比利時密碼學家Joan Daemen 和 Vincent Rijmen 設計的分組密碼算法,于2000年被選為新一代的標準密碼算法——AES。
    Rijndael的分組長度為128bit,密鑰長度可以以32bit為單位在128bit到256bit的范圍內(nèi)進行選擇(不過在AES的規(guī)格中,密鑰長度只有128、192和256bit三種)。
  1. 分組密碼的模式
    模式有很多種類,分組密碼的主要模式有以下5種:
  • ECB模式:Electronic CodeBook mode(電子密碼本模式)
    在ECB模式中,將明文分組加密之后的結(jié)果直接轉(zhuǎn)成為密文分組。
    使用ECB模式加密時,相同的明文分組會被轉(zhuǎn)換為相同的密文分組,也就是說,我們可以將其理解為是一個巨大的“明文分組->密文分組”的對應表,因此ECB模式也稱為電子密碼模式。
    當最后一個明文分組的內(nèi)容小于分組長度時,需要用一些特定的數(shù)據(jù)進行填充(padding)。

    ECB模式的特點是所有模式中最簡單的一種。ECB模式中,明文分組與密文分組是一一對應的關系,因此,如果明文中存在多個相同的明文分組,則這些明文分組最終都將被轉(zhuǎn)換為相同的密文分組。這樣一來,只要觀察一下密文,就可以知道明文中存在怎樣的重復組合,并可以以此為線索來破譯密碼,因此ECB模式是存在一定風險的。

  • CBC模式:Cipher Block Chaining mode(密碼分組鏈接模式)

  • CFB模式:Cipher FeedBack mode(密文反饋模式)

  • OFB模式:Output FeedBack mode(輸出反饋模式)

  • CTR模式:CounteR mode(計數(shù)器模式)

  1. 明文分組與密文分組
    明文分組是指分組密碼算法中作為加密對象的明文。明文分組的長度與分組密碼算法的分組長度是相等的。
    密文分組是指使用分組密碼算法將明文分組加密之后所生成的密文。
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本文主要介紹移動端的加解密算法的分類、其優(yōu)缺點特性及應用,幫助讀者由淺入深地了解和選擇加解密算法。文中會包含算法的...
    蘋果粉閱讀 11,679評論 5 29
  • 這篇文章主要講述在Mobile BI(移動商務智能)開發(fā)過程中,在網(wǎng)絡通信、數(shù)據(jù)存儲、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 3,039評論 0 6
  • 前言 《圖解密碼技術》一書介紹了很多關于密碼的知識,通讀一遍需要不少時間。為了方便學習,我對書中關鍵的部分進行了總...
    咖枯閱讀 7,565評論 1 25
  • 今天是星期五,明天就是星期六,又可以放假了,好高興??!而且今天的最后一節(jié)課是我最喜歡的餐飲課。在餐飲課上老師在黑板...
    荊玉淋閱讀 266評論 0 0
  • 上了大學,你會發(fā)現(xiàn),你周圍的人和物已經(jīng)不像是之前那樣純粹。所謂話中帶話亦或是該如何說話,你都會揣摩很久。 可到頭來...
    思有所感閱讀 205評論 0 4

友情鏈接更多精彩內(nèi)容