Algoritma untuk melakukan enkripsi data

Revo Faris Saifuddin
4 min readFeb 10, 2019

Data Encryption Standard(DES/3DES)

DES adalah salah satu dari algoritma yang biasa digunakan untuk melakukan enkripsi data yang bagaimana data asli hanya dapat dibaca oleh pemilik kunci untuk membuka enkripsi pada data. Pada awalnya DES menggunakan ukuran 56 bit, dan sudah cukup untuk melakukan enkripsi yang aman. Seiring berjalanya waktu dan perkembangan teknologi untuk membobol keamanan pada data dengan cara brute force menjadi lebih mungkin untuk dilakukan. Pada algoritma DES menciptakan solusi yang sederhana tidak perlu membuat algoritma baru dengan menjalankan algoritma sebanyak tiga kali untuk masing-masing blok data, maka ukuran key akan menjadi 168bit dan algoritma DES lebih aman dari sebelumnya.

Triple DES adalah sebuah cipher yang dibentuk oleh DES menggunakan tiga kali. Penggunaan tiga langkah ini penting mencegah meet-in-the-middle attack sebagaimana pada double DES. Bentuk sederhana Triple DES adalah

Enkripsi : C = Ek3(Ek2(Ek1(P)))

Dekripsi : P = Dk1(Dk2(Dk3(C)))

Sumber” http://jurnal.untan.ac.id/index.php/jcskommipa/article/viewFile/14693/13029”

Advanced Encryption Standard(AES)

Algoritma Advanced Encryption Standard(AES) merupakan algoritma block chipher dan bersifat simetri dengan menggunakan key simetri pada waktu proses enkripsi dan dekripsi, AES digunakan standar algoritma kriptografi terbaru sebagai pengganti DES(data encryption standard) yang dipublikasi oleh NIST(National Institute of Standard and Technology), dengan menggunakan AES kita dapat menggunakan kunci 128,192 dan 256 bit.

AES-128 dengan panjang kunci 4,panjang blok 4, jumlah putaran 10.

AES-192 dengan panjang kunci 4, panjang blok 4, jumlah putaran 12.

AES-256 dengan panjang kunci 4, panjang blok 4, jumlah putaran 14.

Terdapat emapt transformaaasi putaran pada proses enkripsi dan dekripsi

SubBytes

Digunakan untuk mengukur isi dari byte dengan menggunakan table substitusi.

ShiftROws

Proses pergeseran blok perbaris pada state array

MixColumn

Proses mengalihkan data pada masing-masing state array degan rumus A(x)={03}x2+{01}x2+{01}x+{02}

AddRoundKey

Mengombinasikan state array dan key dengan hubungan XOR

Pada proses dekripsi AES

InvShiftRows

Melakukan pergeseran bit ke kanan pada setiap blok baris.

InvSubBytes

Setiap elemen pada state dipetakan dengan tabel Inverse S-Box.

InvMixColumn

Setiap kolom dalam state dikalikan dengan matriks AES.

AddRoundKey

Mengombinasikan state array dan round key dengan hubungan XOR.

Sumber” https://www.researchgate.net/publication/327943734_Implementasi_Algoritma_Advanced_Encryption_Standard_AES_128_Untuk_Enkripsi_dan_Dekripsi_File_Dokumen”

RSA Security (Rivest Ciphers) RCA (Stream cipher)(aka Arcfour)

Menurut Kromodimoedjo (Kromodimoeljo, 2009), RC4 adalah stream cipher yang dirancang di RSA Security oleh Ron Rivest tahun 1987. Pada mulanya cara kerja RC4 dirahasiakan oleh RSA Security, akan tetapi ini dibocorkan di internet tahun 1994 di milis Cypherpunks. RSA Security tidak pernah merilis RC4 secara resmi, akibatnya banyak yang menyebutnya sebagai ARC4 (alleged RC4 atau tersangka RC4) untuk menghindari masalah trademark.

RC4 dirancang agar dapat diimplementasikan di software secara sangat efisien. Ini membuat RC4 sangat populer untuk aplikasi internet, antara lain RC4 digunakan dalam standard TLS (transport layer security) dan WEP (wireless equivalent privacy).

Cara membuat keystream dalam RC4 adalah dengan state automaton dan terdiri dari dua

tahap :

(1) Tahap key scheduling dimana state automaton diberi nilai awal berdasarkan kunci

enkripsi.

(2) Tahap pseudo-random generation dimana state automaton beroperasi dan outputnya

menghasilkan keystream.

Tahap pertama dilakukan menggunakan key scheduling algorithm (KSA). State yang diberi nilai awal berupa array yang merepresentasikan suatu permutasi dengan 256 elemen, jadi hasil dari algoritma KSA adalah permutasi awal. Arrayyang mempunyai 256 elemen ini (dengan indeks 0 sampai dengan 255) dinamakan S. Berikut adalah algoritma KSA dalam bentuk pseudo-code dimana key adalah kunci enkripsi dan keylength adalah besar kunci enkripsi dalam bytes (untuk

kunci 128 bit, key length = 16) :

for i = 0 to 255

S[i] := i

j := 0

for i = 0 to 255

j := (j + S[i] + key[i mod key length]) mod 256

swap(S[i],S[j]) (3)

Tahap kedua menggunakan algoritma yang dinamakan pseudo-random generation algorithm

(PRGA). Setiap putaran, bagian keystream sebesar 1 byte (dengan nilai antara 0 sampai dengan

255) dioutput oleh PRGA berdasarkan state S. Berikut adalah algoritma PRGA dalam bentuk

pseudo-code:

i := 0

j := 0

loop

i := (i + 1) mod 256

j := (j + S[i]) mod 256

swap(S[i],S[j])

K = S[(S[i] + S[j]) mod 256] (4)

Byte K di-XOR kan dengan plaintext untuk menghasilkan ciphertext atau di XOR kan dengan ciphertext untuk menghasilkan plaintext. Permutasi dengan 255 elemen mempunyai 255! kemungkinan. Ditambah dua indeks (i dan j) yang masing-masing dapat mempunyai nilai antara 0 dan 255, maka state automaton yang digunakan untuk membuat keystream mempunyai 255! x2552= 21700 kemungkinan internal states. Karena banyaknya jumlah kemungkinan untuk internal state, sukar untuk memecahkan RC4 dengan menganalisa PRGA (teknik paling afisien saat ini harus menjajagi >2700 kemungkinan).

Sumber” https://media.neliti.com/media/publications/174340-ID-none.pdf

International Data Encryption Algorithm(IDEA)

IDEA merupakan cipher-blok yang sangat kuat awalnya dirancang oleh Xuejia laid an james massey pada tahun 1991. Algoritma ini berfungsi pada teks 64 bit dan untuk enkripsi text 64bit dapat dibagi menjadi empat sub blok 16 bit. Empat blok tersebut sebagai P1(16bit).P2(16bit). P3(16bit). P4(16bit) masing-masing blok melewati 8 ROUNDS dan satu fase trasformasi output.

Sumber”http://www.rroij.com/open-access/international-data-encryption-algorithm-idea-a-typical-illustration-116-118.php?aid=37580”

Blowfish/Twofish(Bruce Schneier)

Blowfish merupakan algoritma enkripsi cipher blok simetris yang dirancang oleh teknologi keamanan IT(Technology Security Officer,dan penulis Bruce’Almighty’ Schneier pada tahun1993) dengan enkripsi 64 bit blox paintext.

Manfaat dari Blowfish algoritma ini tidak berpaten dan bebas royalty. Tanpa persyaratan lisensi sama dengan Towfish. Towfish sendiri menggunakan kunci 128,192,atau 256 bit dengan menerapkan 16 putaran enkripsi untuk inputan 64 bit bit plaintext.

Sumber” https://www.brighthub.com/computing/smb-security/articles/53270.aspx”

--

--