Sunteți pe pagina 1din 7

1.

1 Partea teoretică:

Algoritmul MD4 Message-Digest este o funcție de hash criptografică dezvoltată de Ronald Rivest în
1990. Lungimea digestiei este de 128 biți. Algoritmul a influențat proiectările ulterioare, precum algoritmii
MD5, SHA-1 și RIPEMD. Initialismul "MD" inseamna "Message Digest".
O operațiune MD4: MD4 constă din 48 din aceste operațiuni, grupate în trei runde de 16 operații. F este o
funcție neliniară; o funcție este utilizată în fiecare rundă. Mi denotă un bloc pe 32 de biți din intrarea
mesajului, iar Ki denotă o constantă pe 32 de biți, diferită pentru fiecare operație.
Securitatea MD4 a fost grav compromisă. Primul atac complet de coliziune împotriva MD4 a fost publicat
în 1995 și mai multe atacuri mai noi au fost publicate de atunci.

1.2 PARTEA PRACTICĂ:

Fie un mesaj aleatoriu care intentionam sa fie mesajul pentru parola.(primele doua simboluri
trebuie sa fieinitialele student)

Mesaj: NTcriptografie.. (16 SIMBOLURI)---128 Biți

Figura 1.1 Schema de criptare al algoritmului MD4

01001110 01010100 01100011 01110010 01101001 01110000 01110100 01101111


01100111 01110010 01100001 01100110 01101001 01100101 00101110 00101110
A => 01001110 01010100 01100011 01110010
B => 01101001 01110000 01110100 01101111

C => 01100111 01110010 01100001 01100110


D => 01101001 01100101 00101110 00101110

1. F= B xor C xor D
01101001 01110000 01110100 01101111xor 01100111 01110010 01100001 01100110 xor
01101001 01100101 00101110 00101110 = 11100100010100000100000

2.A+F mod 2^32= (01001110 01010100 01100011 01110010+ 11100100010100000100000)


mod2^32 = (1314153330 + 7481376) mod 2^32=1321634706
=(01001110110001101000101110010010)

3. P(2)+Mi mod 2^32 = (1321634706 + 0 )mod 2^32 = 1321634706


=(01001110110001101000101110010010)

4. 01101001 01110000 01110100 01101111<<< 3 = 01101001 01110000 01110100 01101010


(B-bloc)

5. D=>A=>01101001 01100101 00101110 00101110


A=>B=>01101001 01110000 01110100 01101010
B=>C=>01101001 01110000 01110100 01101111
C=>D=>01100111 01110010 01100001 01100110

1. F= A xor B xor C
01101001 01110000 01110100 01101010 xor 01101001 01110000 01110100 01101111
xor 01100111 01110010 01100001 01100110= 1100111011100100110000101100011

2.A+F mod 2^32= (01101001 01100101 00101110 00101110+


1100111011100100110000101100011) mod2^32 = (1768238638 + 1735549283)
mod2^32=3503787921 (11010000110101111000111110010001)

3. P(2)+Mi mod 2^32 = (3503787921 +1) mod 2^32 = 3503787922


(11010000110101111000111110010010)

4. 11010000110101111000111110010010 <<< 7 = 01100110001110000110101000111000


D=>A=>01100111 01110010 01100001 01100110
A=>B=>01100110 00111000 01101010 00111000
B=>C=>10110010 11110101 11000110 00001010
C=>D=>01100111 01110010 01100001 01100110

1. F= D xor A xor B
01100111 01110010 01100001 01100110 xor 01100111 01110010 01100001 01100110xor
01100110 00111000 01101010 00111000= 10110011101111111100110101010100

2.A+F mod 2^32= (01100111 01110010 01100001 01100110 +


10110011101111111100110101010100) mod2^32= (1735549286 +3015691604 ) mod2^32=
456273594
(00011011001100100010111010111010)

3. P(2)+Mi mod 2^32 = (456273594+2)mod 2^32 = 456273596


(00011011001100100010111010111100)
2
4. 00011011001100100010111010111100 <<< 11= 10010001011101011110000011011001

5. D=>A=>01100111 01110010 01100001 01100110


A=>B=>10010001 01110101 11100000 11011001
B=>C=>01100110 00111000 01101010 00111000
C=>D=>10110010 11110101 11000110 00001010

1. F= C xor D xorA
10010001 01110101 11100000 11011001 xor 01100110 00111000 01101010 00111000 xor
10110010 11110101 11000110 00001010= 10010001011101011110000011011001

2.A+F mod 2^32= (01100111 01110010 01100001 01100110+


10010001011101011110000011011001) mod2^32= (1735549286+2440421593) mod2^32 =
= 4175970879
(11111000111010000100001000111111)

3. P(2)+Mi mod 2^32 = (4175970879+3)mod 2^32 = 4175970882


(11111000111010000100001001000010)

4. 11111000111010000100001001000010 <<<19 = 00010010000101111100011101000010

5. D=>A=>10110010 11110101 11000110 00001010


A=>B=>00010010000101111100011101000010
B=>C=>10010001 01110101 11100000 11011001
C=>D=>10010001 01110101 11100000 11011001
1. F= B xor C xor D
00011100 01010101 01101001 01010101 xor 01100110 00111000 01101010 00111000 xor
01100110 00111000 01101010 00111000= 11101011000110001110001110110100

2.A+F mod 2^32= (10110010 11110101 11000110 00001010 +


11101011000110001110001110110100)mod2^32= (3002451466 +3944276916) mod2^32 =
2651761086 (10011110000011101010100110111110)

3. P(2)+Mi mod 2^32 = (2651761086 + 4) mod 2^32 = 2651761090


(10011110000011101010100111000010)

4. 10011110000011101010100111000010 <<<3 =11110000 01110101 01001110 00010100

5. D=>A=>01100110 00111000 01101010 00111000


A=>B=>11110000 01110101 01001110 00010100
B=>C=>00011100 01010101 01101001 01010101
C=>D=>10010001 01110101 11100000 11011001

1. F= A xor B xor C
11110000 01110101 01001110 00010100 xor 00011100 01010101 01101001 01010101 xor
10010001 01110101 11100000 11011001 = 1111101010101011100011110011000

2.A+F mod 2^32= (01100110 00111000 01101010 00111000 +


1111101010101011100011110011000 ) mod2^32= (1714973240 + 2102773656) mod2^32 =
3817746896 (11100011100011100011000111010000)

3. P(2)+Mi mod 2^32 = (3817746896 + 5)mod 2^32 = 3817746901


3
(11100011100011100011000111010101)

4. 11100011100011100011000111010101 <<<7 = 11000111000110001110101011110001

5. D=>A=>10010001 01110101 11100000 11011001


A=>B=>11000111 00011000 11101010 11110001
B=>C=>11110000 01110101 01001110 00010100
C=>D=>00011100 01010101 01101001 01010101

1. F= D xor A xor B
11000111 00011000 11101010 11110001 xor 11110000 01110101 01001110 00010100 xor
00011100 01010101 01101001 01010101 = 101011001110001100110110110000

2.A+F mod 2^32= (10010001 01110101 11100000 11011001 + 101011 00111000 11001101
10110000) mod2^32= (2440421593 + 725142960) mod2^32 = 3165564553
(10111100101011101010111010001001)

3. P(2)+Mi mod 2^32 = (3165564553 + 6)mod 2^32 = 3165564559


(10111100101011101010111010001111)

4. 10111100101011101010111010001111 <<<11= 01110101011101000111110111100101

5. D=>A=>00011100 01010101 01101001 01010101


A=>B=>01110101 01110100 01111101 11100101
B=>C=>11000111 00011000 11101010 11110001
C=>D=>11110000 01110101 01001110 00010100

1. F= C xor D xor A
01110101 01110100 01111101 11100101xor 11000111 00011000 11101010 11110001 xor
11110000 01110101 01001110 00010100 = 1000010000110011101100100000000

2.A+F mod 2^32= (00011100 01010101 01101001 01010101+


1000010000110011101100100000000)mod2^32=(475359573 + 35248384) mod2^32 =
510607957
(00011110011011110100001001010101)

3. P(2)+Mi mod 2^32 = (510607957 + 7)mod 2^32 = 510607964


(00011110011011110100001001011100)

4. 00011110011011110100001001011100 <<<19 = 00010010111000001111001101111010

5. D=>A=>11110000 01110101 01001110 00010100


A=>B=>00010010 11100000 11110011 01111010
B=>C=>01110101 01110100 01111101 11100101
C=>D=>11000111 00011000 11101010 11110001

1. F= B xor C xor D
00010010 11100000 11110011 01111010 xor 01110101 01110100 01111101 11100101 xor
11000111 00011000 11101010 11110001= 10100000100011000110010001101110

4
2.A+F mod 2^32= (11110000 01110101 01001110 00010100 +
10100000100011000110010001101110 )mod 2^32= (4034219540 +2693555310) mod2^32 =
2432807554
(10010001000000011011001010000010)

3. P(2)+Mi mod 2^32 = (2432807554 + 8) mod 2^32 = 2432807562


(10010001000000011011001010001010)

4. 10010001000000011011001010001010 <<< 3 = 10001000000011011001010001010100

5. D=>A=>11000111 00011000 11101010 11110001


A=>B=>10001000 00001101 10010100 01010100
B=>C=>00010010 11100000 11110011 01111010
C=>D=>01110101 01110100 01111101 11100101

1. F= A xor B xor C
10001000 00001101 10010100 01010100 xor 00010010 11100000 11110011 01111010 xor
01110101 01110100 01111101 11100101 = 11101111100110010001101011001011

2.A+F mod 2^32= (11000111 00011000 11101010 11110001+


11101111100110010001101011001011) mod 2^32= (3340298993 + 4019788491) mod2^32 =
3065120188
(10110110101100100000010110111100)

3. P(2)+Mi mod 2^32 = (3065120188 + 9) mod 2^32 = 3065120197


(10110110101100100000010111000101)

4. 10110110101100100000010111000101 <<< 7 = 01011001000000101110001011011011

5. D=>A=>01110101 01110100 01111101 11100101


A=>B=>01011001 00000010 11100010 11011011
B=>C=>10001000 00001101 10010100 01010100
C=>D=>00010010 11100000 11110011 01111010
1. F= D xor B xor A
01011001 00000010 11100010 11011011 xor 10001000 00001101 10010100 01010100 xor
00010010 11100000 11110011 01111010 = 11000011111011111000010111110101

2.A+F mod 2^32= (01110101 01110100 01111101 11100101 +


11000011111011111000010111110101) mod 2^32= (1970568677 + 3287254517) mod 2^32
= 962855898 (111001011001000000001111011010)

3. P(2)+Mi mod 2^32 = (962855898 + 10) mod 2^32 = 962855908


(00111001011001000000001111100100)

4. 00111001011001000000001111100100 <<< 11 = 00100000000111110010000111001011

5. D=>A=>00010010 11100000 11110011 01111010


A=>B=>00100000 00011111 00100001 11001011
B=>C=>01011001 00000010 11100010 11011011
C=>D=>10001000 00001101 10010100 01010100

1. F= Cxor D xor A
5
00100000 00011111 00100001 11001011 xor 01011001 00000010 11100010 11011011xor
10001000 00001101 10010100 01010100 = 11110001000100000101011101000100

2.A+F mod 2^32= (00010010 11100000 11110011 01111010 +


11110001000100000101011101000100) mod 2^32= (316732282+4044379972) mod 2^32 =
66144958
(00000011111100010100101010111110)

3. P(2)+Mi mod 2^32 = (66144958+11)mod 2^32 = 66144969


(00000011111100010100101011001001)

4. 00000011111100010100101011001001 <<< 19 = 01010110010010000001111110001010

5. D=>A=>10001000 00001101 10010100 01010100


A=>B=>01010110 01001000 00011111 10001010
B=>C=>00100000 00011111 00100001 11001011
C=>D=>01011001 00000010 11100010 11011011
1. F= B xor C xor D
01010110 01001000 00011111 10001010 xor 00100000 00011111 00100001 11001011xor
01011001 00000010 11100010 11011011 = 101111010101011101110010011010

2.A+F mod 2^32= (10001000 00001101 10010100 01010100 +


101111010101011101110010011010) mod2^32= (2282591316 +794156186) mod 2^32 =
3076747502

3. P(2)+Mi mod 2^32 = (3076747502+12)mod 2^32 = 3076747514


(10110111011000110111000011111010)

4. 10110111011000110111000011111010 <<< 3 = 10111011000110111000011111010101

5. D=>A=>01011001 00000010 11100010 11011011


A=>B=>10111011 00011011 10000111 11010101
B=>C=>01010110 01001000 00011111 10001010
C=>D=>00100000 00011111 00100001 11001011
1. F= A xor B xor C
10111011 00011011 10000111 11010101 xor 01010110 01001000 00011111 10001010 xor
00100000 00011111 00100001 11001011 = 11001101010011001011100110010100

2.A+F mod 2^32= (01011001 00000010 11100010 11011011 +


11001101010011001011100110010100) mod2^32= (1493361371 + 3444357524) mod 2^32 =
642751599 (100110010011111001110001101111)

3. P(2)+Mi mod 2^32 = (642751599 + 13) mod 2^32 =642751612


(00100110010011111001110001111100)

4. 00100110010011111001110001111100 <<< 7 = 00100111110011100011111000010011

5. D=>A=>00100000 00011111 00100001 11001011


A=>B=>00100111 11001110 00111110 00010011
B=>C=>10111011 00011011 10000111 11010101
C=>D=>01010110 01001000 00011111 10001010

1. F= D xor A xor B

6
00100111 11001110 00111110 00010011 xor 10111011 00011011 10000111 11010101 xor
01010110 01001000 00011111 10001010 = 11001010100111011010011001001100

2.A+F mod 2^32= (00100000 00011111 00100001 11001011+


11001010100111011010011001001100) mod 2^32 = (538911179 + 3399329356) mod 2^32 =
3938240535 (11101010101111001100100000010111)

3. P(2)+Mi mod 2^32 = (3938240535 + 14) mod 2^32 = 4127422944


(11101010101111001100100000100101)

4. 11101010101111001100100000100101 <<< 11 = 11100110010000010010111101010101

5. D=>A=>01010110 01001000 00011111 10001010


A=>B=>11100110 01000001 00101111 01010101
B=>C=>00100111 11001110 00111110 00010011
C=>D=>10111011 00011011 10000111 11010101

1. F= C xor D xor A
11100110 01000001 00101111 01010101 xor 00100111 11001110 00111110 00010011 xor
10111011 00011011 10000111 11010101 = 11101010111111010111010111111110

2.A+F mod 2^32= (01010110 01001000 00011111 10001010 +


1111010100101001001011010010011) mod 2^32 = (1447567242+ 2056558227) mod 2^32 =
3504125469 (11010000110111001011011000011101)

3. P(2)+Mi mod 2^32 = (3504125469 + 15)mod 2^32 = 3504125484


(11010000110111001011011000101100)

4. 11010000110111001011011000101100 <<< 19 = 10110001011001101000011011100101

5. D=>A=>10111011 00011011 10000111 11010101


A=>B=>10110001 01100110 10000110 11100101
B=>C=>11100110 01000001 00101111 01010101
C=>D=>00100111 11001110 00111110 00010011
Rezultat: 10111011 00011011 10000111 11010101 10110001 01100110 10000110 11100101 11100110
01000001 00101111 01010101 00100111 11001110 00111110 00010011= » Õ±f åæA/U'Î>
Concluzii:
În acesta lucrare de laborator am utilizat algoritmul de criptare MD4 pentru a cripta mesajul
„NTcriptografie..” din 16 simboluri. În urma efectuării operațiilor de criptare la al 16 pas am primit
mesajul criptat:
01110011 00101010 01110010 01001000 10111010 10101111 01110000 00000100 00011011 11001111
00000100 10110100 10011001 11010011 01100001 10101110. Care dupa aceasta a fost convertit din cod
binar în cod ASCII. Astfel în final am obținut următorul hash = » Õ±f åæA/U'Î>

S-ar putea să vă placă și