The Art Of Crypto [Day 11]

ဒီေန႕ေတာ့ Vignere Cipher အေၾကာင္းနဲ႕ Hill Cipher အေၾကာင္းကိုေလ့လာသြားမွာျဖစ္ပါတယ္။
Vigenere Cipher ကေတာ့ Polyalphabetic Substitution Ciphers အမ်ိဳးစားတစ္ခုျဖစ္ျပီးေတာ့
Hill Cipher ကေတာ့ Diagraph Substitution Cippher အမ်ိဳးစားပဲျဖစ္ပါတယ္။ Polyalphabetic Substitution ထဲမွာ
အျခားေသာ Autokey Cipher နဲ႕ Kasiski Analysis : Breaking the Code ကိုေတာ့ ေနာက္ရက္မွာေလ့လာသြားမွာျဖစ္ပါတယ္။
Diagraph Substitution Cipher အမ်ိဳးစားေတြျဖစ္ၾကတဲ့ Two Square & Four Square Cipher ကိုလည္းေနာက္ရက္မွာဆက္ေလ့လာမယ္။
Digraph Substitution ပဲျဖစ္တဲ့ Playfair Cipher ကိုေတာ့ အရင္ရက္အစပိုင္းကရွင္းျပျပီးျပီျဖစ္တာေၾကာင့္ ဒါေတြျပီးရင္ေတာ့ Numeric Ciphers ေတြ
အေၾကာင္းကိုေလ့လာသြားဖို႕ဆံုးျဖတ္ထားပါတယ္။ Numeric ျပီးရင္ Combination Ciphers ျပီးရင္ Machine Driven Ciphers ေနာက္ေတာ့ Modern Ciphers ေတြအေၾကာင္းကို
ဆက္ေလ့လာသြားမွာျဖစ္ပါတယ္။ အစကေတာ့ တခ်ိဳ႕ဟာေတြကိုေက်ာ္သြားမလို႕ပါပဲ။ ဒါေပမယ့္ ဒီ Crypto ေတြေရးျပီးရင္ Creatigon Blog မွာအားလံုးစုျပီး Crypto စာအုပ္ေလး
တစ္အုပ္ေလာက္တင္ေပးခ်င္တာနဲ႕ အကုန္လံုးကိုေရးဖို႕ဆံုးျဖတ္လိုက္တာပါ။ က်ေနာ့္အထင္ Day ေတြကိုတစ္ရက္တစ္ခုလုပ္သြားမယ္ဆို day 20 ေလာက္မွာ Crypto ကို ေတာ္ေတာ္ေလး
တီးမိေခါက္မိျပီလို႕ယူဆပါတယ္။ လွ်ာရွည္တာျပီးျပီဆိုေတာ့ စလိုက္ရေအာင္။

Vigenere Cipher
ဒီ Cipher မွာ Tabula Recta လို႕ေခၚတဲ့ Grid တစ္ခုကိုသိထားဖို႕လိုအပ္ပါတယ္။ အဆိုပါ Grid ကိုေတာ့ ေအာက္မွာပံုနဲ႕ျပထားပါတယ္။

v1.jpg
ပံုအရ grid ကိုက်ေနာ္တို႕သိထားျပီ။ ဒါဆို encryption ပိုင္းကိုဆက္ေလ့လာရအာင္။ Encryption လုပ္မယ္ဆိုရင္ က်ေနာ္တို႕အေနနဲ႕
သိထားရမယ့္ အရာ ၂ ခုရွိပါတယ္။ အဲဒါကေတာ့ plain text နဲ႕ keyword ပဲျဖစ္ပါတယ္။
plain text “a simple example” ဆိုတာကိုက်ေနာ္တို႕ keyword “battista” ဆိုတာနဲ႕ Encrypt လုပ္ၾကည့္မယ္။

plain text အေရအတြက္က ၁၃ လံုးရွိတယ္ ။ space ေတြကိုထည့္ေရတြက္စရာမလိုပါဘူး။ keyword ကို plain text
အေရအတြက္နဲ႕တူေအာင္ ျပန္လုပ္ေပးရမွာျဖစ္ပါတယ္။ ေအာက္ကပံုေလးကိုၾကည့္ပါ။
v2.jpg
ဒါဆိုရင္က်ေနာ္တို႕ plain text သိျပီ keyword သိျပီ tabula recta လည္းရွိျပီဆိုေတာ့ encrypt စလုပ္လို႕ရပါျပီ ။
plain text နဲ႕ keyword ဇယားကြက္ထဲမွာ ပထမဆံုး အကြက္ထဲကစျပီး encrypt လုပ္ရမွာျဖစ္ပါတယ္။
ပထမဆံုးအကြက္ထဲမွာ keyword က b plain text က a ျဖစ္ေနတာေတြ႕ရပါမယ္။ ဒီေနရာမွာက်ေနာ္တို႕သိထားရမွာက
keyword က tabula recta မွာ Column ျဖစ္ျပီးေတာ့ plain text ကေတာ့ row ျဖစ္ပါတယ္။
ဒါေၾကာင့္ Column က B တန္ဖိုး Row က A တန္ဖိုးကို Tabula Recta မွာၾကည့္ေတာ့ “B” ဆိုတဲ့စာလံုးရပါတယ္။ ေအာက္ကပံုကိုၾကည့္ပါ။
v3.jpg

ေနာက္တစ္ကြက္မွာကေတာ့ keyword က a plain text က s ျဖစ္တာေၾကာင့္ Coulmn မွာ A  တန္ဖိုး Row မွာ
s တန္ဖိုး ျဖစ္တဲ့အကြက္ထဲမွာ “S” ဆိုတဲ့စာလံုးရွိတာေၾကာင့္ S ဟာ encrypted letter တစ္ခုျဖစ္သြားပါျပီ။
ေအာက္ကပံုကိုၾကည့္ပါ။
v4.jpg

ဒီနည္းအတိုင္းဆက္လုပ္သြားရင္ က်ေနာ္တို႕လိုခ်င္တဲ့ Cipher Text ကိုရရွိမွာျဖစ္ပါတယ္။

v5.jpg

ေနာက္ဆံုးမွာေတာ့ က်ေနာ္တို႕လိုခ်င္တဲ့ Cipher Text ဟာ BSBF XDXEYA FITW အျဖစ္နဲ႕ရရွိမွာျဖစ္ပါတယ္။

v6
သင္ကိုယ္တိုင္လည္းစမ္းၾကည့္ေစခ်င္ပါတယ္။

Encryption အပိုင္းျပီးတဲ့အခါမွာေတာ့ Decryption အပိုင္းဆက္ေလ့လာၾကမယ္။
Decryption လုပ္တဲ့အပိုင္းမွာေတာ့ Plain Text ကိုျပန္ရွာရမွာျဖစ္တဲ့အတြက္ က်ေနာ္တို႕မွာ keyword နဲ႕
Cipher Text ရွိဖို႕ေတာ့လိုအပ္ပါတယ္။
ဥပမာအေနနဲ႕ ZPSPNOXMOFAORMQDPUKZ ဆိုတဲ့ Cipher Text ကို giovan ဆိုတဲ့ keyword နဲ႕ Decrypt လုပ္ၾကည့္ၾကမယ္။
Encryption လုပ္တုန္းကလိုပဲ Cipher Text နဲ႕ keyword ကို Grid ထဲထည့္လိုက္တဲ့အခါ ေအာက္မွာျပထားတဲ့ပံုလိုရပါမယ္။
ဒီဇယားကြက္ကိုအသံုးျပဳျပီးေတာ့ Tabula Recta ကေန decrypt လုပ္ရမွာျဖစ္ပါတယ္။
v7.jpg
ဇယားကြက္အရ ပထမဆံးအကြက္မွာ keyword က g Cipher Text က Z ျဖစ္ပါတယ္။
Keyword G ကိုေတာ့ Column အျဖစ္သံုးတယ္ဆိုတာေျပာျပီးပါျပီ။ ဒီေတာ့ G ရွိတဲ့ Colmun မွာ
Z ဆိုတဲ့ စာလံုးရွိတဲ့ေနရာဟာ Row အရဆိုရင္ T တန္ဖိုးျဖစ္ေနတာကိုေတြ႕ရပါလိမ့္မယ္။ ဒီေတာ့ က်ေနာ္တို႕ရွာေနတဲ့ plain text ဟာ
T ျဖစ္တာကိုသိရပါျပီ။ ေအာက္ကပံုေလးကိုတစ္ခ်က္ၾကည့္ပါ။

 

v8.jpg

v9.jpg

v9.jpg
ဒီနည္းအတိုင္းဆက္လုပ္သြားမယ္ဆိုရင္ ေနာက္ဆံုးမွာ plaint text ျဖစ္တဲ့ the unbreakable cipher ဆိုတာကိုရမွာျဖစ္ပါတယ္။

v10.jpg
စမ္းၾကည့္ေစလိုပါတယ္။ နားလည္တယ္ဆိုလည္း မစမ္းနဲ႕ေပါ့။
ဒါဆိုရင္ Vigenre Cipher အေၾကာင္းကို နားလည္သြားျပီမို႕လို႕ ေနာက္တစ္ခုျဖစ္တဲ့ Hill Cipher အေၾကာင္းကိုဆက္သြားၾကမယ္။
ဒီေန႕ေရးတဲ့ Cipher ၂ ခုလံုးကအရွည္ၾကီးရွင္းျပရတာမို႕ နည္းနည္းသည္းခံျပီးဖတ္ေစခ်င္ပါတယ္။
Hill Cipher ကို Lester S ဆိုသူက 1929 ခုႏွစ္မွာတီထြင္ခဲ့တယ္လို႕သိရပါတယ္။ ဒီ Cipher ဟာ Digraphs Cipher ဆိုေပမယ့္ Linear Algebra လို႕ေခၚတဲ့
Areaf of Mathematics ကိုသံုးထားပါတယ္။ ဒီ Cipher ကိုေလ့လာမယ့္သူတစ္ေယာက္အေနနဲ႕က်ေနာ္တို႕က Matrix ေတြအေၾကာင္းကိုေတာ့ ေကာင္းေကာင္းသိထားရပါမယ္။
ဒါကသိပ္ခက္ခဲမယ္လို႕ေတာ့မထင္ပါဘူး ဘာေၾကာင့္ဆို က်ေနာ္တို႕အားလံုး ဒသမတန္းတုန္းက သင္ခဲ့ရတာပဲေလ။ ေမ့ေနလည္း ေအာက္မွာလုပ္ပံုလုပ္နည္းေလးေတြျပန္ၾကည့္လိုက္ရင္ matrix
ကိုေတာင္ျပန္မွတ္မိလာမွာပါ။
အဲ matrix ပဲလားဆိုရင္ေတာ့မဟုတ္ေသးပါဘူး Modulo Arithmetic ကိုလည္းသံုးရပါေသးတယ္။

Encryption စတင္လိုက္ရေအာင္ ။
ပထမဆံုးသိထားရမွာက Hill Cipher မွာ 2 * 2 matrix နဲ႕ 3 * 3 matrix ဆိုျပီးရွိပါတယ္။
ေနာက္ျပီးေတာ့ keyword လည္းရွိမယ္။ ေနာက္တစ္ခုကေတာ့ plain text ေပါ့ ။

2 * 2 Matrix နဲ႕စေလ့လာမယ္။ keyword က hill ကိုအသံုးျပဳျပီးေတာ့ “short example” ဆိုတဲ့ plain text ကို Encrypt လုပ္ၾကည့္မယ္။
ပထမဆံုး keyword ကို hill ဆိုတာကို က်ေနာ္တို႕ 2 * 2 matrix ထဲကိုထည့္ဖို႕လိုပါတယ္။
ျဖည့္ၾကည္ေတာ့ေအာက္ကလိုပံုစံမ်ိဳးျဖစ္သြားမယ္။
h1.jpg
ဒါကို number ေတြနဲ႕ အစားထိုးေတာ့ေအာက္ကလိုပံုစံမ်ိဳးျဖစ္သြားမယ္။ ဒီေနရာမွာ number ေတြကိုဘယ္လိုအစားသြင္းလဲဆိုတာသိထားဖို႕လိုပါမယ္။
A= 0 B=1 C=2 D=3 ဆိုတဲ့ sequence နဲ႕သတ္မွတ္ပါတယ္။ ဒါေၾကာင့္ H တန္ဖိုးဟာ 7 ျဖစ္သြားရတာပါ။
h2.jpg
2*2 Matrix ကိုသံုးထားတာျဖစ္တဲ့အတြက္ plain text ကို digraphs အေနနဲ႕ပံုစံခ်ရမွာျဖစ္ပါတယ္။ တကယ္လို႕ 3*3 matrix ဆိုရင္ေတာ့ trigraphs ပံုစံစီေပးရမွာေပါ့။
ေအာက္ကပံုေလးကိုၾကည့္လိုက္ရင္ရွင္းမွာပါ။
h3.jpg
ဒီ Character ေတြကိုလည္း keyword တုန္းကလိုပဲ Number ေတြနဲ႕ အစားသြင္းရမယ္။
ေအာက္ကလိုပံုမ်ိဳးရပါတယ္။
h4.jpg
ဒါဆိုရင္ Encryption လုပ္ေတာ့မယ္။ Encryption လုပ္မယ္ဆိုရင္ ေအာက္မွာျပထားတဲ့ပံုထဲကလို keyword နဲ႕ Plain Text ကို Multiply လုပ္ေပးရမွာျဖစ္ပါတယ္။
h5.jpg
Matrix ၂ ခုကို Multiply လုပ္ဖို႕အတြက္ ေအာက္မွာျပထားတဲ့ algebra rules ကိုသံုးျပီးေတာ့လုပ္ရမွာျဖစ္ပါတယ္။
h6
ဒါေၾကာင့္ Matrix ၂ ခုကို multiply လုပ္ထားတာကိုေအာက္မွာျပထားပါတယ္။
h7.jpg
ရလာတဲ့ အေျဖဟာ digit ေတြအရမ္းၾကီးေနတာကိုေတြ႕ရပါလိမ့္မယ္ ။ ဒါေၾကာင့္ က်ေနာ္တို႕သိထားရမွာက modulo 26 ကိုသံုးေပးရမယ္ဆိုတာပါပဲ။
ဘာေၾကာင့္ 26 ကိုသံုးလဲဆိုရင္ Character အေရအတြက္ 26 လံုးရွိလို႕ပဲျဖစ္ပါတယ္။

26 နဲ႕စားလို႕က်န္တဲ့အၾကြင္းကိုေတာ့ Character အေနနဲ႕ျပန္ေျပာင္းေပးမယ္ဆိုရင္ ပထမ Matrix အတြက္ Cipher Text ဟာ A နဲ႕ P ဆိုတာကိုသိရျပီျဖစ္ပါတယ္။ေအာက္ကပံုကိုၾကည့္ပါ။
h8.jpg
ဒီနည္းအတုိင္း Encrypt ဆက္လုပ္သြားမယ္ဆိုရင္ေတာ့ ေနာက္ဆံုးမွာ APADJ TFTWLFJ ဆိုတဲ့ Cipher Text ကိုရရွိမွာျဖစ္ပါတယ္။ စမ္းၾကည့္ပါဦးေနာ

3 * 3 Matrix နဲ႕ Encrypt လုပ္နည္းကိုဆက္ေလ့လာမယ္။
“retreat now” ဆိုတဲ့ plain text ကို back up ဆိုတဲ့ keyword နဲ႕ Encrypt လုပ္ၾကည့္မယ္။
ပံုမွန္အတုိင္းပဲ back up ဆိုတဲ့ keyword ကို 3 * 3 Matrix ထဲကိုအစားသြင္းမယ္။  ေအာက္ကပံုကိုၾကည့္ပါ။
h9.jpg
ျပီးရင္ Character ေတြကို Number ေတြအျဖစ္နဲ႕ အစားသြင္းမယ္။
h10.jpg

ေနာက္ေတာ့ plain text ကို trighraphs ထဲကိုထည့္ၾကည့္မယ္။ လြတ္ေနတဲ့ ေနရာေတြကိုေတာ့ ထံုးစံအတိုင္း X ေတြကိုအစားသြင္းေပးမယ္။
h11.jpg
ေနာက္တစ္ဆင့္ကလည္း 2 * 2 လိုပါပဲ။ keyword နဲ႕ digraphs ကို algebra နည္းအတိုင္း multiply လုပ္မယ္။
h12.jpg
3*3 Matrix ကို Multiply လုပ္ဖို႕ကိုေတာ့ေအာက္မွာျပထားတဲ့ Formula ကိုသံုးေပးရပါမယ္။

h13.jpg

h14.jpg
ဒါဆိုရင္ 2 *2 matrix တုန္းကလိုပဲ ဆက္ျပီး Encrypt လုပ္သြားႏိုင္ျပီလို႕ယူဆပါတယ္။ ေနာက္ဆံုး Cipher Text ကေတာ့
DPQRQ EVKPQ LR ရတာကိုေတြ႕ရမွာျဖစ္ပါတယ္။

Thanks for Reading.

Refrence : Google , Crypto Corner , Cryptic Codes

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s