Showing posts with label Criptography. Show all posts
Showing posts with label Criptography. Show all posts

Friday 20 September 2013

Pengertian Enkripsi

Enkripsi adalah suatu metode yang digunakan untuk mengkodekan data sedemikian rupa sehingga keamanan informasinya terjaga dan tidak dapat dibaca tanpa di dekripsi (kebalikan dari proses enkripsi) dahulu. Encryption berasal dari bahasa yunani kryptos yang artinya tersembunyi atau rahasia.
Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.

Manfaat Enkripsi

  1. Beberapa manfaat yang bisa didapatkan dari enkripsi ini adalah :
  2. Kerahasiaan suatu informasi terjamin
  3. Menyediakan authentication dan perlindungan integritas pada algoritma checksum/hash
  4. Menanggulangi penyadapan telepon dan email
  5. Untuk digital signature. Digital signature adalah menambahkan suatu baris statemen pada suatu elektronik copy dan mengenkripsi statemen tersebut dengan kunci yang kita miliki dan hanya pihak yang memiliki kunci dekripsinya saja yang bisa membukanya.
  6. Untuk digital cash

Kerugian Enkripsi

Penyalahgunaan dan kerugian dari enkripsi adalah:
  1. Penyandian rencana teroris
  2. Penyembunyian record criminal oleh seorang penjahat
  3. Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci (decryptor).

Macam-macam Enkripsi pada pemrograman website

Berikut ada beberapa macam metode enkripsi yang dapat anda digunakan pada pemrograman website seperti PHP, ASP dan yang lainnya.
1. Metode Enkripsi MD2
  1. Message-Digest algortihm 2 (MD2) adalah fungsi hash cryptographic yang dikembangkan oleh Ronald Rivest pada tahun 1989'
  2. Algoritma dioptimalkan untuk komputer 8-bit. MD2 yang ditetapkan dalam RFC 1319.
  3. Meskipun algoritma lainnya telah diusulkan sejak dulu, seperti MD4, MD5 dan SHA, bahkan sampai dengan 2004 [update] MD2 tetap digunakan dalam infrastruktur kunci publik sebagai bagian dari sertifikat yang dihasilkan dengan MD2 dan RSA.
2. Metode Enkripsi MD4
  1. Message-Digest algortihm 4(seri ke-4) yang dirancang oleh Profesor Ronald Rivest dari MIT pada tahun 1990. Panjangnya adalah 128 bit.
  2. MD4 juga digunakan untuk menghitung NT-hash ringkasan password pada Microsoft Windows NT, XP dan Vista.
3. Metode Enkripsi MD5
  1. MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994).
  2. Saat kerja analitik menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin).
  3. Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit.
  4. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.
4. Metode Enkripsi SHA
  1. SHA adalah serangkaian fungsi cryptographic hash yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing Standard.
  2. SHA adalah Secure Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2.
  3. Untuk SHA-2 menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512.
5. Metode Enkripsi RC4
  1. RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Unit atau data pada umumnya sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4).
  2. Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel.
  3. RC4 adalah penyandian stream cipher yang dibuat oleh Ron Riverst pada tahun 1987 untuk pengamanan RSA.
  4. Algoritmanya didasarkan pada permutasi acak.
6. Metode Enkripsi Base64
  1. Base64 adalah sistem untuk mewakili data mentah byte sebagai karakter ASCII.
  2. Base64 menyediakan 6-bit encoding 8-bit ASCII karakter.
  3. Base64 merupakan format yang dicetak menggunakan karakter, memungkinkan binari data yang akan dikirim dalam bentuk dan email, dan akan disimpan di database atau file.

Sumber : http://irpantips4u.blogspot.com/2012/11/enkripsi-pengertian-manfaat-kerugian-macam.html

Wednesday 11 September 2013

Cryptography Vigenere Cipher

Sandi Vigenère adalah metode menyandikan teks alfabet dengan menggunakan deretan sandi Caesar berdasarkan huruf-huruf pada kata kunci. Sandi Vigenère merupakan bentuk sederhana dari sandi substitusi polialfabetik. Kelebihan sandi ini dibanding sandi Caesar dan sandi monoalfabetik lainnya adalah sandi ini tidak begitu rentan terhadap metode pemecahan sandi yang disebut analisis frekuensi. Giovan Batista Belaso menjelaskan metode ini dalam buku La cifra del. Sig. Giovan Batista Belaso (1553); dan disempurnakan oleh diplomat Perancis Blaise de Vigenère, pada 1586. Pada abat ke-19, banyak orang yang mengira Vigenère adalah penemu sandi ini, sehingga, sandi ini dikenal luas sebagai "sandi Vigenère".
Sandi ini dikenal luas karena cara kerjanya mudah dimengerti dan dijalankan, dan bagi para pemula sulit dipecahkan. Pada saat kejayaannya, sandi ini dijuluki le chiffre indéchiffrable (bahasa Prancis: 'sandi yang tak terpecahkan'). Metode pemecahan sandi ini baru ditemukan pada abad ke-19. Pada tahun 1854, Charles Babbage menemukan cara untuk memecahkan sandi Vigenère. Metode ini dinamakan tes Kasiski karena Friedrich Kasiski-lah yang pertama mempublikasikannya.

Cara kerja

Tabel Vigenère, atau tabula recta, dapat digunakan untuk enkripsi maupun dekripsi sandi Vigenère.
Sandi Vigenère sebenarnya merupakan pengembangan dari sandi Caesar. Pada sandi Caesar, setiap huruf teks terang digantikan dengan huruf lain yang memiliki perbedaan tertentu pada urutan alfabet. Misalnya pada sandi Caesar dengan geseran 3, A menjadi D, B menjadi E and dan seterusnya. Sandi Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda.
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut tabel Vigenère (gambar). Tabel Vigenère berisi alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan sandi Caesar. Setiap huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci yang diulang
Misalnya, teks terang yang hendak disandikan adalah perintah "Serbu Berlin":
serbuberlin
Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza"
"PIZZA" diulang sehingga jumlah hurufnya sama banyak dengan teks terang:
PIZZAPIZZAP
Huruf pertama pada teks terang, S, disandikan dengan menggunakan baris berjudul P, huruf pertama pada kata kunci. Pada baris P dan kolom S di tabel Vigenère, terdapat huruf H. Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris I (huruf kedua kata kunci) dan kolom E (huruf kedua teks terang), yaitu huruf M. Proses ini dijalankan terus sehingga
Teks terang: serbuberlin
Kata kunci: PIZZAPIZZAP
Teks bersandi: HMQAUQMQKIC
Proses sebalinya (disebut dekripsi), dilakukan dengan mencari huruf teks bersandi pada baris berjudul huruf dari kata kunci. Misalnya, pada contoh di atas, untuk huruf pertama, kita mencari huruf H (huruf pertama teks tersandi) pada baris P (huruf pertama pada kata kunci), yang terdapat pada kolom S, sehingga huruf pertama adalah S. Lalu M terdapat pada baris I di kolom E, sehingga diketahui huruf kedua teks terang adalah E, dan seterusnya hingga didapat perintah "serbuberlin".
Enkripsi (penyandian) dengan sandi Vigenère juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan dan operasi modulus, yaitu:
C_i \equiv (P_i + K_i) \mod 26
atau C = P + K kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26
dan dekripsi,
P_i \equiv (C_i - K_i) \mod 26
atau P = C - K kalau hasilnya positif & + 26 kalau hasil pengurangan minus
Keterangan: C_i adalah huruf ke-i pada teks tersandi, P_i adalah huruf ke-i pada teks terang, K_i adalah huruf ke-i pada kata kunci, dan mod adalah operasi modulus (sisa pembagian).

Pehitungan Sandi Vigenere

Rumus enkripsi vigenere cipher :
P_i \equiv (C_i - K_i) \mod 26
atau
Ci = ( Pi + Ki ) – 26 kalau hasil penjumlahan Pi dan Ki lebih dari 26

Rumus dekripsi vigenere cipher :
P_i \equiv (C_i - K_i) \mod 26
atau
Pi = ( Ci – Ki ) + 26 kalau hasil pengurangan Ci dengan Ki minus

Dimana:
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i

Nilai desimal karakter:
A=0 B=1 C=2 ... Z=25

Sebagai contoh, jika plaintext adalah STIKOMBALI dan kunci adalah KAMPUS maka proses enkripsi yang terjadi adalah sebagai berikut:
Plaintext: STIKOMBALI
Key: KAMPUSKAMP
Ciphertext: CTUZIELAXX
Pada contoh diatas kata kunci KAMPUS diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi vigenere  plainteks huruf pertama S (yang memiliki nilai Pi=18) akan dilakukan pergeseran dengan huruf K (yang memiliki Ki=10) maka prosesnya sebagai berikut:
 Ci = ( Pi + Ki ) mod 26 
    = (18 + 10) mod 26
    = 28 mod 26
    = 2    
Ci=2 maka huruf ciphertext dengan nilai 2 adalah C . Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext. Setelah semua huruf terenkripsi maka proses dekripsinya dapat dihitung sebagai berikut:
 Pi = ( Ci – Ki ) + 26
    = ( 2 – 10 ) + 26
    = –8 + 26
    = 18
Pi=18 maka huruf plainteks dengan nilai 18 adalah S. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua ciphertext telah terdekripsi menjadi plainteks.

Sumber : http://id.wikipedia.org/wiki/Sandi_Vigen%C3%A8re


Monday 2 September 2013

Algoritma RSA

RSA adalah algoritma untuk kriptografi kunci publik yang didasarkan pada kesulitan dugaan anjak bilangan bulat besar, masalah anjak piutang. RSA adalah singkatan dari Ron Rivest, Adi Shamir dan Leonard Adleman, yang pertama kali secara terbuka dijelaskan algoritma pada tahun 1977. Clifford Cocks, seorang matematikawan Inggris, telah mengembangkan sebuah sistem yang setara pada tahun 1973, tapi itu tidak dideklasifikasi sampai 1997.

Seorang pengguna RSA menciptakan dan kemudian menerbitkan produk dari dua bilangan prima besar, bersama dengan nilai tambahan, seperti kunci publik mereka. Faktor prima harus dirahasiakan. Siapapun dapat menggunakan kunci publik untuk mengenkripsi pesan, tetapi dengan metode saat ini diterbitkan, jika kunci publik cukup besar, hanya seseorang dengan pengetahuan tentang faktor prima dapat membuka pesan. Apakah melanggar enkripsi RSA adalah sekeras anjak adalah pertanyaan terbuka yang dikenal sebagai masalah RSA.

Sejarah

Adi Shamir, , salah satu penulis dari RSA : Rivest , Shamir dan AdlemanAlgoritma RSA adalah publik dijelaskan pada tahun 1977 oleh Ron Rivest , Adi Shamir , dan Leonard Adleman di MIT , huruf RSA adalah inisial nama keluarga mereka , tercantum dalam urutan yang sama seperti di atas kertas.

MIT diberikan US Patent 4.405.829 untuk " sistem komunikasi kriptografi dan metode " yang digunakan algoritma pada tahun 1983 . Paten akan berakhir pada tanggal 21 September 2000 ( jangka waktu paten adalah 17 tahun pada saat itu ) , tetapi algoritma ini dirilis ke dalam domain publik oleh RSA Security pada tanggal 6 September 2000, dua minggu sebelumnya . [ 4 ] Karena kertas yang menjelaskan algoritma telah diterbitkan pada bulan Agustus 1977 , [ 3 ] sebelum Desember 1977 tanggal pengajuan aplikasi paten , regulasi di sebagian besar sisa paten menghalangi dunia di tempat lain dan hanya paten AS diberikan . Telah bekerja Cocks ' sudah dikenal publik , hak paten di Amerika Serikat mungkin tidak mungkin terjadi , baik .

Dari abstrak DWPI tentang paten ,

    
Sistem ini mencakup saluran komunikasi digabungkan untuk setidaknya satu terminal memiliki perangkat encoding dan setidaknya satu terminal memiliki perangkat decoding . Pesan - to-be - ditransfer dienkripsi ke ciphertext di terminal pengkodean dengan pengkodean pesan sebagai M nomor dalam satu set yang telah ditentukan . Angka itu kemudian dinaikkan menjadi kekuatan yang telah ditentukan terlebih dahulu ( terkait dengan penerima yang dituju ) dan akhirnya dihitung . Sisanya atau residu , C, ... dihitung ketika jumlah exponentiated dibagi dengan produk dari dua bilangan prima yang telah ditentukan ( terkait dengan penerima yang dituju ) .Clifford Cocks , seorang matematikawan Inggris yang bekerja untuk badan intelijen Inggris GCHQ , dijelaskan sistem setara dalam dokumen internal pada tahun 1973 tetapi, mengingat komputer relatif mahal yang diperlukan untuk menerapkannya pada saat itu, itu sebagian besar dianggap keingintahuan dan , sejauh diketahui publik , tidak pernah digunakan . Penemuannya , bagaimanapun, tidak terungkap sampai 1998 karena klasifikasinya rahasia , dan Rivest , Shamir , dan Adleman dirancang RSA independen pekerjaan Cocks ' .

Operasi

Algoritma RSA melibatkan tiga langkah: pembangkitan kunci, enkripsi dan dekripsi.

pembangkitan kunci 
RSA melibatkan kunci publik dan sebuah kunci pribadi . Kunci publik dapat diketahui oleh semua orang dan digunakan untuk mengenkripsi pesan . Pesan dienkripsi dengan kunci publik hanya dapat didekripsi dalam jumlah waktu yang wajar dengan menggunakan kunci pribadi . Kunci untuk algoritma RSA yang dihasilkan dengan cara berikut :

    1.
Pilih dua berbeda nomor perdana p dan q .

  • Untuk tujuan keamanan , bilangan bulat p dan q harus dipilih secara acak , dan harus menjadi serupa bit - panjang . Integer Perdana dapat efisien ditemukan menggunakan tes primality .
    2.  Hitung n = pq .
  • n digunakan sebagai modulus untuk kedua kunci publik dan swasta . Panjangnya , biasanya dinyatakan dalam bit , adalah panjang kunci.
    3. Hitung φ ( n ) = φ ( p ) φ ( q ) = ( p - 1 ) ( q - 1 ) , di mana φ adalah fungsi totient Euler.
   4.
Pilih e bilangan bulat sehingga 1 < e < φ ( n ) dan gcd ( e , φ ( n ) ) = 1 , yaitu e dan φ ( n ) adalah coprime .

  • e dilepaskan sebagai eksponen kunci publik .
  • e memiliki Hamming hasil berat bit - panjang dan kecil pendek enkripsi yang lebih efisien - paling sering 216 + 1 = 65.537 . Namun, nilai yang lebih kecil dari e (seperti 3 ) telah terbukti kurang aman dalam beberapa pengaturan . [ 5 ]
   5. Tentukan d sebagai d - 1 ≡ e ( mod φ ( n ) ) , yaitu , d adalah invers perkalian dari e ( Modulo φ ( n ) ) .
  • Hal ini lebih jelas dinyatakan sebagai memecahkan d diberikan d ⋅ e ≡ 1 ( mod φ ( n ) )
  • Hal ini sering dihitung dengan menggunakan algoritma Euclidean diperpanjang .
  • d disimpan sebagai eksponen kunci pribadi .
Dengan konstruksi, d ⋅ e ≡ 1 ( mod φ ( n ) ) . Kunci publik terdiri dari n modulus dan masyarakat ( atau enkripsi ) eksponen e . Kunci pribadi terdiri dari n modulus dan swasta ( atau dekripsi ) eksponen d , yang harus dirahasiakan . p , q , dan φ ( n ) juga harus dirahasiakan karena mereka dapat digunakan untuk menghitung d .
  • Sebuah alternatif , yang digunakan oleh PKCS # 1 , adalah memilih d pencocokan de ≡ 1 ( mod λ ) dengan λ = lcm ( p - 1 , q - 1 ) , di mana lcm adalah beberapa yang paling umum . Menggunakan λ bukan φ ( n ) memungkinkan lebih banyak pilihan untuk d . λ juga dapat didefinisikan menggunakan fungsi Carmichael , λ ( n ) .
  • ANSI X9.31 standar mengatur , IEEE 1363 menjelaskan , dan PKCS # 1 memungkinkan , bahwa p dan q sesuai persyaratan tambahan : menjadi bilangan prima yang kuat , dan menjadi cukup berbeda bahwa Fermat faktorisasi gagal . 

Enkripsi 
Alice mentransmisikan kunci publik-nya (n, e) Bob dan menjaga rahasia kunci pribadi. Bob kemudian ingin mengirimkan pesan M untuk Alice.

Dia pertama kali ternyata M ke integer m, sedemikian sehingga 0 m <n dengan menggunakan protokol yang disepakati reversibel dikenal sebagai skema bantalan. Dia kemudian menghitung ciphertext c sesuai dengan

 c \equiv m^e \pmod{n} . 

Hal ini dapat dilakukan dengan cepat menggunakan metode exponentiation dengan cara mengkuadratkan. Bob kemudian mengirimkan c untuk Alice.

Dekripsi 
Alice dapat memulihkan m dari c dengan menggunakan kunci pribadi eksponen d melalui komputasi 
 m \equiv c^d \pmod{n} . 
Mengingat m, dia dapat memulihkan pesan M asli dengan membalik skema bantalan.

(Dalam prakteknya, ada metode yang lebih efisien menghitung cd menggunakan nilai precomputed di bawah ini.)


Menggunakan algoritma sisa Cina

Untuk efisiensi banyak perpustakaan kripto populer (seperti OpenSSL, Java dan NET.) Menggunakan optimasi berikut untuk enkripsi dan penandatanganan didasarkan pada teorema sisa Cina. Nilai-nilai berikut precomputed dan disimpan sebagai bagian dari kunci pribadi :
  • p dan q: bilangan prima dari pembangkitan kunci,
  • d_P = d\text{ (mod }p - 1\text{)}  
  •  d_Q = d\text{ (mod }q - 1\text{)} 
  •  q_\text{inv} = q^{-1}\text{ (mod }p\text{)} 
Nilai-nilai ini memungkinkan penerima untuk menghitung eksponensial m = cd (mod pq) lebih efisien sebagai berikut:
  • m_1 = c^{d_P}\text{ (mod }p\text{)}
  • m_2 = c^{d_Q}\text{ (mod }q\text{)}
  • h = q_\text{inv}(m_1 - m_2)\text{ (mod }p\text{)} jika ( m_1 < m_2 kemudian beberapa librarie menghitung h sebagai q_\text{inv}(m_1 + p - m_2)\text{ (mod }p\text{)}).
  • m = m_2 + hq\, 
Ini lebih efisien daripada komputasi m cd (mod pq) meskipun dua eksponensial modular harus dihitung. Alasannya adalah bahwa kedua eksponensial modular baik menggunakan eksponen kecil dan modulus yang lebih kecil.  

Sebuah Contoh Pekerjaan

Berikut adalah contoh dari enkripsi dan dekripsi RSA. Parameter yang digunakan di sini adalah artifisial kecil, tetapi kita juga bisa menggunakan OpenSSL untuk menghasilkan dan memeriksa pasangan kunci  nyata. 
  1. Pilih dua bilangan prima yang berbeda, seperti
    p = 61 dan q = 53. 
  2. Hitung n = pq memberikan 
  3. n = 61 \times 53 = 3233.
  4. Hitunglah totient dari produk sebagai φ (n) = (p - 1) (q - 1) memberikan    \varphi(3233) = (61 - 1)(53 - 1) = 3120
  5. Pilih angka 1 <e <3120 yang coprime ke 3120. Memilih bilangan prima untuk e meninggalkan,kita hanya untuk memeriksa bahwa e bukan pembagi dari 3120.     Let e = 17.
  6. Hitung d, yang perkalian invers modular e (mod φ (n)) menghasilkan 
d = 2753.


Kunci publik adalah (n = 3233, e = 17). Untuk pesan plaintext m mengisi, fungsi enkripsi adalah
c(m) = m^{17} \text{ (mod } 3233\text{)}.
Kunci pribadi (n = 3233, d = 2.753). Untuk dienkripsi ciphertext c, fungsi dekripsi c2753(mod 3233).
m(c) = c^{2753} \text{ (mod } 3233\text{)}.
misalnya, dalam proses enkripsi m = 65, kita hitung
c \equiv 65^{17} \text{ (mod } 3233\text{)} \equiv 2790 \  
untuk mendekripsi c = 2790, kita hitung
m \equiv 2790^{2753} \text{ (mod } 3233\text{)} \equiv 65 \  
Kedua perhitungan tersebut dapat dihitung secara efisien menggunakan persegi dan kalikan algoritma untuk eksponensial modular. Dalam situasi kehidupan nyata bilangan prima yang dipilih akan jauh lebih besar, dalam contoh kita akan sepele faktor n, 3233 (diperoleh dari kunci publik tersedia secara bebas) kembali ke bilangan prima p dan q. Mengingat e, juga dari kunci publik, kita kemudian bisa menghitung d sehingga memperoleh kunci pribadi.
  
Implementasi praktis menggunakan teorema sisa Cina untuk mempercepat perhitungan menggunakan modulus faktor (mod pq menggunakan mod p dan mod q).
nilai-nilai dp, dq dan qinv, yang merupakan bagian dari kunci pribadi adalah sebagai berikut:  
d_p = d\text{ (mod }(p-1)\text{)} = 2753 \text{ (mod } (61-1)\text{)} = 53 
d_q = d\text{ (mod }(q-1)\text{)} = 2753 \text{ (mod } (53-1)\text{)} = 49 
q_\text{inv} = q^{-1} \text{ (mod } p\text{)} = 53^{-1} \text{ (mod } 61\text{)} = 38 
(karenanya q_\text{inv} \times q \text{ (mod } p\text{)} = 38 \times 53 \text{ (mod } 61\text{)} = 1)
Berikut adalah bagaimana dp, dq and qinv digunakan untuk mengefisiensi dekripsi. (Enkripsi efisien dengan pilihan eksponen publik e)
m_1 = c^{d_p} \text{ (mod } p\text{)} = 2790^{53} \text{ (mod } 61\text{)} = 4 
m_2 = c^{d_q} \text{ (mod } q\text{)} = 2790^{49} \text{ (mod } 53\text{)} = 12 
h = (q_{Inv} \times (m_1 - m_2)) \text{ (mod } p\text{)} = (38 \times -8) \text{ (mod } 61\text{)} = 1 
m = m_2 + h \times q = 12 + 1 \times 53 = 65 (sama seperti di atas, tetapi dihitung lebih efisien).

 


NB:
Mohon maaf apabila ada kalimat atau kata yang tidak dimengerti, karena sebagian referensi berasal dari terjemahan google transleter.

 

Sumber : http://en.wikipedia.org/wiki/RSA_%28algorithm%29

 

Sunday 4 August 2013

Kriptografi

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita [bruce Schneier - Applied Cryptography]. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan informasi ditangani oleh kriptografi.
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
  • Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
  • Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
  • Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
  • Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.

Terminologi

Sampai zaman modern kriptografi disebut hampir secara eksklusif untuk enkripsi, yang merupakan proses konversi informasi biasa (disebut plaintext) menjadi teks yang tidak dimengerti (disebut ciphertext). Dekripsi sebaliknya, dengan kata lain, bergerak dari tidak dimengerti ciphertext kembali ke plaintext. Sebuah cipher (atau nol) adalah sepasang algoritma yang membuat enkripsi dan dekripsi membalikkan. Operasi rinci cipher dikendalikan baik oleh algoritma dan dalam setiap contoh oleh "kunci". Ini adalah rahasia (idealnya hanya diketahui oleh komunikan), biasanya string pendek karakter, yang diperlukan untuk mendekripsi ciphertext. A "cryptosystem" adalah daftar memerintahkan unsur kemungkinan plainteks terbatas, mungkin cyphertexts terbatas, mungkin kunci terbatas, dan enkripsi dan dekripsi algoritma yang sesuai dengan setiap tombol. Kunci yang penting, karena tanpa cipher kunci variabel dapat sepele rusak hanya dengan pengetahuan tentang cipher digunakan dan karena itu tidak berguna (atau bahkan kontra-produktif) untuk sebagian besar tujuan. Secara historis, cipher sering digunakan secara langsung untuk enkripsi atau dekripsi tanpa prosedur tambahan seperti otentikasi atau pemeriksaan integritas.
Kriptografi Symmetric-kunci, dimana kunci yang sama digunakan baik untuk enkripsi dan dekripsi
Dalam penggunaan sehari-hari, istilah "kode" sering digunakan untuk berarti setiap metode enkripsi atau penyembunyian makna. Namun, dalam kriptografi, kode memiliki arti yang lebih khusus. Ini berarti penggantian unit plaintext (yaitu, sebuah kata atau frase yang bermakna) dengan kata kode (misalnya, walabi menggantikan serangan pada waktu fajar). Kode tidak lagi digunakan dalam kriptografi serius-kecuali kebetulan untuk hal-hal seperti unit sebutan (misalnya, Bronco Flight atau Operasi Overlord)-karena cipher yang dipilih benar keduanya lebih praktis dan lebih aman daripada kode terbaik dan juga lebih baik disesuaikan dengan komputer .

Cryptanalysis adalah istilah yang digunakan untuk studi tentang metode untuk memperoleh arti dari informasi yang dienkripsi tanpa akses ke kunci yang biasanya diperlukan untuk melakukannya, yaitu, itu adalah studi tentang bagaimana untuk memecahkan algoritma enkripsi atau implementasi mereka.

Beberapa menggunakan istilah kriptografi dan kriptologi bergantian dalam bahasa Inggris, sementara yang lain (termasuk latihan militer AS umumnya) menggunakan kriptografi untuk merujuk secara khusus untuk penggunaan dan praktek teknik kriptografi dan kriptologi untuk merujuk pada studi gabungan kriptografi dan kriptanalisis. [8] [9] Inggris lebih fleksibel daripada beberapa bahasa lain di mana kriptologi (dilakukan oleh ahli kriptologi) selalu digunakan dalam arti kedua di atas. Di Wikipedia bahasa Inggris istilah umum yang digunakan untuk seluruh bidang adalah kriptografi (dilakukan oleh kriptografer).

Studi tentang karakteristik bahasa yang memiliki beberapa aplikasi dalam kriptografi (atau kriptologi), yaitu frekuensi data, kombinasi huruf, pola yang universal, dll, disebut cryptolinguistics.
 


Sejarah dari kriptografi dan cryptanalysis (pembacaan sandi)

Sebelum era modern, kriptografi prihatin semata-mata dengan kerahasiaan pesan (misalnya, enkripsi)-konversi pesan dari bentuk dipahami menjadi satu dimengerti dan kembali lagi di ujung yang lain, rendering itu dibaca oleh pencegat atau penyadap tanpa pengetahuan rahasia (yaitu kunci yang diperlukan untuk dekripsi pesan itu). Enkripsi digunakan untuk (berusaha) menjamin kerahasiaan dalam komunikasi, seperti mata-mata, pemimpin militer, dan diplomat. Dalam beberapa dekade terakhir, lapangan telah berkembang di luar masalah kerahasiaan untuk memasukkan teknik untuk memeriksa integritas pesan, pengirim / otentikasi identitas penerima, tanda tangan digital, bukti interaktif dan komputasi aman, antara lain.