Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Documente similare
CRIPTOSISTEME SIMETRICE I

Noțiuni de bază ale criptografiei

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Microsoft Word - O problema cu bits.doc

SECURITATE ȘI CRIPTOGRAFIE

8.1. Elemente de Aritmetică. 8. Aplicatii (15 aprilie 2019) Lema 8.1. Fie (A, +) un grup abelian şi H, K A. Atunci H K şi H + K = {h + k h H şi k K} s

Microsoft Word - Lab1a.doc

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Subiectul 1

Secţiunea 7-8 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA 1 ID 100 puncte Calculatoarele trebuie să se recunoască în rețeau

SSC-Impartire

Teoria Grafurilor şi Combinatorică recapitulare Principii de numărare Reţineţi că: P (n, r) este numărul de şiruri (sau r-permutări) de forma A 1,...,

Calcul Numeric

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Spatii vectoriale

Microsoft Word - Rezolvarea Test nr. 11.doc

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Microsoft Word - Algoritmi genetici.docx

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

ALGORITHMICS

Slide 1

Microsoft Word - Curs1.docx

Microsoft Word - TIC5

Elemente de Web design

Autoevaluare curs MN.doc

gaussx.dvi

Microsoft Word - D_ MT1_II_001.doc

Diapositive 1

E_d_Informatica_sp_SN_2014_bar_10_LRO

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Secţiunea 5-6 avansaţi PROBLEMA 1 Concurs online de informatică Categoria PROGRAMARE 100 puncte NR Un număr natural nenul V care se plictisea singur,

PowerPoint Presentation

Microsoft Visual C++ (abreviat MSVC) is a commercial integrated development environment (IDE) product engineered by Microsoft for the C, C++, and C++/

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

METODE NUMERICE ÎN INGINERIE

Dot Matrix Display Module and

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL

Curs7

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Calcul Numeric

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Slide 1

OPERATII DE PRELUCRAREA IMAGINILOR 1

OLM_2009_barem.pdf

Matematici aplicate științelor biologie Lab05 MV

Analiză de flux de date 29 octombrie 2012

43 Prelegerea 4 Protocoale de distribuire a cheilor 4.1 Introducere Am văzut că sistemele bazate pe chei publice nu necesită un canal sigur pentru tra

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

Microsoft Word - 2 Filtre neliniare.doc

CONCURSUL DE MATEMATICĂ APLICATĂ "ADOLF HAIMOVICI" ETAPA JUDEȚEANĂ 18 martie 2017 Filiera Tehnologică : profilul Tehnic Clasa a IX -a Problema 1. 2 Se

Microsoft Word - Prezentare - A4 - cernavoda.doc

LABORATOR 2

Acest fișier conține rezumatul anumitor explicații prezente în Curs - privind Sintaxa GNY Totul este legat de Alf = alfabetul de neterminali/ unități

Microsoft Word - Notiuni de arhitectura calculatoarelor.doc

Microsoft Word - Lucrarea_10_t.doc

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

ASDN

Secţiunea 5-6 începători Concurs online de informatică Categoria PROGRAMARE PROBLEMA puncte PERIODIC Se citește un număr natural nenul N. Se ump

Baze de date - Anul 2 Laborator 8 Limbajul de definire a datelor (LDD) (partea I) În general, instrucţiunile LDD sunt utilizate pentru definirea struc

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

1

Microsoft Word - Capitolul_07

carteInvataturaEd_2.0_lectia5.pdf

Aggregating Data

Ch

Microsoft PowerPoint - curs5-DPT-2010V97 [Compatibility Mode]

Laborator02

SUBPROGRAME

Slide 1

PROGRAMA CONCURSULUI NAŢIONAL

LUMINIŢA SCRIPCARIU

Pachete de lecţii disponibile pentru platforma AeL

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

PowerPoint Presentation

PowerPoint Presentation

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Microsoft Word - lab_access.doc

FOV03R Senzori fotoelectric reglabil tip furca. ro

Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob

EXCEL FĂRĂ SECRETE Grafice şi diagrame

De la BIT la procesor

Universitatea POLITEHNICA din Bucureşti Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei FISA DISCIPLINEI 1. Date despre program 1

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

EW-7416APn v2 & EW-7415PDn Ghid de instalare Macintosh / v2.0 0

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

Analiz¼a Matematic¼a - Curs 6 M¼ad¼alina Roxana Buneci

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Laborator 3

Example Title with Registration Microsoft® and Trademark SQL ServerTM

Slide 1

Microsoft Word - probleme_analiza_numerica_ses_ian09.rtf

Microsoft Word _POO_Lab_1_Modificari_v01.htm

ADRIAN TRIF BAZE DE DATE APLICAŢII ACCESS UTPRESS Cluj-Napoca, 2019 ISBN

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

Analiză statică Analiza fluxului de date 23 octombrie 2014

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB 6 aprilie 2019 Proba scrisă la MATEMATICĂ NOTĂ IM

Transcriere:

Laborator 4 1.04-5.04.2019 8.04-12.04.2019 1. Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere binare. Fiecare grup de 4 biţi reprezintă un număr hexazecimal. 0001 1 0010 2 0011 3 1010 - A 1011 B 1111 F Algoritmul DES acţionează asupra grupurilor de 64 de biţi, deci asupra unui număr hexa de 16 cifre. Pentru criptare DES foloseşte chei cu lungimea de 64 de biţi, din care sunt folosiţi doar 56. De exemplu, daca vom cripta numărul 8787878787878787 cu cheia 0E329232EA6D0D73 vom obţine 0000000000000000. La decriptare din 0000000000000000, folosind aceeaşi cheie, vom obţine tot 8787878787878787. Atunci cănd lungimea textului iniţial nu este multiplu de 16, vom completa cu numărul de 0-uri necesar. DES, descriere în detaliu DES este un algoritm de criptare pe blocuri (block cipher) ce acţionează asupra grupurilor de 64 de biţi utilizănd chei de 64 de biţi. Rezultatul este o permutare dintre cele 2^64 permutări posibile. A. Paşi preliminari. Impărţirea în blocuri de 32 de biţi Cei 64 de biţi iniţiali vor fi împărţiţi în 2 blocuri de 32 de biţi denumite L (left) and R (right), după exemplul de mai jos: M = 0123456789ABCDEF M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 L = 0000 0001 0010 0011 0100 0101 0110 0111 R = 1000 1001 1010 1011 1100 1101 1110 1111 1

B. Paşi preliminari. Alegerea cheii Fie K cheia hexazecimală K = 133457799BBCDFF1 Ce va duce la reprezentarea ei binară: K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 Pasul 1 Crearea a 16 sub-chei de 48 de biţi fiecare P1.1 Cheia originală este permutată conform tabelei PC-1: PC-1 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Adică, bitul 57 din cheia originală va deveni bitul 1 în cheia K+, bitul 49 din cheia originală va deveni bitul 2 din cheia K+, ş.a.m.d. K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001 (64b) K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111 (56b) (! Sunt grupuri de 7b, nu de 8) P1.2 Vom împărţi K+ în două părţi pe care le vom denumi C0 şi D0: K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111 (56b) C0 = 1111000 0110011 0010101 0101111 (! Sunt grupuri de 7b, nu de 8) D0 = 0101010 1011001 1001111 0001111 (! Sunt grupuri de 7b, nu de 8) P1.3 Folosind C0 şi D0, vom crea 16 blocuri Cn, Dn n=1,16. Fiecare Cn, Dn va fi creat din Cn-1, Dn-1 folosind schema de mai jos în care vom face rotaţii la stînga, funcţie de numărul din cea de-a doua coloană: 2

Iteration Number Number of Left Shifts 1 1 2 1 3 2 4 2 5 2 6 2 7 2 8 2 9 1 10 2 11 2 12 2 13 2 14 2 15 2 16 1 Exemplu: C3, D3 vor fi obţinute din C2, D2 rotite la stânga cu 2 biţi Din C0, D0 originali, vom obţine: C 0 = 1111000011001100101010101111 D 0 = 0101010101100110011110001111 C 1 = 1110000110011001010101011111 D 1 = 1010101011001100111100011110 C 2 = 1100001100110010101010111111 D 2 = 0101010110011001111000111101 C 3 = 0000110011001010101011111111 D 3 = 0101011001100111100011110101 C 4 = 0011001100101010101111111100 D 4 = 0101100110011110001111010101 C 5 = 1100110010101010111111110000 D 5 = 0110011001111000111101010101 C 6 = 0011001010101011111111000011 D 6 = 1001100111100011110101010101 C 7 = 1100101010101111111100001100 D 7 = 0110011110001111010101010110 C 8 = 0010101010111111110000110011 D 8 = 1001111000111101010101011001 C 9 = 0101010101111111100001100110 D 9 = 0011110001111010101010110011 C 10 = 0101010111111110000110011001 D 10 = 1111000111101010101011001100 C 11 = 0101011111111000011001100101 D 11 = 1100011110101010101100110011 C 12 = 0101111111100001100110010101 D 12 = 0001111010101010110011001111 C 13 = 0111111110000110011001010101 D 13 = 0111101010101011001100111100 C 14 = 1111111000011001100101010101 D 14 = 1110101010101100110011110001 C 15 = 1111100001100110010101010111 D 15 = 1010101010110011001111000111 C 16 = 1111000011001100101010101111 D 16 = 0101010101100110011110001111 3

P1.4 Vom calcula sub-cheile Kn n=1,16 aplicând următoarea permutare celor 16 numere binare obţinute prin concatenarea CnDn: PC-2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Observaţie: Din nou, primul bit din Kn va fi cel de-al 14-lea din sirul concatenat CnDn, al doilea bit din Kn va fi cel de-al 17-lea din CnDn, ş.a.m.d. C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110 K1 = 000110 110000 001011 101111 111111 000111 000001 110010 Celelalte chei vor fi în ordine: K2 = 011110 011010 111011 011001 110110 111100 100111 100101 (6 *8 = 48b) K3 = 010101 011111 110010 001010 010000 101100 111110 011001 K4 = 011100 101010 110111 010110 110110 110011 010100 011101 K5 = 011111 001110 110000 000111 111010 110101 001110 101000 K6 = 011000 111010 010100 111110 010100 000111 101100 101111 K7 = 111011 001000 010010 110111 111101 100001 100010 111100 K8 = 111101 111000 101000 111010 110000 010011 101111 111011 K9 = 111000 001101 101111 101011 111011 011110 011110 000001 K10 = 101100 011111 001101 000111 101110 100100 011001 001111 K11 = 001000 010101 111111 010011 110111 101101 001110 000110 K12 = 011101 010111 000111 110101 100101 000110 011111 101001 K13 = 100101 111100 010111 010001 111110 101011 101001 000001 K14 = 010111 110100 001110 110111 111100 101110 011100 111010 K15 = 101111 111001 000110 001101 001111 010011 111100 001010 K16 = 110010 110011 110110 001011 000011 100001 011111 110101 Pasul 2 Criptarea fiecărui grup de 64 de biţi P2.1 Vom efectua o permutare asupra grupului niţial de 64 de biţi pe care o vom numi IP (initial permutation): 4

IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Observaţie: primul bit din IP va fi cel de-al 58-lea din M, al doilea va fi cel de-al 50- lea din M, ş.a.m.d. M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010 P2.2 Vom impărţi permutaţia IP în două părţi de câte 32 de biţi fiecare: L0 şi R0 (left, right): L0 = 1100 1100 0000 0000 1100 1100 1111 1111 R0 = 1111 0000 1010 1010 1111 0000 1010 1010 P2.3 Trecând prin 16 iteraţii şi utilizând o funcţie f ce acţionează asupra a două blocuri, unul de date de 32 de biţi şi unul de subcheie de 48 de biţi, se va produce un rezultat de 32 de biţi. Vom nota cu + operaţia pe biţi XOR. În iteraţii vom efectua următoarele calcule: Ln = Rn-1 Rn = Ln-1 + f(rn-1,kn) pentru n=1, vom avea: K1 = 000110 110000 001011 101111 111111 000111 000001 110010 L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010 R1 = L0 + f(r0,k1) Pentru a calcula f(rn-1,kn) va trebui să expandăm fiecare bloc de 32 de biţi la unul de 48 folosind tabela de permutări E: 5

E BIT-SELECTION TABLE 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Primii trei biţi din E(Rn-1) sunt de fapt biţii din poziţiile 32, 1, 2 din Rn-1. Vom calcula E(R0) din R0 după cum urmează: R0 = 1111 0000 1010 1010 1111 0000 1010 1010 (32b) E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101 (48b) Obs: Fiecare bloc de 4 biţi originali au fost expandaţi la 6 biţi în E(R0) În continuare, K1 = 000110 110000 001011 101111 111111 000111 000001 110010 E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101 K1+E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111 Obs: Rezultatul ultimei operaţii XOR este un număr pe 48 de biţi. R1 din formula R1 = L0 + f(r0,k1) este însă pe 32 de biţi. Pentru a obţine acest număr de 32 de biţi vom trece din nou printr-o serie de permutări. Vom scrie Kn + E(Rn-1) =B1B2B3B4B5B6B7B8, unde fiecare Bi este un grup de 6 biţi. Vom calcula S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8), unde Si(Bi) este rezultatul folosirii permutării Si. Pentru a nu uita, fiecare funcţie S va avea drept intrare un grup de 6 biţi şi va avea drept ieşire un grup de 4 biţi. Row S1 Column Number No. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -------------------------------------------------------------- 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 -------------------------------------------------------------- 6

a. Primul şi ultimul bit din cei 6 va reprezenta un număr binar de 2 cifre din intervalul [0,3] şi îl vom numi generic I. b. Cei 4 biţi din mijlocul blocului de 6 biţi reprezintă un număr din intervalul [0,15] şi îl vom numi generic J. c. Vom căuta numărul aflat pe linia I şi coloana J în matricea de mai sus. Acesta va fi ieşirea funcţiei S1(B). B = 011011 I = 01 = 1 (linia) J = 1101 = 13 (coloana) S1(011011) = 5 (0101) Tabelele Si folosite în mod curent sunt: S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 7

Pentru prima iteraţie obţinem K1 + E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111. S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111 Pasul final al calculării funcţiei f este efectuarea unei permutaţii f pentru S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8). f = P(S1(B1)S2(B2)...S8(B8)) P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111 f = 0010 0011 0100 1010 1010 1001 1011 1011 R1 = L0 + f(r0, K1 ) = 1100 1100 0000 0000 1100 1100 1111 1111 + 0010 0011 0100 1010 1010 1001 1011 1011 = 1110 1111 0100 1010 0110 0101 0100 0100 După cele 16 iteraţii, vom obţine L16 şi R16 pe care le vom concatena invers: R16L16 şi vom aplica o ultimă permutaţie IP -1, după cum urmează: IP -1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 8

L16 = 0100 0011 0100 0010 0011 0010 0011 0100 R16 = 0000 1010 0100 1100 1101 1001 1001 0101 R 16L 16 = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100 IP -1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101 cu valoarea hexazecimală 85E813540F0AB405 În concluzie Message Key Cipher = 0123456789ABCDEF = 133457799BBCDFF1 = 85E813540F0AB405 9