青青草国产成人av片免费/香港三级日本韩国三级专线/国内自拍在钱/天堂国产女人av

回復

密碼學入門:幾種簡單的密碼

樓主: 190560 | 查看: 8349 | 回復: 28

發表于 2022-7-24 19:07:36 | 2023-1-29 18:18編輯
一.維吉尼亞密碼
        維吉尼亞密碼引入了“密鑰”的概念,即根據密鑰來決定用哪一行的密表來進行替換,以此來對抗字頻統計。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
        當選定RELATIONS作為密鑰時,加密過程是:明文一個字母為T,第一個密鑰字母為R,因此可以找到在R行中代替T的為K,依此類推,得出對應關系如下:
        密鑰:RELAT IONSR ELATI ONSRE LATIO NSREL
        明文:TOBEO RNOTT OBETH ATIST HEQUE STION
        密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
        歷史上以維吉尼亞密表為基礎又演變出很多種加密方法,其基本元素無非是密表與密鑰,并一直沿用到二戰以后的初級電子密碼機上。


二.凱撒密碼
      它是一種代換密碼。據說凱撒是率先使用加密函的古代將領之一,因此這種加密方法被稱為凱撒密碼。
      凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推X將變成A,Y變成B,Z變成C。由此可見,位數就是凱撒密碼加密和解密的密鑰。
      在密碼學中,凱撒密碼(或稱凱撒加密、凱撒變換、變換加密)是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯系。愷撒密碼通常被作為其他更復雜的加密方法中的一個步驟,例如維吉尼亞密碼。凱撒密碼還在現代的ROT13系統中被應用。但是和所有的利用字母表進行替換的加密技術一樣,凱撒密碼非常容易被破解,而且在實際應用中也無法保證通信安全。


三.柵欄加密法
      柵欄加密法是一種比較簡單快捷的加密方法。柵欄加密法就是把要被加密的文件按照一上一下的寫法寫出來,再把第二行的文字排列到第一行的后面。相應的,破譯方法就是把文字從中間分開,分成2行,然后插入。柵欄加密法一般配合其他方法進行加密。例:加密information 分行 i f r a i n n o m t o 合并 ifrainnomto 完成~


四.豬筆加密法 (朱高密碼。共濟會密碼)
      它的英文名是pigpen cipher,直譯過來好搞笑。 在18世紀時,Freemasons為了使讓其他的人看不懂他所寫而發明的,豬筆密碼屬于替換密碼流,但它不是用一個字母替代另一個字母,而是用一個符號來代替一個字母, 把26個字母寫進下四個表格中,然后加密時用這個字母所挨著表格的那部分來代替。


五.RSA算法
      RSA算法是第一個能同時用于加密和數字簽名的算法,也易于理解和操作。RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。 RSA的算法涉及三個參數,n、e1.e2。 其中,n是兩個大質數p、q的積,n的二進制表示時所占用的位數,就是所謂的密鑰長度。 e1和e2是一對相關的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質(互質:兩個正整數只有公約數1時,他們的關系叫互質);再選擇e2,要求(e2*e1)mod((p-1)*(q-1))=1。 (n及e1),(n及e2)就是密鑰對。 RSA加解密的算法完全相同,設A為明文,B為密文,則:A=B^e1 mod n;B=A^e2 mod n; e1和e2可以互換使用,即: A=B^e2 mod n;B=A^e1 mod n


六.ECC加密法

      ECC算法也是一個能同時用于加密和數字簽名的算法,也易于理解和操作。同RSA算法是一樣是非對稱密碼算法使用其中一個加密,用另一個才能解密。 公開密鑰算法總是要基于一個數學上的難題。比如RSA 依據的是:給定兩個素數p、q 很容易相乘得到n,而對n進行因式分解卻相對困難。那橢圓曲線上有什么難題呢? 考慮如下等式 : K=kG [其中 K,G為Ep(a,b)上的點,k為小于n(n是點G的階)的整數] 不難發現,給定k和G,根據加法法則,計算K很容易;但給定K和G,求k就相對困難了。 這就是橢圓曲線加密算法采用的難題。

      我們把點G稱為基點(base point),k(k<n,n為基點G的階)稱為私有密鑰(privte key),K稱為公開密鑰(public key)。 現在我們描述一個利用橢圓曲線進行加密通信的過程:

      1、用戶A選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點,作為基點G。

      2、用戶A選擇一個私有密鑰k,并生成公開密鑰K=kG。

      3、用戶A將Ep(a,b)和點K,G傳給用戶B。

      4、用戶B接到信息后 ,將待傳輸的明文編碼到Ep(a,b)上一點M(編碼方法很多,這里不作討論),并產生一個隨機整數r(r<n)。

      5、用戶B計算點C1=M+rK;C2=rG。

      6、用戶B將C1、C2傳給用戶A。

      7、用戶A接到信息后,計算C1-kC2,結果就是點M。因為 C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M 再對點M進行解碼就可以得到明文。 ECC的功能比RSA強。而令人感興趣的是點和點的過程,這也是其功能之來源。



七.四方密碼
      四方密碼用4個5×5的矩陣來加密。每個矩陣都有25個字母(通常會取消Q或將I,J視作同一樣,或改進為6×6的矩陣,加入10個數字)。 首先選擇兩個英文字作密匙,例如example和keyword。對于每一個密匙,將重復出現的字母去除,即example要轉成exampl,然后將每個字母順序放入矩陣,再將余下的字母順序放入矩陣,便得出加密矩陣。 將這兩個加密矩陣放在右上角和左下角,余下的兩個角放a到z順序的矩陣: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y WO a b c d e R D A BC f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 加密的步驟: 兩個字母一組地分開訊息:(例如hello world變成he ll ow or ld) 找出第一個字母在左上角矩陣的位置 a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 同樣道理,找第二個字母在右下角矩陣的位置: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 找右上角矩陣中,和第一個字母同行,第二個字母同列的字母: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u NO R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 找左下角矩陣中,和第一個字母同列,第二個字母同行的字母: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 這兩個字母就是加密過的訊息。 he lp me ob iw an ke no bi的加密結果: FY GM KY HO BX MF KK KI MD 二方密碼 二方密碼(en:Two-square_cipher)比四方密碼用更少的矩陣。 得出加密矩陣的方法和四方密碼一樣。 例如用「example」和「keyword」作密匙,加密lp。首先找出第一個字母(L)在上方矩陣的位置,再找出第二個字母(D)在下方矩陣的位置: E X A M P L B C D F G H I J K N O R S T U V W Y Z K E Y W O R D A B C F G H I J L M N P S T U V X Z 在上方矩陣找第一個字母同行,第二個字母同列的字母;在下方矩陣找第一個字母同列,第二個字母同行的字母,那兩個字母就是加密的結果: E X A M P L B C D F G H I J K N O R S T U V W Y Z K E Y W O R D A B C F G H I J L M N P S T U V X Z help me的加密結果: he lp me HE DL XW 這種加密法的弱點是若兩個字同列,便采用原來的字母,例如he便加密作HE。約有二成的內容都因此而暴露。


八.替換加密法: 
      用一個字符替換另一個字符的加密方法。 換位加密法: 重新排列明文中的字母位置的加密法。 回轉輪加密法: 一種多碼加密法,它是用多個回轉輪,每個回轉輪實現單碼加密。這些回轉輪可以組合在一起,在每個字母加密后產生一種新的替換模式。 多碼加密法: 一種加密法,其替換形式是:可以用多個字母來替換明文中的一個字母。 夾帶法: 通過隱藏消息的存在來隱藏消息的方法。 三分密碼 首先隨意制造一個3個3×3的Polybius方格替代密碼,包括26個英文字母和一個符號。然后寫出要加密的訊息的三維坐標。訊息和坐標四個一列排起,再順序取橫行的數字,三個一組分開,將這三個數字當成坐標,找出對應的字母,便得到密文。 仿射密碼 仿射密碼是一種替換密碼。它是一個字母對一個字母的。 它的加密函數是e(x)=ax+b(mod m),其中 a和m互質。 m是字母的數目。 譯碼函數是d(x)=a^(x-b)(mod m),其中a^是a在M群的乘法逆元.


九.波雷費密碼
      1、選取一個英文字作密匙。除去重復出現的字母。將密匙的字母逐個逐個加入5×5的矩陣內,剩下的空間將未加入的英文字母依a-z的順序加入。(將Q去除,或將I和J視作同一字。)

      2、將要加密的訊息分成兩個一組。若組內的字母相同,將X(或Q)加到該組的第一個字母后,重新分組。若剩下一個字,也加入X字。

      3、在每組中,找出兩個字母在矩陣中的地方。 若兩個字母不同行也不同列,在矩陣中找出另外兩個字母,使這四個字母成為一個長方形的四個角。 若兩個字母同行,取這兩個字母右方的字母(若字母在最右方則取最左方的字母)。 若兩個字母同列,取這兩個字母下方的字母(若字母在最下方則取最上方的字母)。 新找到的兩個字母就是原本的兩個字母加密的結果。


十.RC5算法
      1.創建密鑰組,RC5算法加密時使用了2r+2個密鑰相關的的32位字,這里r表示加密的輪數。創建這個密鑰組的過程是非常復雜的但也是直接的,首先將密鑰字節拷貝到32位字的數組L中(此時要注意處理器是little-endian順序還是big-endian順序),如果需要,最后一個字可以用零填充。然后利用線性同余發生器模2初始化數組S:對于i=1到2(r+1)-1: (本應模 ,本文中令w=32)其中對于16位字32位分組的RC5,P=0xb7e1 Q=0x9e37 對于32位字和64位分組的RC5,P=0xb7e15163 Q=0x9e3779b9 對于64位字和128位分組,P=0xb7151628aed2a6b Q=0x9e3779b97f4a7c15 最后將L與S混合,混合過程如下: i=j=0 A=B=0 處理3n次(這里n是2(r+1)和c中的最大值,其中c表示輸入的密鑰字的個數)。

      2.加密處理,在創建完密鑰組后開始進行對明文的加密,加密時,首先將明文分組劃分為兩個32位字:A和B(在假設處理器字節順序是little-endian、w=32的情況下,第一個明文字節進入A的最低字節,第四個明文字節進入A的最高字節,第五個明文字節進入B的最低字節,以此類推),其中操作符<<<表示循環左移,加運算是模 (本應模 ,本文中令w=32)的。輸出的密文是在寄存器A和B中的內容。

      3.解密處理,解密也是很容易的,把密文分組劃分為兩個字:A和B(存儲方式和加密一樣),這里符合>>>是循環右移,減運算也是模 (本應模 ,本文中令w=32)的。



十一.ADFGVX密碼
      假設我們需要發送明文訊息 "Attack at once", 用一套秘密混雜的字母表填滿 Polybius 方格,像是這樣: A D F G X A b t a l p D d h o z k F q f v s n G g j c u x X m r e w y i 和 j 視為同個字,使字母數量符合 5 × 5 格。之所以選擇這五個字母,是因為它們譯成摩斯密碼時不容易混淆,可以降低傳輸錯誤的機率。使用這個方格,找出明文字母在這個方格的位置,再以那個字母所在的欄名稱和列名稱代替這個字母。可將該訊息可以轉換成處理過的分解形式。 A T T A C K A T O N C E AF AD AD AF GF DX AF AD DF FX GF XF 下一步,利用一個移位鑰匙加密。假設鑰匙字是「CARGO」,將之寫在新格子的第一列。再將上一階段的密碼文一列一列寫進新方格里。 C A R G O _________ A F A D A D A F G F D X A F A D D F F X G F X F X 最后,按照鑰匙字字母順序「ACGOR」依次抄下該字下整行訊息,形成新密文。如下: FAXDF ADDDG DGFFF AFAXX AFAFX 在實際應用中,移位鑰匙字通常有兩打字符那么長,且分解鑰匙和移位鑰匙都是每天更換的。 ADFGVX 在 1918年 6月,再加入一個字 V 擴充。變成以 6 × 6 格共 36 個字符加密。這使得所有英文字母(不再將 I 和 J 視為同一個字)以及數字 0 到 9 都可混合使用。這次增改是因為以原來的加密法發送含有大量數字的簡短信息有問題。


十二.希爾密碼
      加密

      例如:密鑰矩陣 1 3 0 2 明文:HI THERE 去空格,2個字母一組,根據字母表順序換成矩陣數值如下,末尾的E為填充字元: HI TH ER EE 8 20 5 5 9 8 18 5 HI 經過矩陣運算轉換為 IS,具體算法參考下面的說明: |1 3| 8 e1*8+3*9=35 MOD26=9 =I |0 2| 9 e0*8+2*9=18 MOD26=18=S 用同樣的方法把“HI THERE”轉換為密文“IS RPGJTJ”,注意明文中的兩個E分別變為密文中的G和T。

      解密

      解密時,必須先算出密鑰的逆矩陣,然后再根據加密的過程做逆運算。 逆矩陣算法公式: |A B| = 1/(AD-BC) * | D -B| |C D| |-C A| 例如密鑰矩陣= |1 7| |0 3| AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9 因此 |1 7| 的逆矩陣為: 9 * |3 -7| |0 3| |0 1| 假設密文為“FOAOESWO” FO AO ES WO 6 1 5 23 15 15 19 15 9* |3 -7| | 6| = 9*(3*6-7*15)=-783 mod26 = 23=W |0 1| |15| = 9*(0*6+1*15)= 135 mod26 = 5 =E 所以密文“FOAOESWO”的明文為“WEREDONE”



十三.維熱納爾方陣
      A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y 著名的維熱納爾方陣由密碼學家維熱納爾編制,大體與凱撒加密法類似。即二人相約好一個密鑰(單詞),然后把加密后內容給對方,之后對方即可按密碼表譯出明文。密鑰一般為一個單詞,加密時依次按照密鑰的每個字母對照明碼行加密。例如:我的密鑰是who,要加密的內容是I love you,則加密后就是E SCRL MKB.即加密I,就從密鑰第一個字母打頭的w那行找明碼行的I對應的字母,即E。加密l,就從密鑰第2個字母打頭的h那行找明碼l對應的字母,S。加密o,從密鑰第三個字母O打頭的那行找到明碼行中o對應的字母,C。加密v,就又從密鑰第一個字母w打頭的那行找到明碼行中v對應的字母,R。 依此類推。所以由維熱納爾方陣加密的密碼,在沒有密鑰的情況下給破譯帶來了不小的困難。維熱納爾方陣很完美的避開了概率算法(按每個語種中每個字母出現的概率推算。例如英語中最多的是e),使當時的密碼破譯師必須重新找到新方法破譯。


十四.埃特巴什碼

      埃特巴什碼是一個系統:最后一個字母代表第一個字母,倒數第二個字母代表第二個字母。 在羅馬字母表中,它是這樣出現的: 常文:a b c d e f g h i j k l m n o p q r s t u v w x y z 密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A 這種密碼是由熊斐特博士發現的。熊斐特博士為庫姆蘭《死海古卷》的最初研究者之一,他在《圣經》歷史研究方面最有名氣的著作是《逾越節的陰謀》。他運用這種密碼來研究別人利用其他方法不能破解的那些經文。這種密碼被運用在公元1世紀的艾賽尼/薩多吉/拿撒勒教派的經文中,用以隱藏姓名。其實早在公元前500年,它就被抄經人用來寫作《耶利米書》〔1〕耶利米是活動在公元前627-前586年間的猶太先知,圣經舊約書中有許多關于他的記載。在他離世前,猶太領土已被巴比倫人占領。〔1〕。它也是希伯來文所用的數種密碼系統之一。 白金特、雷伊和林肯在《彌賽亞的遺產》中寫道,熊斐特博士于《艾賽尼派的奧德賽》一書中描述他如何對圣殿騎士們崇拜的鮑芙默神癡迷,又如何用埃特巴什碼分析這個詞。令他驚奇的是,破譯出的詞“Sophia”為希臘語中的“智慧”。 在希伯來語中,“Baphomet”一詞拼寫如下——要記住,希伯來語句必須從右向左讀: 〔 taf 〕 〔 mem 〕 〔 vav 〕 〔 pe 〕 〔 bet 〕 將埃特巴什碼用于上述字母,熊斐特博士得到如下結果: 〔 alef 〕 〔 yud 〕 〔 pe 〕 〔 vav 〕 〔 shin 〕 即為用希伯來語從右向左書寫的希臘詞“Sophia”。 Sophia的詞義不僅限于“智慧”。它還是一位女神的名字——這位女神照說應該是上帝的新娘。許多人相信,圣殿騎士們崇拜這位女神。〔1〕作者引用的是諾斯替學派的神話:“不可知解”的至尊上帝,“源化”出最早的幾位亞神,最后一位就是索菲亞——“智慧”。她極求得到對上帝“神質”的“真知”——她名字第二意義的來源,而這種不合神性的欲望“孕生”了邪神,即創造宇宙的另一位“上帝”。諾斯替派將他等同于舊約中的上帝,來解釋亞當夏娃墮降塵間和大洪水的事件。〔1〕 圣殿騎士們通曉埃特巴什碼的事實,強烈表明有些來自一個拿撒勒教派的人置身于圣殿騎士中間。 丹·布朗關于英語是“最純潔的”語言的觀念可能是空想的,但并不是什么新理論。萊納堡附近有個叫做萊納浴泉的村莊,那里的神父亨利·布德寫過一本名為《真實的凱爾特語》的書,也聲稱英語是一種神圣的語言,或許在“巴比倫塔”〔2〕用方舟拯救人類的諾亞,有一支后代在巴比魯尼亞定居。他們在史納爾平原建造高塔,試圖攀登天界。惱怒的上帝分化了在此之前統一使用的語言,而交流不通引發的混亂和爭執使人前功盡棄。〔2〕墮毀前就已得到使用。據說,這本書從字面上是不能理解的,它是用密碼寫成的,傳達一個不同的信息。我們還應該記住,與其他的一些歐洲語言一樣,英語的許多詞匯源于拉丁。正如翠茜·特威曼在《達戈貝特復仇記》雜志中指出的那樣,英語因為有26個字母,可以完美地用于埃特巴什碼。其他歐洲語言所用的字母則不成偶數。此外,她始終認為郇山隱修會偏愛英語。
https://blog.csdn.net/DBDeep/article/details/79319310

90

152

分享

| 發表于 2022-7-28 07:04:53 | 發自安卓客戶端
感謝分享
| 發表于 2022-7-28 12:30:51 | 發自安卓客戶端 發帖際遇
感謝分享
| 發表于 2022-7-31 01:01:16 | 發自安卓客戶端
感謝分享
1 | 發表于 2022-8-7 19:24:45 中國香港| 發自安卓客戶端
感謝分享
| 發表于 2022-8-7 19:33:07 廣東| 發自安卓客戶端
感謝分享
| 發表于 2022-8-7 21:58:02 四川| 發自安卓客戶端
感謝分享
| 發表于 2022-8-8 20:38:38 四川| 發自安卓客戶端 發帖際遇
感謝分享
| 發表于 2022-8-8 20:38:49 四川| 發自安卓客戶端
黑小雞
| 發表于 2022-8-9 07:26:58 山東| 發自安卓客戶端
感謝分享
返回版塊
123
尚未登錄
您需要登錄后才可以回帖 登錄 | 加入學院