Kerberos adalah suatu layanan otentikasi yang dikembangkan sebagai bagian dari proyek Athena di MIT, dan salah satu sistem distribusi kunci (key) pihak ketiga yang dipercaya (trusted third party) yang diketahui terbaik (the best) dan diimplementasikan.

Kerberos menyediakan suatu server otentikasi terpusat yang fungsinya adalah untuk mengotentikasi pengguna ke server dan server ke pengguna. Tidak seperti kebanyakan skema otentikasi lain, Kerberos bersandar secara eksklusif pada enkripsi simetris, tidak menggunakan enkripsi public-key. Dua versi Kerberos yang umum digunakan adalah v4 & v5.

Kerberos untuk melindungi layanan jaringan yang disediakan oleh Proyek Athena. protokol ini dinamai Kerberos setelah karakter mitologi Yunani (atau Cerberus), dikenal dalam mitologi Yunani sebagai yang mengerikan berkepala tiga penjaga anjing Hades. Beberapa versi dari protokol yang ada; versi 1-3 hanya terjadi secara internal di MIT. Steve Miller dan Clifford Neuman, para desainer utama versi, Kerberos 4 diumumkan bahwa versi di akhir 1980-an, meskipun mereka telah ditargetkan terutama untuk Proyek Athena. Versi 5, dirancang oleh John Kohl dan Clifford Neuman, muncul sebagai RFC 1510 pada tahun 1993 (dibuat usang oleh RFC 4120 pada tahun 2005), dengan tujuan untuk mengatasi keterbatasan dan masalah keamanan versi 4.

Kerberos menggunakan sebagai dasar Protokol Needham-Schroeder simetris. Itu membuat penggunaan pihak ketiga yang terpercaya, disebut pusat distribusi kunci (KDC), yang terdiri dari dua bagian yang terpisah secara logis: sebuah Authentication Server (AS) Tiket Pemberian dan Server (TGS). Kerberos bekerja atas dasar "tiket" yang berfungsi untuk membuktikan identitas pengguna. The KDC memelihara sebuah database kunci rahasia; setiap entitas pada jaringan - apakah klien atau server - saham kunci rahasia yang hanya diketahui oleh dirinya sendiri dan ke KDC. Pengetahuan tentang kunci ini berfungsi untuk membuktikan identitas suatu entitas. Untuk komunikasi antara dua entitas, yang KDC menghasilkan kunci sesi yang mereka dapat gunakan untuk mengamankan interaksi mereka. Keamanan protokol bergantung pada peserta mempertahankan sinkron longgar waktu dan pernyataan singkat keaslian Kerberos disebut tiket.

Layanan otentifikasi X.509

X.509 awalnya diterbitkan pada tanggal 3 Juli 1988 dan dimulai pada asosiasi dengan standar X.500. Ini mengasumsikan suatu sistem hirarkis yang ketat dari otoritas sertifikat (CA) untuk menerbitkan sertifikat. Hal ini bertentangan dengan web model kepercayaan, seperti PGP, dan setiap orang (CA tidak hanya khusus) dapat mendaftar dan dengan demikian membuktikan validitas sertifikat kunci orang lain '. Versi 3 dari X.509 termasuk fleksibilitas untuk mendukung topologi lainnya seperti jembatan dan jerat (RFC 4158). Hal ini dapat digunakan dalam peer-to-peer, web OpenPGP seperti kepercayaan, tetapi dijarang digunakan pada tahun 2004. sertifikat terpercaya Sebuah organisasi dapat didistribusikan kepada seluruh karyawan sehingga mereka dapat menggunakan sistem perusahaan PKI. Browser seperti Internet Explorer, Netscape / Mozilla, Opera, Safari dan Chrome datang dengan sertifikat akar pra-instal, jadi sertifikat SSL dari vendor besar akan bekerja langsung; yang berlaku pengembang browser 'menentukan CA dipercaya pihak ketiga untuk browser' pengguna. X.509 juga meliputi standar untuk daftar sertifikat pembatalan (CRL) implementasi, suatu aspek yang sering diabaikan sistem PKI. Cara IETF-disetujui untuk memeriksa validitas sertifikat adalah Online Certificate Status Protocol (OCSP). Firefox 3 memungkinkan pengecekan OCSP secara default bersama dengan versi Windows termasuk Vista dan kemudian.

Needham-Schroeder_protocol

Istilah protokol Needham-Schroeder dapat merujuk pada salah satu dari dua protokol komunikasi yang dirancang untuk digunakan melalui jaringan tidak aman, baik yang diusulkan oleh Roger Needham dan Michael Schroeder. [1] Ini adalah:

  • The Needham-Schroeder Symmetric Key Protokol didasarkan pada algoritma enkripsi simetris. Ini membentuk dasar untuk protokol Kerberos. Protokol ini bertujuan untuk membentuk kunci sesi antara dua pihak di dalam sebuah jaringan, biasanya untuk melindungi komunikasi lebih lanjut.
  • The Needham-Schroeder-Kunci Publik Protokol, berdasarkan kriptografi kunci publik. Protokol ini dimaksudkan untuk memberikan otentikasi antara dua pihak yang saling berkomunikasi pada jaringan, tetapi dalam bentuk yang diusulkan adalah tidak aman.

PUBLIC KEY CERTIFICATE.

Dalam kriptografi, sertifikat kunci publik (juga dikenal sebagai sertifikat digital atau sertifikat identitas) adalah dokumen elektronik yang menggunakan tanda tangan digital untuk mengikat kunci publik dengan identitas - informasi seperti nama orang atau organisasi, mereka alamat, dan sebagainya. Sertifikat ini dapat digunakan untuk memverifikasi bahwa kunci publik milik individu. Dalam infrastruktur utama khas publik (PKI) skema, tanda tangan akan dari otoritas sertifikat (CA). Dalam web skema kepercayaan, signature-nya baik pengguna (sertifikat ditandatangani sendiri) atau pengguna lain ("dukungan. Untuk keamanan dibuktikan ini ketergantungan pada sesuatu di luar sistem tersebut memiliki konsekuensi bahwa setiap skema sertifikasi kunci publik harus bergantung pada beberapa asumsi konfigurasi khusus, seperti adanya otoritas sertifikat.

Sertifikat dapat dibuat untuk server berbasis Unix dengan alat seperti OpenSSL's ssl-ca atau gensslcert SuSE's. Ini dapat digunakan untuk menerbitkan sertifikat unmanaged, Sertifikasi Authority (CA) sertifikat untuk mengelola sertifikat lainnya, dan pengguna dan / atau permintaan komputer sertifikat harus ditandatangani oleh CA, serta sejumlah sertifikat fungsi-fungsi terkait. Demikian pula, Microsoft Windows 2000 Server dan Windows Server 2003 berisi Sertifikasi Authority (CA) sebagai bagian dari Layanan Sertifikat untuk pembuatan sertifikat digital. Pada Windows Server 2008 CA dapat diinstal sebagai bagian dari Layanan Direktori Aktif Sertifikat. CA digunakan untuk mengelola dan terpusat sertifikat masalah bagi pengguna dan / atau komputer. Microsoft juga menyediakan beberapa utilitas sertifikat yang berbeda, seperti SelfSSL.exe untuk membuat sertifikat unmanaged, dan Certreq.exe untuk membuat dan mengajukan permintaan sertifikat harus ditandatangani oleh CA, dan certutil.exe untuk beberapa fungsi yang berhubungan dengan sertifikat lainnya.

Isi dari sertifikat digital yang khas

Serial Number: Digunakan untuk secara unik mengidentifikasi sertifikat.

Subject: Orang, atau entitas yang diidentifikasi.

Signature Algoritma: Algoritma yang digunakan untuk membuat tanda tangan.

Penerbit: The entitas yang diverifikasi informasi dan menerbitkan sertifikat.

Valid-Dari: Tanggal sertifikat pertama berlaku dari.

Valid-Untuk: Tanggal kadaluarsa.

Kunci-Penggunaan: Tujuan dari kunci publik (encipherment misalnya, tanda tangan, sertifikat penandatanganan ...).

Public Key: Kunci publik untuk mengenkripsi pesan kepada subjek bernama atau untuk memverifikasi tanda tangan dari subjek bernama.

Cap jempol Algoritma: Algoritma yang digunakan untuk hash sertifikat.

Cap jempol: The hash itu sendiri untuk memastikan bahwa sertifikat tersebut belum dirusak.

Sertifikat Bidang Opsional

Perihal Nama Alternatif (SAN): Menyediakan banyak identitas yang sertifikat tersebut dapat mengotentikasi. Sistem yang dapat beroperasi di bawah banyak identitas, seperti peternakan server, dan beberapa platform perangkat lunak, seperti Microsoft Exchange, dapat menggunakan SAN untuk menyederhanakan sertifikat dukungan dari lingkungan.

PUBLIC KEY INFRASTRUKTUR


Peran utama dari CA adalah untuk mempublikasikan kunci terikat ke pengguna tertentu. Hal ini dilakukan dengan menggunakan kunci CA sendiri, sehingga kepercayaan pada kunci pengguna bergantung pada kepercayaan seseorang dalam validitas kunci CA. Mekanisme yang mengikat kunci untuk pengguna disebut Otorita Pendaftaran (RA), yang mungkin atau mungkin tidak terpisah dari CA. User-kunci mengikat didirikan, tergantung pada tingkat pengikatan jaminan telah, oleh perangkat lunak atau di bawah pengawasan manusia. Istilah ini dipercaya pihak ketiga (TTP) juga dapat digunakan untuk otoritas sertifikat (CA). Selain itu, PKI itu sendiri sering digunakan sebagai sinonim untuk implementasi CA.

Pendekatan alternatif untuk masalah umum informasi otentikasi kunci publik adalah web skema kepercayaan, yang menggunakan sertifikat diri attestations ditandatangani dan pihak ketiga sertifikat tersebut. Web jangka tunggal Trust tidak menyiratkan adanya web satu kepercayaan, atau jalur umum kepercayaan, melainkan sejumlah potensial menguraikan "web dari kepercayaan". Contoh implementasi dari pendekatan ini adalah PGP (Pretty Good Privacy) dan GnuPG (sebuah implementasi OpenPGP, spesifikasi standar dari PGP). Karena implementasi PGP dan memungkinkan penggunaan tanda tangan digital e-mail untuk diri-publikasi informasi kunci publik, yang relatif mudah untuk mengimplementasikan satu Web sendiri dari Trust. Salah satu manfaat dari Web of Trust, seperti di PGP, adalah bahwa hal itu dapat interoperate dengan PKI CA-dipercaya sepenuhnya oleh semua pihak dalam domain (seperti CA internal perusahaan) yang bersedia untuk menjamin sertifikat, sebagai introducer terpercaya. Hanya jika web "kepercayaan" benar-benar dipercaya, dan karena sifat web kepercayaan, percaya satu sertifikat adalah memberikan kepercayaan kepada semua sertifikat di web itu.

2. Sun Microsystems, Apple, Google, Microsoft dan Centrify Corporation,

3. [IANS90] dan [MITC90]

  • SHA-1 adalah Hash. Dan istilah "decrypt" Program passwordpro bisa memecahkan hash (termasuk SHA-1) dengan metode Brute Force, Dictionary Attack, dll.
  • X 509 adalah standar ITU-T untuk infrastruktur kunci publik (PKI) untuk single sign-on (SSO) dan Manajemen Privilege Infrastruktur (PMI). X.509 menentukan, format standar untuk sertifikat kunci publik, daftar pencabutan sertifikat, atribut sertifikat, dan jalur sertifikasi algoritma validasi.
  • RSA adalah salah satu metode enkripsi yang paling banyak digunakan. Metode mengambil dua bilangan secara acak yang akan dijadikan kunci sehingga didapat dua kunci yaitu kunci public dan kunci private.
  • CAST-128 termasuk kelas algoritma enkripsi yang menggunakan jaringan feistel. Secara umum, algoritma ini juga mirip dengan algoritma Data Encryption Standard (DES).
  • ElGamal merupakan algoritma kriptografi asimetris. Pertama kali dipublikasikan oleh Taher ElGamal pada tahun 1985. Algoritma ini didasarkan atas masalah logaritma diskret pada grup ℤP*. ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p dan elemen primitif grup ℤP*.
  • DSS adalah sebuah sistem berbasis interaktif-komputer untuk membantu pengambilan keputusan dengan memanfaatkan data dan model untuk memecahkan masalah terstruktur, semi struktur dan tidak terstruktur. Semenjak tahun 1970, Decission Support System (DSS) semakin banyak digunakan dalam penyajian data. Data-data yang sebelumnya disajikan dalam bentuk tabel-tabel dan laporan yang tebal dapat sedemikian rupa disajikan menggunakan metode dan model yang disediakan oleh DSS sehingga memberikan nilai informasi tambahan yang bermanfaat untuk pengguna sistem. Pada paper ini akan diterangkan mengenai alat bantu grafik dalam aplikasi DSS untuk pemantauan pencemaran lingkungan. Sistem yang akan digunakan adalah Apache, PHP, Postgre SQL, dan Chart Director. Sistem ini merupakan pengembangan dari sistem pemantauan pencemaran lingkungan yang dibuat sebelumnya yang menggunakan Micrososft Access dan Visual Basic. Implementasi DSS memberikan nilai tambah pada sistem, yaitu otomasi penampilan data pergerakan tingkat nilai zat pencemar pada lingkungan berdasarkan standar baku mutu yang ada dan penyajian data yang lebih representatif dan memudahkan pengguna untuk membaca informasi yang terkandung dalam data yang dapat membantu pengguna membuat langkah-langkah penanganan yang sesuai dengan permasalahan pencemaran lingkungan yang terjadi.
  • Most Distance Separable (MDS) adalah sebuah matriks yang dapat dioperasikan secara linear kepada sebuah vektor menjadi sebuah vektor hasil. Vektor hasil tersebut merupakan vektor yang terbesar yang dapat dihasilkan namun dengan jarak minimum dari vector awal.

  • DES (Data Encryption Standard) merupakan block cipher 16 ronde yang memiliki struktur Feistel dan memiliki masukan/keluaran 64 bit, serta memiliki kunci sepanjang 56 bit. Dengan struktur Feistel, algoritma enkripsi memiliki struktur yang sama dengan yang untuk dekripsi. Perbedaannya hanya terletak pada urutan subkey yang dimasukkan. DES memiliki fungsi F yang tidak invertible. Analisis Sandi Diferensial (ASD) adalah teknik untuk mendapatkan kunci algoritma enkripsi modern tanpa harus meminta ijin pemilik kunci.

  • SHA-1 adalah Hash. Dan istilah "decrypt" Program passwordpro bisa memecahkan hash (termasuk SHA-1) dengan metode Brute Force, Dictionary Attack, dll.
  • X 509 adalah standar ITU-T untuk infrastruktur kunci publik (PKI) untuk single sign-on (SSO) dan Manajemen Privilege Infrastruktur (PMI). X.509 menentukan, format standar untuk sertifikat kunci publik, daftar pencabutan sertifikat, atribut sertifikat, dan jalur sertifikasi algoritma validasi.
  • RSA adalah salah satu metode enkripsi yang paling banyak digunakan. Metode mengambil dua bilangan secara acak yang akan dijadikan kunci sehingga didapat dua kunci yaitu kunci public dan kunci private.
  • CAST-128 termasuk kelas algoritma enkripsi yang menggunakan jaringan feistel. Secara umum, algoritma ini juga mirip dengan algoritma Data Encryption Standard (DES).
  • ElGamal merupakan algoritma kriptografi asimetris. Pertama kali dipublikasikan oleh Taher ElGamal pada tahun 1985. Algoritma ini didasarkan atas masalah logaritma diskret pada grup ℤP*. ElGamal terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plainteks dan menghasilkan blok-blok cipherteks yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p dan elemen primitif grup ℤP*.
  • DSS adalah sebuah sistem berbasis interaktif-komputer untuk membantu pengambilan keputusan dengan memanfaatkan data dan model untuk memecahkan masalah terstruktur, semi struktur dan tidak terstruktur. Semenjak tahun 1970, Decission Support System (DSS) semakin banyak digunakan dalam penyajian data. Data-data yang sebelumnya disajikan dalam bentuk tabel-tabel dan laporan yang tebal dapat sedemikian rupa disajikan menggunakan metode dan model yang disediakan oleh DSS sehingga memberikan nilai informasi tambahan yang bermanfaat untuk pengguna sistem. Pada paper ini akan diterangkan mengenai alat bantu grafik dalam aplikasi DSS untuk pemantauan pencemaran lingkungan. Sistem yang akan digunakan adalah Apache, PHP, Postgre SQL, dan Chart Director. Sistem ini merupakan pengembangan dari sistem pemantauan pencemaran lingkungan yang dibuat sebelumnya yang menggunakan Micrososft Access dan Visual Basic. Implementasi DSS memberikan nilai tambah pada sistem, yaitu otomasi penampilan data pergerakan tingkat nilai zat pencemar pada lingkungan berdasarkan standar baku mutu yang ada dan penyajian data yang lebih representatif dan memudahkan pengguna untuk membaca informasi yang terkandung dalam data yang dapat membantu pengguna membuat langkah-langkah penanganan yang sesuai dengan permasalahan pencemaran lingkungan yang terjadi.
  • Most Distance Separable (MDS) adalah sebuah matriks yang dapat dioperasikan secara linear kepada sebuah vektor menjadi sebuah vektor hasil. Vektor hasil tersebut merupakan vektor yang terbesar yang dapat dihasilkan namun dengan jarak minimum dari vector awal.

  • DES (Data Encryption Standard) merupakan block cipher 16 ronde yang memiliki struktur Feistel dan memiliki masukan/keluaran 64 bit, serta memiliki kunci sepanjang 56 bit. Dengan struktur Feistel, algoritma enkripsi memiliki struktur yang sama dengan yang untuk dekripsi. Perbedaannya hanya terletak pada urutan subkey yang dimasukkan. DES memiliki fungsi F yang tidak invertible. Analisis Sandi Diferensial (ASD) adalah teknik untuk mendapatkan kunci algoritma enkripsi modern tanpa harus meminta ijin pemilik kunci.

Cara Kerja Chiper feistel untuk 3 iterasi :

Chiper feistel bersifat reversible karena operator XOR mengkombinasikan setengah bagian kiri dengan hasil dari fungsi transformasi f, sehingga Sifat reversible ini tidak bergantung pada f, sehingga tidak perlu membuat algoritma baru untuk mendekripsi cipherteks.

Model Chiper feistel:

1. Bagi blok dengan panjang n bit menjadi dua bagian yang sama, kiri(L), dan kanan(R). Syaratnya, panjang n harus genap sehingga panjang L dan R sama yaitu n/2.

2. Definisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya, yaitu:

Li = Ri-1

Ri = Li-1f(Ri-1, Ki)

Dalam hal ini, i adalah bilangan bulat 1..r dimana r adalah jumlah putaran. Ki adalah upa-kunci (subkey) pada putaran ke-i. Sedangkan f adalah fungsi transformasi. Sebagai catatan, gabungan L0 dan R0 adalah plainteks, sedangkan cipherteks didapatkan setelah L dan R hasil putaran terakhir dipertukarkan (Rr, Lr).

Li-1f(Ri-1, Ki)f(Ri-1, Ki)= Li-1

Sejarah DES

  • Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel.

  • Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat.


Tinjauan Umum

  • DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok.

  • DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.

  • Skema global dari algoritma DES adalah sebagai berikut (lihat Gambar 1):
  1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP).
  2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.
  3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.


  • Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES.

  • Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES.

Secara matematis, satu putaran DES dinyatakan sebagai

Li = Ri – 1

Ri = Li – 1 Å f(Ri – 1, Ki)

Gambar 2 memperlihatkan skema algoritma DES yang lebih rinci.


Gambar 2. Algoritma Enkripsi dengan DS



Catatlah bahwa satu putaran DES merupakan model jaringan Feistel (lihat Gambar 3).



  • Perlu dicatat dari Gambar 2 bahwa jika (L16, R16) merupakan keluaran dari putaran ke-16, maka (R16, L16) merupakan pra-cipherteks (pre-ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks.

Permutasi Awal

Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:

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

Cara membaca tabel/matriks di atas: dua entry ujung kiri atas (58 dan 50) berarti:

“pindahkan bit ke-58 ke posisi bit 1”

“pindahkan bit ke-50 ke posisi bit 2”, dst


Pembangkitan Kunci Internal

  • Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, …, K16. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi.
  • Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter.
  • Misalkan kunci eksternal yang tersusun dari 64 bit adalah K.

Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi PC-1 sebagai berikut:


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


Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit.

Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam C0 dan D0:

C0: berisi bit-bit dari K pada posisi

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

D0: berisi bit-bit dari K pada posisi

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

Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb:

Tabel 1. Jumlah pergeseran bit pada setiap putaran

Putaran, i Jumlah pergeseran bit

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



Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci+1, Di+1) diperoleh dengan menggeser Ci dan Di satu atau dua bit.

Setelah pergeseran bit, (Ci, Di) mengalami permutasi kompresi dengan menggunakan matriks PC-2 berikut:



Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki merupakan penggabungan bit-bit Ci pada posisi:

14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10

23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2

dengan bit-bit Di pada posisi:

41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48

44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32

Jadi, setiap kunci internal Ki mempunyai panjang 48 bit.

Proses pembangkitan kunci-kunci internal ditunjukkan pada Gambar 4.

  • Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada Ci dan Di. Karena itu, setelah putaran ke-16 akan didapatkan kembali C16 = C0 dan D16 = D0.



Enciphering

· Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai

Li = Ri – 1

Ri = Li – 1 Å f(Ri – 1, Ki)

Diagram komputasi fungsi f diperlihatkan pada Gambar 5.


  • E adalah fungsi ekspansi yang memperluas blok Ri – 1 yang panjangnya 32-bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb:

  • Selanjutnya, hasil ekpansi, yaitu E(Ri – 1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit:

E(Ri – 1) Å Ki = A

  • Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotak-S (S-box), S1 sampai S8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6-bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2, dan seterusnya.

(cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi “Prinsip-prinsip Perancangan Cipher Blok”)

Kedelapan kotak-S tersebut adalah:

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

16

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


  • Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box) sbb:

  • Bit-bit P(B) merupakan keluaran dari fungsi f.
  • Akhirnya, bit-bit P(B) di-XOR-kan dengan Li 1 untuk mendapatkan Ri (lihat Gambar 6):

Ri = Li – 1 Å P(B)

  • Jadi, keluaran dari putaran ke-i adalah
(Li, Ri) = (Ri – 1 , Li – 1 Å P(B))


Permutasi Terakhir (Inverse Initial Permutation)

  • Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan.

  • Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial permutation atau IP-1 ) sbb:


Dekripsi

  • Proses dekripsi terhadap cipherteks merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K1, K2, …, K16, maka pada proses dekripsi urutan kunci yang digunakan adalah K16, K15, …, K1.

  • Untuk tiap putaran 16, 15, …, 1, keluaran pada setiap putaran deciphering adalah

Li = Ri – 1

Ri = Li – 1 Å f(Ri – 1, Ki)

yang dalam hal ini, (R16, L16) adalah blok masukan awal untuk deciphering. Blok (R16, L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP-1. Pra-keluaran dari deciphering adalah adalah (L0, R0). Dengan permutasi awal IP akan didapatkan kembali blok plainteks semula.

  • Tinjau kembali proses pembangkitan kunci internal pada Gambar 4. Selama deciphering, K16 dihasilkan dari (C16, D16) dengan permutasi PC-2. Tentu saja (C16, D16) tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi karena (C16, D16) = (C0, D0), maka K16 dapat dihasilkan dari (C0, D0) tanpa perlu lagi melakukan pergeseran bit. Catatlah bahwa (C0, D0) yang merupakan bit-bit dari kunci eksternal K yang diberikan pengguna pada waktu dekripsi.

  • Selanjutnya, K15 dihasilkan dari (C15, D15) yang mana (C15, D15) diperoleh dengan menggeser C16 (yang sama dengan C0) dan D16 (yang sama dengan C0) satu bit ke kanan. Sisanya, K14 sampai K1 dihasilkan dari (C14, D14) sampai (C1, D1). Catatlah bahwa (Ci – 1, Di – 1) diperoleh dengan menggeser Ci dan Di dengan cara yang sama seperti pada Tabel 1, tetapi pergeseran kiri (left shift) diganti menjadi pergeseran kanan (right shift).

Mode DES

  • DES dapat dioperasikan dengan mode ECB, CBC, OFB, dan CFB. Namun karena kesederhanaannya, mode ECB lebih sering digunakan pada paket program komersil meskipun sangat rentan terhadap serangan.

  • Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus daripada mode EBC. Mode CBC hanya kadang-kadang saja digunakan.

Implementasi Hardware dan Software DES

  • DES sudah diimplementasikan dalam bentuk perangkat keras.
  • Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik).
  • Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090).

Keamanan DES

  • Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES:

1. Panjang kunci

2. Jumlah putaran

3. Kotak-S

Panjang kunci

  • Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang diusulkan IBM adalah 128 bit, tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan.

  • Tetapi, dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba setengah dari jumlah kemungkinan kunci itu, maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar.

  • Tahun 1998, Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan diharapkan dapat menemukan kunci selama 5 hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari.

Jumlah putaran

  • Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap bit cipherteks. Jadi, mengapa harus 16 kali putaran?
  • Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan brute force attack.

Kotak-S

  • Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.

Kunci Lemah dan Kunci Setengah Lemah

  • DES mempunyai beberapa kunci lemah (weak key). Kunci lemah menyebabkan kunci-kunci internal pada setiap putaran sama (K1 = K2 = … = K16). Akibatnya, enkripsi dua kali berturut-turut terhadap plainteks menghasilkan kembali plainteks semula.

  • Kunci lemah terjadi bila bit-bit di dalam Ci dan Di semuanya 0 atau 1, atau setengah dari kunci seluruh bitnya 1 dan setengah lagi seluruhnya 0.

  • Kunci eksternal (dalam notasi HEX) yang menyebabkan terjadinya kunci lemah adalah (ingat bahwa setiap bit kedelapan adalah bit paritas).

Kunci lemah (dengan bit paritas) Kunci sebenarnya




0101 0101 0101 0101 0000000 0000000

1F1F 1F1F 1F1F 1F1F 0000000 FFFFFFF

E0E0 E0E0 F1F1 F11F FFFFFFF 0000000

FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF

  • Selain kunci lemah, DES juga mempunyai sejumlah pasangan kunci setengah-lemah (semiweak key). Pasangan kunci setengah- lemah mengenkripsikan plainteks menjadi cipherteks yang sama. Sehingga, satu kunci dalam pasangan itu dapat mendekripsi pesan yang dienkripsi oleh kunci yang lain di dalam pasangan itu.

  • Kunci setengah-lemah terjadi bila:

1. Register C dan D berisi bit-bit dengan pola 0101…0101 atau 1010…1010

2. Register yang lain (C atau D) berisi bit-bit dengan pola 0000…0000, 1111…1111, 0101…0101, atau 1010…1010

  • Ada 6 pasang kunci setengah lemah (dalam notasi HEX):

a. 01FE 01FE 01FE 01FE dan FE01 FE01 FE01 FE01

b. 1FE0 1FE0 0EF1 0EF1 dan E01F E01F F10E F10E

c. 01E0 01E0 01F1 01F1 dan E001 E001 F101 F101

d. 1FFE 1FFE 0EFE 0EFE dan FE1F FE1F FE0E FE0E

e. 011F 011F 010E 010E dan 1F01 1F01 0E01 0E01

f. E0FE E0FE F1FE F1FE dan FEE0 FEE0 FEF1 FEF1


About Me

Foto saya
Salah satu modal untuk meraih kesuksesan adalah dengan menjadi individu yang kreatif.

Biodata Pribadi

Nama : Nikko Riestian Putra,S.kom______________ Bidang : Ilmu komputer, DSS, AI_______________________ Blog : nikkowardoyo.blogspot.com email : ncool750@gmail.com, Fb : n1kk0_cool@yahoo.com Telp : (031)71541752
Diberdayakan oleh Blogger.

Followers