Showing posts with label Cryptography. Show all posts
Showing posts with label Cryptography. Show all posts

Sunday, March 16, 2008

DES (10) - Iteration ၿပဳလုပ္ၿခင္းနွင့္ PC-2

ဒီ PC-1 အရ 64bits ကေန 56 bits ေၿပာင္းတယ္ဆိုေတာ့ နဂို 64bits ကေန 8bits ေလ်ာ့သြားပါတယ္။ အဲဒါေတြကေတာ့ 8,16,24,32,40,48,56 နဲ႔ 64 ခုေၿမာက္ bits ေတြ ၿဖစ္ပါတယ္။
အဲဒီ 56bits ကိုမွ C နဲ႔ D ခြဲ၇မွာ ၿဖစ္ၿပီး ပထမ 28bits (1-28¬) ဟာ C ၿဖစ္ၿပီး ေနာက္က 28bits (29-56) ဟာ D ၿဖစ္ပါတယ္။ C0 နဲ႔ D0 ရၿပီ ဆိုရင္ Left shift (ဘယ္ဘက္သို႔ အစားထိုးၿခင္း) ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ C နဲ႔ D အတြက္ left shift 16 rounds ရွိပါတယ္။ Iterarion ဖယား ကိုေတာ့ ေအာက္မွာ ေဖာ္ၿပလိုက္ပါတယ္။


ဒီဇယားအရ C0 နဲ႔ D0 အတြက္ left shift ဟာ 1 ၿဖစ္ပါတယ္။ ဒီေတာ့ C0 ရဲ႕ 1st ေနရာက bit ဟာ 32nd ေနရာကို ေရာက္မွာၿဖစ္ၿပီး အရင္ 32nd က 31st ၿဖစ္သြားမွာၿဖစ္ပါတယ္။ D0 ဟာလဲ ဒီအတိုင္း ၿဖစ္ပါတယ္။ C0 နဲ႔ D0 ကို shifted လုပ္ၿပီးရင္ C1 (28 bits) နဲ႔ D1 (28 bits) ရမွာၿဖစ္ပါတယ္။ အဲဒီ 56bits ကို Permuted choice -2 (PC-2) အရ ေနရာေရႊ႕လိုက္ရင္ key1 အတြက္ 48bits ရပါၿပီ။ ပံု(၁၂) မွာၾကည့္ပါ။

ပံု(၁၂)

အခုရထားတဲ့ Key1 (48btis) ဟာ function ထဲမွာ E-bits (48bits) နဲ႔ XOR ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ အရင္ရထားတဲ့ C1 နဲ႔ D1 ကိုသံုးၿပီး key algorithm ကအတိုင္း left shift ဇယား နဲ႔ တြဲၿပီး ဆက္လုပ္ရင္ C2 နဲ႔ D2 ကိုရမွာပါ။ အဲလို ဆက္လုပ္သြားရင္ key 16 round အတြက္ရမွာပါ။

ဆက္လက္ဖတ္ရွဳရန္

Friday, March 14, 2008

DES (09) - KEY ၿပဳလုပ္ၿခင္း

Key algorithm မွာလည္း encryption algorithm မွာလိုပဲ 16 round ရွိပါတယ္။ key algorithm အတြက္ Input ဟာ 64 bits ၿဖစ္ပါတယ္။ Input key 64 bits ကေတာ့ password သေဘာမ်ိဳးနဲ႔ ၾကိဳက္တာ ထားႏူိင္ပါတယ္။ ဒါေပမဲ့ တခု သတိထား ရမွာက key ဟာ Text အေရအတြက္ထက္ နဲလို႔ မရပါဘူး။ (ဥပမာ Text ဟာ 64 bits(3 rounds) ဆိုရင္ Key ဟာလည္း 64 bits(3 rounds) ရွိရမွာ ၿဖစ္ပါတယ္) ။ Key algorithm အရ input 64 bits ကို permuted choice 1 (PC1) အရ permutation လုပ္ရင္ 56 bits ရမွာ ၿဖစ္ပါတယ္။ Key algorithm နဲ႔ PC1 ကိုေတာ့ ေအာက္မွာ ေဖာ္ၿပလိုက္ပါတယ္။


ပံု (၁၀)

ပံု (၁၁)

Key algorithm နဲ႔ PC1


ဆက္လက္ဖတ္ရွဳရန္

Sunday, March 9, 2008

DES (08) - S-Box permutation နွင့္ Inverse Initial Permutation ၿပဳလုပ္ၿခင္း

S-Box ေတြမွာ အစားသြင္းလို႔ ရလာတဲ့ 48 bits ကိုေတာ့ permutation ထပ္လုပ္ ရမွာ ၿဖစ္ပါတယ္။
(ပံု ၈) မွာ ၾကည့္ပါ ။ 48 bits ကို permutation ၿပဳလုပ္ရင္ output ဟာ 32 bits ရမွာ ၿဖစ္ပါတယ္။


(ပံု ၈)
အခု function ကေန permuted လုပ္ၿပီးတဲ့ 32 bits ရလာၿပီဆိုရင္ algorithm အရ L0 ဟာ R1 ၿဖစ္ဖို႔အတြက္ function ကေန ရထားတဲ့ 32 bits နဲ႔ နဂို L0 (32 bits) ကို Exclusive-OR ၿပဳလုပ္ေပး ရမွာ ၿဖစ္ပါတယ္။အဲဒီ equation ကေတာ့ “R1=L0⊕f(R0.K1)” ၿဖစ္ပါတယ္။အဲလိုပဲ R0 ဟာလဲ L1 အၿဖစ္ ေၿပာင္းၿပီး assign လုပ္မွာ ၿဖစ္ပါတယ္။တခု သတိထား ရမွာက L1 အၿဖစ္ေၿပာင္းသြားတဲ့ R0 ဟာ ပံု-၃ မွာ IP လုပ္ၿပီး ရထားတဲ့ R0 (32bits) ၿဖစ္ပါတယ္။
အဲလို L နဲ႔ R ကို တလွည့္စီ ေၿပာင္းၿပီး 16 round ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ေနာက္ဆံုး R16 နဲ႔ L16 ရၿပီဆိုရင္ေတာ့ အဲဒီ R16(32bits) နဲ႔ L16(32bits) ကိုေပါင္းရင္ 64 bits ရမွာပါ။အဲဒီ 64 bits ကို inverse initial permutation (ပံု ၉) ၿပဳလုပ္ၿပီးတဲ့ အခါ final output (cipher text) 64 bits ကို ရရွိမွာၿဖစ္ပါတယ္။

(ပံု ၉)

ဆက္လက္ဖတ္ရွဳရန္

Friday, March 7, 2008

DES (07) - Sbox အစားသြင္းတြက္ခ်က္ပံု

Exclusive OR ၿပဳလုပ္ၿပီး ရလာတဲ့ 48 bits ကိုေတာ့ block ၈ ခုစီခြဲၿပီး input ကို S-box မွာ အစားသြင္း တြက္ခ်က္ရမွာ ၿဖစ္ပါတယ္ ။ Block ၁ ခုစီမွာ 6 bits ရွိပါတယ္ ။ ပထမ block (B1) ဟာ ပထမဆံုး 1-6 bits ၿဖစ္ပါတယ္ ။ေနာက္ဆံုး Block (B8) ကေတာ့ 42-48 bits ၿဖစ္ပါတယ္ ။ Block ၈ ခု အတြက္ S-box ကလဲ ၈ခု ရွိပါတယ္ ။S1 ကေန S8 ပါ ။ S-box ၁ခုအတြက္ Input bit က 6 bits ၿဖစ္ၿပီး output က 4 bits ၿဖစ္ပါတယ္ ။ S-box ၈ ခုရဲ႕ table ကို ပံု(၇) မွာ ၾကည့္ပါ ။

ပံု(၇)

အခု S1 အတြက္ input 6 bits ဟာ B1 က 6 bits ၿဖစ္ပါတယ္ ။ ဥပမာ အေနနဲ႔ B1 ရဲ႕ 1-6 bits ဟာ 011011 ဆိုပါစို႔ ။ အဲဒီ 6 bits မွာ ပထမဆံုး နဲ႔ ေနာက္ဆံုး bit ေတြဟာ binary code ကို အေၿခခံထားတဲ့ Row no 0 မွ 3 ထိ ၿဖစ္ပါတယ္ ။ 00 ဟာ Row no 0, 01 ဟာ Row no 1, 10 ဟာ Row no 2 နဲ႔ 11 ဟာ Row no 3 ၿဖစ္ပါတယ္ ။ အလယ္ 4 bits ကေတာ့ Column no အတြက္ ၿဖစ္ပါတယ္ ။ Column no အတြက္ကေတာ့ ေအာက္ပါအတိုင္း ၿဖစ္ပါတယ္။
0000 - Column no 0
0001 - Column no 1
0010 - Column no 2
0011 - Column no 3
0100 - Column no 4
0101 - Column no 5
0110 - Column no 6
0111 - Column no 7
1000 - Column no 8
1001 - Column no 9
1010 - Column no 10
1011 - Column no 11
1100 - Column no 12
1101 - Column no 13
1110 - Column no 14
1111 - Column no 15
အဲဒီေတာ့ 011011 ကို S1 မွာ အစားထိုးေတာ့ row က 01 နဲ႔ column က 1101 ၿဖစ္ပါတယ္ ။ S1 က row 1 နဲ႔ column 13 ဆံုတဲ့ေနရာက 5 ဆိုေတာ့ S1 ရဲ႕ output (4 bits) ဟာ 0101 ၿဖစ္ပါတယ္ ။ က်န္တဲ့ S2 – S8 ကို အဲလို ဆက္တြက္သြားရင္ output အတြက္ 48 bits ရမွာပါ ။

ဆက္လက္ဖတ္ရွဳရန္

Sunday, March 2, 2008

DES (06) - E bits selection table

အခု L,R Block ၂ခု ရလာၿပီ ဆိုေတာ့ ကြၽန္ေတာ္တို႔ဟာ L (32 bits) ကို ဒီအတိုင္း ထားခဲ့ၿပီး R (32 bits ) ကို key နဲ႔တြဲၿပီး function f(R,K) ၿပဳလုပ္ရန္ လိုပါတယ္ ။ ပံု (၅) ကိုၾကည့္ပါ ။

ပံု (၅)

ဒီ algorithm အရ ပထမဆံုး R (32 bits ) ကို E bits (48 bits) ၿပဳလုပ္ရန္ လိုပါတယ္ ။ E bits ဆိုတာကေတာ့ R (32 bits) ထဲက bits ေတြကို ၿပန္သံုးၿပီး 48 bits ရေအာင္ ၿပဳလုပ္ၿခင္း ၿဖစ္ပါတယ္။
E bits selection table ကို ပံု (၆) မွာၾကည့္ပါ ။


ပံု (၆)

E bits selection table လုပ္ၿပီးလို႔ 48 bits ရလာၿပီ ဆိုရင္ေတာ့ အဲဒီ E bits (48 bits) နဲ႔ Key bits (48 bits) တို႔ကို ေပါင္း (Exclusive OR) ၿပဳလုပ္ေပး ရမွာ ၿဖစ္ပါတယ္။ Key bits ေတြဘယ္လို ရလာတယ္ ဆိုတာေတာ့ ကြၽန္ေတာ္ ေနာက္ပိုင္းမွာ ရွင္းၿပသြားပါမယ္။ အခု ေလာေလာဆယ္ေတာ့ E bits နဲ႔ Key bits ေတြေပါင္းၿပီး function ၿပဳလုပ္တဲ့ အပိုင္းကို ရွင္းၿပသြားမွာ ၿဖစ္ပါတယ္။ E bits (48 bits) နဲ႔ Key (48 bits) ေပါင္းရင္ 48 bits ရပါတယ္။ Binary code (0 or 1) ကို ေပါင္းနည္း (Exclusive OR) က ေအာက္ပါအတိုင္း ၿဖစ္ပါတယ္။

(Exclusive OR)

xy=z

00=0
0
1=1
1
0=1
1
1=0


ဆက္လက္ဖတ္ရွဳရန္

Thursday, February 28, 2008

DES (05) - Initial Permutation နွင့္ L R ၿပဳလုပ္ၿခင္း

အခုရလာတဲ့ 64 bits ကို ပထမဆံုး initial permutation ၿပဳလုပ္ရန္ လိုပါတယ္ ။ algorithm မွာ IP ဆိုတာ

initial permutation ကို ေၿပာတာ ၿဖစ္ပါတယ္ ။ Permutaiton ဆိုတာကေတာ့ ဂဏန္းေတြကို ေနရာေရႊ႕တာၿဖစ္ပါတယ္ ။ ပံု (၃) ကို ၾကည့္ပါ ။


ပံု (၃)

ဒီ ပံုအရ အရင္ 64 bits က ၅၈ ခုေၿမာက္ bit ဟာ ၁ ေနရာကို ေရြႊ႕လာမွု ၿဖစ္ပါတယ္ ။ ၂ ေနရာကို ေတာ့ အရင္ ၅၀ ေနရာက bit ေရာက္လာမွာ ၿဖစ္ပါတယ္ ။ ၆၄ ေနရာကေတာ့ အရင္ ၇ ေနရာက bit ၿဖစ္ပါတယ္ ။

IP ၿပဳလုပ္ၿပီး ရလာတဲ့ 64 bits ကို L (32 bits) နဲ႔ R (32 bits) ဆိုၿပီး ၂ ပိုင္း ခြဲရမွု ၿဖစ္ပါတယ္ ။ L မွုာ ၁ - ၃၂ ထိ 32 bits ရွိရမွာ ၿဖစ္ၿပီး R မွာ ၃၃-၆၄ ထိ 32 bits ရွိရမွာပါ ။ အခုဆိုရင္ ကြၽန္ေတာ္တို႔ဟာ L (32bits ) နဲ႔
R (32 bits) ရပါၿပီ ။ ပံု (၄) ကိုၾကည့္ပါ ။

ပံု (၄)

ဆက္လက္ဖတ္ရွဳရန္

Friday, February 22, 2008

DES (04) - Character မွ Binary သို႔ေၿပာင္းနည္း


တြက္ခ်က္ပံုုကေတာ့ ပထမဆံုး အေနနဲ႔ character ကို ASCII code ရဲ႕ Hexadecimal value ေၿပာင္းေပးရမွာ ၿဖစ္ပါတယ္ ။ “standard” ဆိုတဲ့ စာလံုးကို ASCII code Hexadecimal value ေၿပာင္းမယ္ဆိုရင္ “s” ဟာ ဟာ hexadecimal code အရ “73” ၿဖစ္ပါတယ္ ။ အဲဒီ hexadecimal code ကိုမွ binary code ေၿပာင္းရမွာပါ ။ hexadecimal code “73” ဟာ binary code အရ “01110011” ၿဖစ္ပါတယ္ ။ အခုဟာက “s” ဆိုတဲ့ character ၁ လံုးအတြက္ binary ၈ လံုးရတာကို တြက္ၿပတာၿဖစ္ပါတယ္ ။ က်န္တဲ့ “tandard” ဆိုိတဲ့ character ၇ လံုးကို ဆက္တြက္ရင္ input အတြက္ binary 64 bits ရပါၿပီ ။ ဒီလို တြက္ခ်က္တာကေတာ့ Boolean algebra တြက္နည္းကို သိၿပီးထားရင္ အဆင္ေၿပမွာပါ ။ ပိုမိုလြယ္ကူေအာင္ ASCII value table ကို ေဖာ္ၿပေပးလိုက္္ပါတယ္ .... ။

ပံု (၂)

ဆက္လက္ဖတ္ရွဳရန္

Thursday, February 21, 2008

DES (03) - Algorithm

DES ရဲ႔ algorithm ကိုေအာက္မွာေဖာ္ၿပလိုက္ပါတယ္ ။



ပံု (၁)

ပထမဦးဆံုးအေနနဲ႔ DES algorithm ကို ေဖာ္ၿပေပးလိုက္ပါတယ္ ။ Cryptography မွာ algorithm ဟာ အသက္ပါပဲ ။ Algorithm ေပၚ မူတည္ၿပီး data ရဲ႕ လံုၿခံဳမွဳ ဟာ ေၿပာင္းလဲနိုင္ပါတယ္ ။

ဒီ algorithm အရ data ကို input အေနနဲ႔ထည့္ေပးမယ္ဆိုရင္ အဲဒီ data ကို encryption လုပ္ၿပီး
output data ၿပန္ရပါမယ္။ အဲဒီ output data ကို cipher text လို႔ေခၚပါတယ္။ DES မွာေတာ့ data ေတြကို encryption တၾကိမ္မွာ 64 bits (binary format) ၿပဳလုပ္ေပးႏိူင္ပါတယ္ ။ input data ကို တၾကိမ္ကို 64 bits တြက္ခ်က္တယ္ ဆိုရာမွာ အဲဒီ 64 bits ဟာ character အေနနဲ႔ ၈ လံုးကို ေၿပာတာပါ ။ ဥပမာ standard ဆိုတဲ့ စာလံုးကို input အေနနဲ႔ ထည့္ေပးမယ္ ဆိုရင္ “standard” ဆိုတဲ့ စာလံုးဟာ character အေနနဲ႔ ၈ လံုးၿဖစ္ပါတယ္။ အဲဒီ character ၈ လံုးကို binary code ေၿပာင္းရင္ 64 bits ရပါတယ္ ။ character ၁ လံုးမွာ binary ၈ လံုးရွိတဲ့အတြက္ character ၈ လံုး အတြက္ binary ၆၄ လံုးရတာပါ ။


ဆက္လက္ဖတ္ရွဳရန္

DES (02) - ကြၽန္ေတာ္ ႏွင့္ Cryptography

ကြၽန္ေတာ္ MPEI တကၠသိုလ္ မွာေက်ာင္းသားစၿဖစ္ေတာ့ Supervisor တစ္ေယာက္ရပါတယ္ ။ သူက ကြၽန္ေတာ့္ကို Thesis ေခါင္းစဥ္ အၿဖစ္ “Cryptographical methods of protection the information” ကိုေရြးေပးပါတယ္ ။ကြၽန္္ေတာ္ကလဲ ကိုယ္မသိေသးတဲ့ ဘာသာရပ္လဲၿဖစ္တာမို႔ နဲနဲစိတ္၀င္စားတာရယ္ ၊ဆရာမကလဲ အဲဒီအေၾကာင္းကို တၿခားဘာသာရပ္ေတြထပ္ပိုသိေတာ့ စာသင္ရတာ အခက္အခဲမရွိေအာင္ အဲဒီေခါင္းစဥ္ကို လက္ခံခဲ့ပါတယ္ ။

ကြၽန္ေတာ့္အတြက္ ကံေကာင္းတာ ကေတာ့ Cryptography အေၾကာင္းကို ကြၽန္ေတာ့္အရင္ ေလ့လာထားၿပီး ကြၽန္ေတာ့္ကို အဲဒီ အေၾကာင္း ေတြ ေၿပာၿပၿပီး အကူအညီေတြ အမ်ားၾကီး ေပးတတ္တဲ့ ကိုဘလူးဖီးနစ္ တစ္ေယာက္ရွိေနတာပါပဲ ။ ကြၽန္ေတာ္ကို စာရွင္းၿပ ေပးရဳံ တင္မက လိုအပ္ရင္ ညမအိပ္ပဲ program ေတြပါကူေရးေပး ခဲ့ပါတယ္။အခုလဲ သူ႔ဘေလာ့ခ္မွာ အေၾကာင္းအရာ စံုစံုလင္လင္နဲ႔ ေလ့လာလို႔ ရေအာင္ cryptography အေၾကာင္းပါ ေရးရန္ အၾကံၿပဳတဲ့ အတြက္ ကြၽန္ေတာ္ သိထားသမွ်ကို မွ်ေ၀လိုက္ပါတယ္ ။

Cryptography ဆိုတာကေတာ့ cipher (၀ွက္စာ) သေဘာတရားမ်ိဴးပါပဲ ။ အရင္တုန္းကေတာ့ Cryptography ကိုစစ္ဘက္ေရးရာေတြမွာ အသံုးၿပဳခဲ့ၾကေပမဲ့ အခုအခ်ိန္မွာေတာ့ ေနရာက႑အသီးသီးမွာ အသံုးၿပဳေနၾကပါၿပီ ။ Cryptography ကို Encryption algorithm ေတြကိုသံုးၿပီး Program ေတြေရးၿပီး user name နဲ႔ password တို႔ကို မူရင္း code ေတြကေန encrypted code ေတြေၿပာင္းၿပီး ၀ွက္ထားတာမ်ိဴး ၊ database ထဲက data ေတြကို မဆိုင္တဲ့သူေတြ (ဥပမာ hacker ေတြ) ေတြရန္က ကာကြယ္ႏူိင္ေအာင္ မူရင္း data ေတြကို ၀ွက္တာမ်ိဴးေတြမွာ သံုးႏိူင္ပါတယ္ ။

အခု ပထမဆံုးအေနနဲ႔ Cryptography ကို DES (Data Encryption Standard) နဲ႔ စၿပီးရွင္းၿပသြားပါမယ္ ။ ကြၽန္ေတာ္ၾကိဳၿပီးေတာင္းပန္ထားခ်င္တာကေတာ့ ကြၽန္ေတာ္က အဂ္လိပ္စာ အားနည္းတဲ့အတြက္ မူရင္း e-book ကိုဖတ္ၿပီး ရွင္းၿပတဲ့အခါ အမွားပါရင္ ခြင့္လႊတ္ေပးေစလိုပါတယ္ ..........။


ဆက္လက္ဖတ္ရွဳရန္

(01) - မဂၤလာပါ !

ဒီိ ဘေလာ႔ခ္ကို ၀င္ေရာက္ၾကည့္ရွဳတဲ့အတြက္ ေက်းဇူးတင္ပါတယ္။

ဒီ ဘေလာ့ခ္မွာေရးရတဲ့ ရည္ရြယ္ခ်က္ကေတာ့ ကြၽန္ေတာ္ သိထားသမွ်ကို ၿမန္မာေတြကို ေ၀မွ်ေပးခ်င္တာပါ။ သိထားၿပီးသားေတြၿဖစ္ႏိူင္ေပမဲ့ မသိေသးတဲ့သူေတြအတြက္ေတာ့ အက်ိဴးရွိေလာက္ပါတယ္။ ကြၽန္ေတာ္အဓိက တင္ၿပခ်င္တာကေတာ့ Cryptography အေၾကာင္းပဲၿဖစ္ပါတယ္ ။

ကြၽန္ေတာ့အေနနဲ႔ ဘေလာ့ခ္ကို အခုမွ စလုပ္တာ ၿဖစ္လို႔ အမွားအယြင္းေတြ ရွိေနရင္ ခြင့္လႊတ္ေပးေစ လိုပါတယ္။ မအားလပ္လို႔ မေရးႏိူင္ရင္လဲ သည္းခံေပးၾကပါ။ လိုအပ္တာရွိရင္လဲ ေ၀ဖန္၊ အၾကံၿပဳ၊ ေဆြးေႏြးႏိူင္ပါတယ္ …………..

ကြၽန္ေတာ့္ email က thurein.reddevil@gmail.com ပါ ။


ဆက္လက္ဖတ္ရွဳရန္