Nama: Mochamad Beta AuditamaNIM: 13211039
LAPORAN TUGAS 4EL5112 KEAMANAN KOMPUTER DAN JARINGAN
NOMOR 1Pertanyaan : Jika.untuk pesan digunakan enkripsi dengan
menggunakan kunci publik, sedangkan untuk digital signature
digunakan enkripsi dengan menggunakan kunci privat, maka jelaskan
mekanisme pengiriman pesan dengan memanfaatkan kedua pasangan kunci
untuk melakukan enkripsi pesan dan digital signature! Sertakan
skemanya.JawabanEnkripsi-dekripsi DataSebelum proses
enkripsi-dekripsi data berlangsung, host A memberikan kunci
publiknya terlebih dahulu kepada host B, dan begitupun sebaliknya.
Proses pertukaran kunci publik ini terjadi ketika kedua host
melakukan SSL handshake. Untuk kasus host A (client) mengirimkan
data kepada host B (server), host A mengenkripsi data menggunakan
kunci publik milik server. Kemudian, data yang terenkripsi ini
dikirim ke server melalui jaringan internet dengan protokol
tertentu, seperti TCP. Sesampainya data terenkripsi ke server, data
ini didekripsi menggunakan kunci privat milik server. Apabila data
terenkripsi dapat diperoleh (dicopy) oleh attacker saat proses
pengiriman data berlangsung, attacker tidak dapat membaca data
tersebut karena attacker tidak memiliki kunci privat milik server.
Dengan demikian, penggunaan public key infrastructure (PKI) atau
kunci asimetris pada proses enkripsi-dekripsi data berfungsi untuk
menjaga confidentiality atau kerahasiaan dari data. Gambar 1
memperlihatkan skema enkripsi-dekripsi data menggunakan kunci
asimetris.
Gambar 1. Skema Enkripsi-dekripsi Data menggunakan Kunci
Asimetris[1].
Digital SignatureDigital signature, atau biasa disebut dengan
tanda tangan digital, berguna untuk mengecek apakah host yang
mengirimkan data ke host tujuan merupakan pembuat asli dari data
tersebut (otentikasi) dan mengecek apakah data yang dikirimkan
telah dipalsukan oleh attacker. Berikut akan dijelaskan skema
pembuatan dan penggunaan tanda tangan digital (Gambar 2
memperlihatkan skema ini)a) Host A menggunakan fungsi hash pada
data atau pesan plaintext untuk membentuk pesan digest.b) Pesan
digest dienkripsi oleh kunci privat milik pembuat pesan, yaitu host
A, melalui fungsi signature. Ke-luaran dari fungsi signature ini
dinamakan dengan tanda tangan digital.c) Tanda tangan digital
dilampirkan pada pesan plaintext dan dikirimkan ke host B.d)
Sesampainya pesan plaintext yang telah dilampiri oleh tanda tangan
digital ke host B, host B dapat memerik-sa keotentikan atau
keaslian pembuat data dan integritas data dengan tiga langkah,
yaitu 1) host B menggu-nakan fungsi hash yang sama dengan host A
pada pesan plaintext untuk membentuk pesan digest, 2) tanda tangan
digital didekripsi menggunakan kunci publik milik host A sehingga
diperoleh pesan digest, dan 3) periksa apakah pesan digest hasil
fungsi hash yang dilakukan oleh host B sama dengan pesan digest
hasil de-kripsi. Apabila kedua pesan digest ini sama, kita dapat
simpulkan bahwa pesan plaintext yang diterima oleh host B dibuat
oleh pembuat asli dan pesan plaintext tersebut tidak mengalami
pemalsuan.
Gambar 2. Skema Pembuatan dan Penggunaan Tanda Tangan
Digital[2].
NOMOR 2Pertanyaan : Jelaskan mekanisme pembangkitan pasangan
kunci publik dan kunci privat pada algoritma RSA. Dimana letak
kekuatan algoritma RSA, serta bagaimana pengaruhnya terhadap proses
enkripsi dengan meng-gunakan algoritma tersebut?JawabanRSA
merupakan salah satu jenis algoritma PKI, selain elliptic curve,
diffie-hellman, dan DSS. Algoritma RSA dapat dikatakan sebagai
algoritma PKI terbaik karena algoritma ini memiliki fitur-fitur
yang tidak dimiliki oleh algoritma PKI yang lain. Gambar 3 pada
halaman selanjutnya memperlihatkan kelebihan algoritma RSA ini.
Gambar 3. Perbandingan Tiap Jenis Algoritma PKI[4].Mekanisme
Pembangkitan Kunci Publik dan Kunci Privat pada Algoritma
RSAAlgoritma RSA menggunakan persamaan eksponensial. Pesan
plaintext M dienkripsi dalam bentuk blok-blok ciphertext C. Satu
blok ciphertext direpresentasikan dengan suatu nilai bertipe
desimal.yang mana nilai desimal ini kurang dari nilai n (nilai
desimal pada blok ciphertext dan nilai n akan dijelaskan pada
bagian selanjutnya). Supaya algoritma RSA ini dapat diimplementasi,
algoritma enkripsi dan dekripsi pada RSA dinyatakan dalam
persaman-persamaan matematis sebagai berikut.C = Me mod nM = Cd mod
n = (Me)d mod n = Med mod n (1)yang mana e disebut dengan eksponen
enkripsi dan d disebut dengan eksponen dekripsi, Asumsikan bahwa
algoritma RSA yang dibahas saat ini akan digunakan untuk proses
enkripsi-dekripsi data sehingga kita tidak dibingungkan dengan
nama-nama variabel e dan d. Apabila algoritma RSA yang dibahas akan
digunakan untuk proses pembuatan dan penggunaan tanda tangan
digital, nama variabel e diubah menjadi eksponen dekripsi dan nama
variabel d diubah menjadi eksponen enkripsi. Perbedaan nama ini
dapat terjadi karena, pada proses enkripsi-dekripsi data, kunci
publik digunakan untuk enkripsi data dan kunci privat digunakan
untuk dekripsi data, sedangkan, pada proses pembuatan dan
penggunaan tanda tangan digital, kunci publik digunakan untuk
dekripsi data dan kunci privat digunakan untuk enkripsi data.Kita
telah ketahui sebelumnya bahwa proses pembuatan blok-blok C dari M
menggunakan kunci publik dan, berdasarkan persamaan (1), pembuatan
C ini melibatkan e dan n sehingga kunci publik dapat
direpresentasikan dengan PU = [e,n]. Hal serupa juga berlaku untuk
kunci privat sehingga kunci privat dapat direpresentasikan dengan
PR = [d,n]. Berikut akan dijelaskan ketentuan-ketentuan yang harus
dipenuhi saat mengimplementasi-kan algoritma RSA sebagai PKI.1)
Nilai-nilai e, d, dan n harus dicari sedemikian rupa agar pers. M =
Med mod n untuk M < n dapat dipenuhi.2) Me mod n dan Cd mod n
untuk M < n harus dapat dihitung secara mudah.3) Nilai d tidak
boleh dihitung secara mudah untuk nilai e dan n diketahui.Seluruh
ketentuan di atas dapat dipenuhi dengan menganalisis ketentuan yang
pertama saja. Nilai-nilai e, d, dan n dapat direlasikan satu sama
lain menggunakan fungsi totient euler atau fungsi phi (n) sebagai
berikut.ed mod (n) = 1 ed 1 (mod (n)) d e-1 (mod (n)) (2)Persamaan
(2) dapat dipenuhi jika dan hanya jika kedua persyaratan berikut
ini dipenuhi. Terdapat dua nilai prima yang saling berbeda,
misalnya p dan q, sehingga (n) = (pq) = (p - 1)(q - 1). Persyaratan
ini membuat nilai n = p x q untuk p q. Hubungan antara d dengan (n)
dan hubungan antara e dengan (n) adalah koprima, atau dengan kata
lain, FPB((n),d) = 1 dan FPB((n),e) = 1.Dengan adanya kedua
persyaratan ini dan persamaan (2), kita dapat membangkitkan kunci
publik PU = [e,n] dan kunci privat PR = [d,n] dengan menggunakan
komponen-komponen sebagai berikut. Dua nilai prima p dan q untuk p
q ditentukan secara bebas. Kedua nilai ini harus dirahasiakan dari
publik. Nilai n dihitung melalui persamaan n = p x q. Nilai n ini
boleh diketahui oleh publik. Nilai e ditentukan secara bebas,
tetapi dengan ketentuan FPB((n),e) = 1 dan e: 1 < e < (n).
Nilai e ini boleh diketahui oleh publik. Nilai d dihitung melalui
persamaan ed 1 (mod (n)). Nilai d haruslah memenuhi ketentuan
FPB((n),e) = 1 dan d: 1 < d < (n). Nilai d ini harus
dirahasiakan dari publik.Untuk mempermudah pemahaman, kita lakukan
simulasi pembangkitan kunci publik dan kunci privat menggu-nakan
algoritma RSA sebagai berikut.1) Kita pilih nilai p = 73 dan q =
151. Karena kedua nilai ini merupakan bilangan prima dan saling
berbeda satu sama lain, kedua nilai ini boleh digunakan.2) Kita
hitung nilai n = p x q = 73 x 151 = 11023.3) Kita pilih nilai e =
11. Untuk mengecek keabsahan dari nilai e ini, kita cari nilai
fungsi phi sebagai berikut.(n) = (p - 1)(q - 1) = (73 - 1)(151 - 1)
= (72)(150) = 10800Karena FPB((n),e) = 1 dan nilai e berada di
rentang nilai 1 < e < (n), nilai e ini boleh digunakan. 4)
Kita hitung nilai d melalui persamaan sebagai berikut.ed 1 (mod
(n)) (11)d 1 (mod 10800) d = 5891Karena FPB((n),d) = 1 dan nilai d
berada di rentang nilai 1 < d < (n), nilai d ini boleh
digunakan.Dgn demikian, kita peroleh kunci publik PU = [e,n] =
[11,11023] dan kunci privat PR = [d,n] = [5891,11023].Letak
Kekuatan Algoritma RSALetak kekuatan algoritma RSA terdapat pada
nilai-nilai prima p dan q yang sangat besar, yaitu dapat mencapai
orde 1075 hingga 10100. Kedua nilai ini sangat berperan dalam
menentukan nilai fungsi (n). Seperti yang telah kita ketahui
sebelumnya, nilai fungsi (n) ini akan digunakan untuk mendapatkan
nilai d sesuai dengan persa-maan ed 1 (mod (n)). Walaupun attacker
mengetahui nilai e dan n, attacker tetap sulit mencari nilai fungsi
(n) tanpa mengetahui nilai p dan q karena menentukan sifat koprima
untuk suatu nilai faktor (n) dengan n memerlukan komputasi yang
lama, terlebih lagi jika nilai faktor (n) tersebut sangatlah besar.
Apabila attacker langsung melakukan brute force attack pada nilai d
tanpa menghitung nilai fungsi (n), hal ini juga membutuh-kan proses
komputasi yang sangat lama karena jumlah bit pada d sangat besar,
seperti yang diperlihatkan pada simulasi di atas.Pengaruh Algoritma
RSA pada Proses EnkripsiSaat proses enkripsi data, algoritma RSA
memiliki beberapa kelemahan, yaitu membutuhkan waktu yang lebih
lama daripada beberapa jenis algoritma kriptografi lainnya karena
algoritma RSA melibatkan nilai-nilai para-meter yang sangat besar
dan operasi perpangkatan (eksponensial); ukuran data dalam bentuk
ciphertext jauh lebih besar daripada ukuran data dalam bentuk
plaintext; apabila algoritma RSA digunakan untuk keperluan
confidentiality dan otentikasi sekaligus, algoritma RSA yang cukup
kompleks harus diimplementasi sebanyak empat kali, bukan dua kali,
dalam satu proses komunikasi data; dan data yang dienkripsi oleh
algoritma RSA masih memiliki kemungkinan untuk diserang oleh
berbagai jenis serangan, seperti brute force, timing attacks, dan
lain-lain. Terlepas dari kekurangan-kekurangan ini, algoritma RSA
memiliki banyak kelebihan, seperti me-nawarkan fitur
confidentiality dan otentikasi saat komunikasi data, dapat
mengenkripsi data yang telah dilaku-kan enkripsi secara simetris
untuk meningkatkan keamanan data, kemananan data yang dienkripsi
mengguna-kan algoritma RSA semakin meningkat seiring dengan
bertambahnya jumlah bit kunci asimetris yang diguna-kan, memiliki
manjemen kunci yang lebih baik daripada manjemen kunci simetris
karena suatu host hanya perlu membangkitkan satu pasangan kunci
asimetris saja, dan lain-lain.NOMOR 3Pertanyaan : Jelaskan proses
pembangkitan message digest dalam algoritma SHA-512, sesuai dengan
skema umum berikut:
JawabanSebelum menjelaskan proses pembangkitan message digest
SHA-512, kita perlu ketahui parameter-parameter dari SHA-512. Tabel
1 memperlihatkan parameter-parameter ini.Tabel 1.
Parameter-parameter SHA-512[6].SHA-512Ukuran Pesan DigestUkuran
PesanLebar BlokLebar WordJumlah Step
512 bit< 2128 bit1024 bit64 bit80
Berikut akan dijelaskan tahapan-tahapan pembuatan pesan digest
SHA-512.1) Menambahkan bit-bit padding pada pesan :Pesan dipadding
dengan sejumlah bit tertentu sehingga diperoleh ukuran pesan baru
yang kongruen terhadap 896 mod 1024. Proses padding sejumlah bit
ini selalu dilakukan walaupun ukuran pesan telah memenuhi
ke-lipatan dari 1024 bit. Jumlah bit yang dipadding pada pesan
berkisar pada range 1 hingga 1024 bit. Bit perta-ma pada blok
padding adalah bit 1 dan bit-bit sisanya diisi dengan bit 0.2)
Menambahkan ukuran pesan sebanyak 128 bit :Setelah pesan dipadding
dengan sejumlah bit tertentu, blok selebar 128 bit ditambahkan pada
pesan tersebut. Blok 128 bit ini merupakan blok bertipe data
unsigned integer (MSB) yang berisi informasi tentang ukuran dari
pesan sebelum dipadding L. Hasil akhir yang diperoleh adalah pesan
berukuran kelipatan dari 1024 bit. Selanjutnya, kita dapat
representasikan pesan ini ke dalam N blok 1024 bit, yaitu M1, M2, ,
MN.
3) Menginisialisasi buffer hash :Kita memerlukan hash buffer
awal H0, atau biasa disimbolkan dengan IV, supaya kita dapat
menghasilkan hash-hash buffer untuk masing-masing blok pesan,
seperti yang ditunjukkan oleh soal. Hash buffer awal ini dapat
direpresentasikan ke dalam delapan register berukuran 64 bit (a, b,
c, d, e, f, g, dan h) sebagai berikut. (nilai-nilai register
direpresentasikan daalam bilangan heksadesimal)a =
6A09E667F3BCC908e = 510E527FADE682D1b = BB67AE584CAA73Bf = 9B
05688C2B3E6C1Fc = 3C5EF372FE94F92Bg = 1F83D9ABF41BD6Bd =
A54FF53A5F1D36F1h = 5BE0CD19137E2179Nilai-nilai register ini
diperoleh dengan melakukan lima langkah, yaitu 1) pilih delapan
angka prima pertama (2, 3, 5 7, 11, 13, 17, dan 19), 2) akar
kuadratkan seluruh angka prima tersebut, 3) ambil bagian fraksional
dari tiap angka hasil akar kuadrat, 4) representasikan bagian
fraksional ke dalam bilangan biner, dan 5) am-bil 64 bit pertama
dari bilangan biner tersebut. Gambar 4 memperlihatkan proses
perolehan nilai register a dari angka prima 2. (karena keterbatasan
dalam proses komputasi, bilangan heksadesimal yang diperoleh hanya
mendekati nilai register a di atas).
(a)
(b)
(c)Gambar 4. (a) Hasil Akar Kuadrat dari Angka Prima 2, (b)
Bagian Fraksional dari SQRT(2), dan(c) Representasi Bagian
Fraksional dalam Bilangan Heksadesimal.4) Memroses blok pesan
berukuran 1024 bit :Agar memperoleh hash buffer Hi untuk suatu blok
pesan Mi, kita membutuhkan modul F yang terdiri atas 80 round,
nilai-nilai Wt (0 t 79) berukuran 64 bit yang diturunkan dari blok
pesan Mi, nilai-nilai konstanta Kt (0 t 79), dan hash buffer hasil
dari blok pesan sebelumnya Hi-1. Gambar 5 memperlihatkan proses
pembentukan hash buffer Hi.
Gambar 5. Proses Pembentukan Fungsi Hash Buffer Hi
[5].Berdasarkan Gambar 5, kita dapat lihat bahwa, pada round ke-0,
hash buffer Hi-1 diupdate nilai-nilai register-nya menggunakan
nilai W0 dan konstanta K0. Seperti yang telah dijelaskan pada Tabel
1, jumlah step yang digunakan pada SHA-512 adalah 80 step sehingga
proses updating nilai-nilai register Hi-1 ini dilakukan seca-ra
sekuensial dari round ke-0 hingga round ke-79. Selanjutnya, hash
buffer Hi-1 hasil keluaran round ke-79 akan dijumlahkan nilai-nilai
registernya secara bersesuaian dengan nilai-nilai register hash
buffer Hi-1 awal, yaitu nilai-nilai register hash buffer Hi-1 yang
belum dilakukan rounding. Operator penjumlahan yang digu-nakan pada
proses penjumlahan ini adalah addition modulo 264.5) Pesan digest
:Setelah langkah nomor 4 telah dilakukan untuk seluruh N blok
pesan, fungsi hash buffer keluaran terakhir merupakan pesan digest
berukuran 512 bit yang diinginkan. Kita dapat rangkum proses
pembentukan pesan digest pada SHA-512 sebagai berikut.H0 = IVHi =
SUM64(Hi-1,abcdefghi)MD = HNyang mana IV adalah hash buffer awal,
abcdefghi adalah kedelapan nilai register hash buffer Hi hasil
keluar-an round ke-79, N adalah jumlah keseluruhan blok pesan
setelah pesan dilakukan padding dan ditambahkan 128 bit yang berisi
informasi tentang L, SUM64 adalah operator penjumlahan addition
modulo 264, dan MD adalah pesan digest.
NOMOR 4Pertanyaan : Tunjukkan dengan skema serta jelaskan
mengapa proses dekripsi algoritma DES merupakan inverse dari proses
enkripsinya.JawabanAlgoritma DES merupakan salah satu algoritma
kriptografi yang menggunakan kunci simetris dalam proses
en-kripsi-dekripsi data. Kunci simetris ini terdiri atas dua kunci
rahasia yang identik satu sama lain. Dalam suatu komunikasi data
yang menggunakan algoritma DES, dua host, misal host A dan host B,
harus memiliki masing-masing satu kunci rahasia. Sebelum host A
mengirim data ke host B, host A mengenkripsi data terlebih dahulu
menggunakan kunci rahasia miliknya dan, supaya host B dapat membaca
isi data terenkripsi ini, host B mende-kripsi data tersebut
menggunakan kunci rahasia miliknya. Dengan demikian, algoritma DES
berfungsi untuk memastikan bahwa data yang dikomunikasiakan hanya
dapat diakses oleh host A dan host B saja. Pihak ketiga, seperti
attacker, tidak dapat membaca isi data tersebut walaupun ia dapat
mengakuisisi data ini saat komunikasi data berlangsung. Hal ini
dikarenakan pihak ketiga tidak memiliki kunci rahasia milik host A
atau host B.Algoritma DES dibuat dengan mengadopsi struktur feistel
cipher. Feistel cipher buatan Horst Feistel ini berpe-gang pada dua
prinsip, yaitu subtitusi dan permutasi. Subtitusi adalah proses
mengganti elemen yang terdapat pada suatu blok dengan elemen yang
lain, sedangkan permutasi adalah proses menyusun ulang elemen yang
ter-dapat pada suatu blok secara acak atau melalui fungsi tertentu.
Gambar 6 dan Gambar 7 memperlihatkan proses enkripsi DES dan proses
enkripsi-dekripsi feistel cipher.
Gambar 6. Proses Enkripsi Data dengan Algoritma DES[7].
Gambar 7. Proses Enkripsi-Dekripsi Data dengan Feistel
Cipher[3].Berdasarkan Gambar 6 dan Gambar 7, kita dapat lihat bahwa
algoritma DES memiliki initial permutation (IP) dan inverse initial
permutation (IP-1), sedangkan feistel cipher tidak memiliki kedua
modul ini. Modul IP dan modul IP-1 memiliki hubungan yang saling
invers satu sama lain. Terlepas dari perbedaan ini, kedua jenis
algoritma ini memiliki kesamaan, yaitu terdapat proses rounding
sebanyak 16 step pada algoritmanya, baik itu saat proses enkripsi
data maupun saat proses dekripsi data. Dengan demikian, kita dapat
nyatakan bahwa proses dekripsi data pada algoritma DES merupakan
invers dari proses enkripsinya jika dan hanya jika kita dapat
membuktikan bahwa proses dekripsi feistel cipher merupakan invers
dari proses enkripsinya.Plaintext yang digunakan sebagai masukan
pada feistel cipher saat proses enkripsi data memiliki ukuran 2w
bit. Ukuran plaintext ini dipecah menjadi dua bagian, yaitu Li dan
Ri (i : 0 i 17). Untuk proses enkripsi data, Li dan Ri disimbolkan
dengan LEi dan REi, sedangkan, untuk proses dekripsi data, Li dan
Ri disimbolkan dengan LDi dan RDi. Selain Li dan Ri ini, kita juga
memerlukan kunci unik Kt (t : 1 t 16) dan modul F untuk
masing-masing round. Berikut akan dijelaskan proses yang terjadi
pada round ke-1 saat proses enkripsi data.a) LE1 diinisialisasi
dengan RE0 atau LE1 = RE0.b) RE1 diinisialisasi dengan
XOR(LE1,F(RE1,K1)) atau RE1 = LE1 F(RE1,K1). Proses round di atas
juga dilakukan pada round ke-2 hingga round ke-16. Hasil keluaran
round ke-16, yaitu LE16 dan RE16, ditukar kontennya (block swap)
sehingga diperoleh LE17 = RE16 dan RE17 = LE16. Selanjutnya, kita
akan membuktikan apakah masukan round ke-16 saat proses enkripsi
data sama dengan block swap hasil keluaran round ke-1 saat proses
dekripsi data, atau dengan kata lain, LD1 = RE15 dan RD1 = LE15.
Pertama, kita telah ketahui bahwa,LE16 = RE15RE16 = LE15
F(RE15,K16)Pada proses dekripsi data,LD1 = RD0 = LE16 = RE15RD1 =
LD0 F(RD0,K16) = RE16 F(RE15,K16) = [LE15 F(RE15,K16)]
F(RE15,K16)sdfsdfsdfsdfsdfKita ketahui bahwa operator XOR memiliki
sifat-sifat sebagai berikut.[A B] C = A [B C]D D = 0E 0 = EMaka,RD1
= LE15 [F(RE15,K16) F(RE15,K16)] = LE15 0 = LE15Dengan demikian,
kita peroleh,LD1 = RE15RD1 = LE15Kesamaan nilai yang terjadi antara
masukan round ke-(16-i) saat proses enkripsi data dengan block swap
hasil keluaran round ke-i saat proses enkripsi data, atau LDi =
RE16-i dan RDi = LE16-i, selalu terjadi. Sama seperti pada proses
enkripsi data, hasil keluaran round ke-16, yaitu LD16 = RE0 dan
RD16 = LE0, ditukar kontennya sehingga diperoleh LD17 = RD16 = LE0
dan RD17 = LD16 = RE0. Hasil akhir ini memperlihatkan bahwa LE0 dan
RE0 berhasil diperoleh lagi pada akhir proses dekripsi data dengan
urutan blok yang benar (tidak lagi block swap) sehingga plaintext
dapat dibuat.
REFERENSI
Buku Teks[1] D. Gourley et al., Secure HTTP in HTTP: The
Definitive Guide, 1st ed. Sebastopol, CA: OReilly, 2002, ch. 14,
pp. 316.[2] D. Gourley et al., Secure HTTP in HTTP: The Definitive
Guide, 1st ed. Sebastopol, CA: OReilly, 2002, ch. 14, pp. 319.[3]
W. Stallings, Block Cipher Principles, in Cryptography and Network
Security: Principles and Practice, 5th ed. Upper Saddle River, NJ:
Prentice-Hall, ch. 3, sec. 3.1, pp. 74.[4] W. Stallings,
Cryptographic Hash Functions, in Cryptography and Network Security:
Principles and Practice, 5th ed. Upper Saddle River, NJ:
Prentice-Hall, ch. 11, sec. 11.5, pp. 343.[5] W. Stallings,
Cryptographic Hash Functions, in Cryptography and Network Security:
Principles and Practice, 5th ed. Upper Saddle River, NJ:
Prentice-Hall, ch. 11, sec. 11.5, pp. 345.[6] W. Stallings,
Principles of Public-key Cryptosystems, in Cryptography and Network
Security: Principles and Practice, 5th ed. Upper Saddle River, NJ:
Prentice-Hall, ch. 9, sec. 9.1, pp. 275.
Internet[7] Y-S Lai et al. (2014, March 15). DES Cipher
Processor for Full Duplex Interleaving Encryption/decryption
Service [online]. Available:
http://www.google.com/patents/US6324286