[CTF]柵欄密碼學習


[CTF]柵欄密碼學習

 

即把將要傳遞的信息中的字母交替排成上下兩行,再將下面一行字母排在上面一行的后邊,從而形成一段密碼。柵欄密碼是一種置換密碼。

  例如密文:TEOGSDYUTAENNHLNETAMSHVAED

  解密過程:先將密文分為兩行

  T E O G S D Y U T A E N N
  H L N E T A M S H V A E D

  再按上下上下的順序組合成一句話

  THE LONGEST DAY MUST HAVE AN END.

加深的
       密文為:

  PFEE SESN RETM MFHA IRWE OOIG MEEN NRMA ENET SHAS DCNS IIAA IEER BRNK FBLE LODI

  去掉空格:PFEESESNRETMMFHAIRWEOOIGMEENNRMAENETSHASDCNSIIAAIEERBRNKFBLELODI

  共64個字符,以8個字符為一欄,排列成8*8的方陣(凱撒方陣):

  P F E E S E S N
  R E T M M F H A
  I R W E O O I G
  M E E N N R M A
  E N E T S H A S
  D C N S I I A A
  I E E R B R N K
  F B L E L O D I

  從上向下豎着讀:PRIMEDIFFERENCEBETWEENELEMENTSRESMONSIBLEFORHIROSHIMAANDNAGASAKI

  插入空格:PRIME DIFFERENCE BETWEEN ELEMENTS RESMONSIBLE FOR HIROSHIMA AND NAGASAKI





經典加密技術實例
經典加密主要采用了兩種加密技術:替代技術和置換技術。

(1)替代技術

替代技術是將明文中的每個元素(字母、比特、比特組合或字母組合)映射為另一個元素的技術。明文的元素被其他元素所代替而形成密文。在經典加密技術中使用的元素一般為字母或數字。下面給出經典加密中幾種有代表性的替代技術。

1)凱撒密碼

凱撒密碼是最早使用的替代密碼。

定義1 凱撒密碼將字母表視為一個循環的表,把明文中的字母用表中該字母后面第3個字母進行替代。凱撤密碼的明文字母和密文字母的對應關系如下:

明文字母: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

密文字母:DEFGHIJKLMNOPQRSTUVWXYZABC

若讓每個字母對應一個數值(a=0,b=1,……,z=25),則該算法可以表示為:



定義2 將1算法一般化,即密文字母與明文字母的偏移可以是任意值,形成了所謂的移位密碼,其算法可以表示為:


k就是加密算法的密鑰,可以在1到25之間取值。解密算法可以表示為:



由於k的取值范圍的限制,凱撒密碼的密鑰空間很小,難以抵御強行攻擊密碼分析。攻擊者最多嘗試25次,就一定能夠破譯密碼。

2)單字母替代密碼

為了加大凱撒密碼的密鑰空間,可以采用單字母替代密碼。單字母替代密碼是將密文字母的順序打亂后與圖文字母對應。

明文字母: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

密文字母:OGR F C Y S A L X U B Z Q T W D V E H J M K P N I

此時的密鑰空間大小為26!,約為4×1026。即使每微秒試一個密鑰,也需要花費約1010年才能窮舉所有的密鑰。因此,強行攻擊法不太適合。

3)Vigenere密碼

Vigenere密碼利用一個凱撤方陣來修正密文中字母的頻率。在明文中不同地方出現的同一字母在密文中一般用不同的字母替代。

凱撒方陣的形式為:

A B C D E F G … Y Z

          B C D E F G H … Z A

          C D E F G H I … A B

          D E F G H I J … B C

                         …

          Z A B C D E F … X Y

加密時,使用一個通信雙方所共享的密鑰字母串(如:HAPPYTIME),將密鑰字母串重復書寫在明文字母的上方。對要加密的明文字母找到上方的密鑰字母,然后比一下以確定凱撒方陣的某一行〔以該密鑰字母開頭的行〕。最后利用該行的字母表,使用凱撒密碼的加密方法進行替代:

例如:

密鑰: H A P P Y T I E H A P P Y T I M

明文: p l e a s e s e n d t h e d a t a

明文中的第一個e用凱撒方陣中的P行(PQRSTU…O)進行加密,因此被T替代;第二個e用方陣中的T行(TUVWX…S)進行加密,因此被X替代。

即使只選擇凱撒方陣中的任意m行,Vigenere密碼的密鑰字的長度將是26m,窮舉密鑰空間將需要很長時間,例如m=5,密鑰空間超過11000000,已經足以阻止手工窮舉密鑰搜索。在Vigenere密碼中,一個字母能夠映射成m個可能字母中的一個,這樣的密碼體制稱為多表密碼體制,一般情況下對多表密碼體制的密碼分析比單表困難。

(2)置換技術

置換是在不丟失信息的前提下對明文中的元素進行重新排列。

1)矩形轉置密碼

將明文寫成矩形結構,然后通過控制其輸出方向和輸出順序來獲得密文。例如,明文please send the data在不同輸出順序下的密文如下圖所示。矩形方陣上方的數字和字母串為代表輸出順序的密鑰,字母串按字母順序輸出(AEFRT)。

輸 出 順 序

1 2 3 4 5

p 1 e a s

e s e n

d t h e

   d a t a
 
輸 入 方 向
 
輸 出 順 序

3 5 1 4 2

p 1 e a s

e s e n

d t h e

   d a t a
 
輸 入 方 向
 
輸 出 順 序

A F T E R

p 1 e a s

e s e n

d t h e

   d a t a
 
輸 入 方 向
 
密文:ped l destaaehtsnea
 
密文:estasneaped eahtl d
 
密文:ped aehtl dsneaesta
 
圖 矩形轉置密碼加密示意圖
 


2)圖形轉置密碼

一個三角形轉置密碼的例子如下圖所示

e

h a v

h a r r y

o k s d o e s

h o w m a n y b o

 

輸 入 方 向
 
輸出方向
 
明文:how many books dose harry have

密文:OSYVEBERAYORHNDAASHMKWOOH
 
圖 三角形轉置密碼加密示意圖
 
http://www.sdpc.edu.cn/jpkc/wlaq/szal/aqslfx/sl7.htm
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM