1. Algoritma RSA dikembangkan pada tahun 1977 oleh Rivest, Shamir, dan Adleman sebagai sistem public-key cryptography.
2. RSA bekerja dengan menggunakan pasangan kunci publik dan privat, di mana kunci publik digunakan untuk enkripsi dan kunci privat untuk dekripsi.
3. Proses enkripsi dan dekripsi melibatkan operasi modular exponentiation dan faktorisasi bilangan prima besar.
Self Dual Codes and Binary Golay Code Presentation Hirwanto Iwan
油
Dokumen tersebut membahas tentang kode linear self-dual dan kode Golay binary extended. Terdapat definisi ruang vektor, kode linear, jarak dan berat Hamming, serta kode self-dual. Kode Golay binary extended dijelaskan sebagai contoh kode self-dual.
Modul ini membahas tentang tipe data dalam bahasa pemrograman C++. Terdapat beberapa jenis tipe data antara lain integer, character, floating-point, dan double. Setiap tipe data memiliki karakteristik berbeda seperti panjang data dan rentang nilai. Modul ini juga mendemonstrasikan contoh kode program penggunaan berbagai tipe data.
Muhammad Abrar Istiadi - How to hack #idsecconf2016 Online CTFidsecconf
油
Dokumen tersebut memberikan panduan untuk menyelesaikan tantangan CTF bertema keamanan siber yang diselenggarakan pada IDSECCONF 2016. Tantangan tersebut terdiri dari 9 tantangan yang berkaitan dengan eksploitasi biner, kriptografi, pemrograman, reverse engineering, dan aplikasi web. Dokumen tersebut menjelaskan analisis dan solusi yang dilakukan untuk menyelesaikan tantangan-tantangan tersebut dengan menggunakan berbagai teknik dan alat
Presentasi Coding versi Beta(belum final)Hir Wanto
油
Dokumen tersebut membahas tentang BCH Codes yang merupakan kelas penting dari kode siklik yang dikembangkan oleh Bose, Chaudhuri, dan Hocquenghem untuk memperbaiki kesalahan ganda. Dokumen tersebut menjelaskan dasar teori lapangan hingga, ring polynomial, suku banyak minimal, dan cyclotomic coset yang terkait dengan konstruksi dan dekoding BCH Codes.
Dokumen tersebut membahas tentang berbagai fungsi visualisasi data dua dan tiga dimensi di Matlab seperti plot, subplot, axis, title, xlabel, ylabel, fill, polar, compass, feather, dan quiver. Dokumen tersebut juga menjelaskan langkah-langkah dasar untuk membuat grafik di Matlab.
Dokumen ini membahas tentang stack, termasuk definisi, operasi dasar, implementasi menggunakan array dan linked list, serta contoh penerapannya untuk mengevaluasi ekspresi matematika dan mengecek keteraturan pasangan kurung.
Dokumen tersebut membahas tentang penggunaan array (larik) dalam bahasa pemrograman C++. Terdapat penjelasan mengenai konsep array satu dimensi dan dua dimensi beserta contoh kode programnya. Hal-hal penting yang diuraikan antara lain cara deklarasi, mengakses, dan menginisialisasi elemen array.
Reed-Solomon code adalah teknik encoding yang menambahkan redundansi data untuk mendeteksi dan memperbaiki kesalahan pada bit transmisi. Teknik ini bekerja dengan mengubah data menjadi simbol-simbol dalam suatu field Galois, lalu menambahkan simbol-simbol parity untuk membentuk codeword. Proses decoding melibatkan penghitungan sindrom dan lokasi serta nilai kesalahan untuk memperbaiki codeword yang diterima.
Bab 4 membahas penggunaan turunan untuk menentukan garis singgung dan normal suatu kurva, menentukan nilai maksimum dan minimum suatu fungsi, serta kecepatan dan percepatan partikel yang bergerak sepanjang garis lurus. Di antaranya dijelaskan cara menentukan persamaan garis singgung dan normal, menguji turunan pertama dan kedua untuk mencari nilai ekstrim, serta rumusan kecepatan dan percepatan berdasarkan turunan fungsi posisi
Dokumen tersebut membahas tentang konsep maksimum dan minimum dalam kalkulus. Terdapat penjelasan tentang titik kritis seperti titik ujung, titik stasioner, dan titik singular yang dapat menentukan nilai maksimum atau minimum suatu fungsi. Juga dijelaskan prosedur untuk menemukan nilai ekstrim suatu fungsi melalui penentuan titik-titik kritisnya. Beberapa contoh soal juga diberikan untuk memperjelas konsep tersebut.
1. Reed-Solomon Code adalah teknik pengkodean error-correcting yang populer untuk komunikasi satelit, magnetic storage, dan HDTV.
2. Teknik ini bekerja dengan menambahkan redundansi data ke dalam pesan asli untuk kemudian didekode dan dikoreksi kesalahan dalam proses decoding.
3. Algoritma encoding dan decoding melibatkan aritmatika di bidang Galois untuk mendeteksi dan memperbaiki kesalahan.
Fungsi turunan dan integral memiliki peran penting dalam menganalisis grafik fungsi dan menentukan sifat-sifatnya seperti asimtot, kemonotonan, ekstrim, kecekungan, dan titik belok. Uji turunan pertama dan kedua digunakan untuk menentukan sifat-sifat tersebut.
Dokumen tersebut membahas tentang integral dan penerapannya dalam memecahkan masalah, khususnya terkait perancangan bangunan tinggi. Integral digunakan untuk menentukan rancangan bagian atas dan bawah bangunan agar tahan terhadap angin yang semakin kuat di bagian atas. Dokumen ini juga berisi pengertian integral, rumus-rumus dasar, sifat-sifat, dan contoh soal integral.
Kuis tryout 1 mata kuliah Dasar-Dasar Pemrograman 2 Fasilkom UI berisi soal pilihan ganda dan esai tentang konsep-konsep dasar Java seperti tipe data, pewarisan, package, class, objek, dan string builder. Soal-soal tersebut bertujuan mengetes pemahaman mahasiswa terhadap materi pemrograman dasar yang telah diajarkan.
Dokumen tersebut membahas materi integral pada kelas XII IPA, yang mencakup pengertian integral tak tentu dan tertentu, integral fungsi aljabar dan trigonometri, integral substitusi, integral parsial, serta penggunaan integral untuk menghitung luas daerah dan volume benda putar."
California has a GDP of approximately $2 trillion, rivaling the entire economies of countries like Italy, France, and Brazil. It has a population of around 38 million people, which is about 10% of the total US population of 315 million. Ethnically, California is 39% Hispanic, 38.7% White, 13% Asian, 5.8% Black, and 3.4% other. The state has seen 27 proposals to split it up. It was originally inhabited by Native Americans, then became a Spanish colony in 1769. After the US-Mexico war in 1846, California declared independence from Mexico, and gold was discovered in 1848, bringing large waves of immigrants. A railroad connecting California to the eastern
This document summarizes a marketing plan for Gl端cklich chocolate. The plan targets consumers aged 25-50 who are university educated, married or single, and have high chocolate consumption habits. The message is that Gl端cklich chocolate creates happiness through its unique taste and increases happiness hormones. The plan utilizes both traditional media like TV, newspapers, radio and magazines as well as modern media. TV advertisements feature Turkish celebrities singing a jingle in different music styles to convey energy and happiness. Billboards and radio spots will also be used. Market research found brand awareness increased 30% after TV advertisements.
Dokumen tersebut membahas tentang berbagai fungsi visualisasi data dua dan tiga dimensi di Matlab seperti plot, subplot, axis, title, xlabel, ylabel, fill, polar, compass, feather, dan quiver. Dokumen tersebut juga menjelaskan langkah-langkah dasar untuk membuat grafik di Matlab.
Dokumen ini membahas tentang stack, termasuk definisi, operasi dasar, implementasi menggunakan array dan linked list, serta contoh penerapannya untuk mengevaluasi ekspresi matematika dan mengecek keteraturan pasangan kurung.
Dokumen tersebut membahas tentang penggunaan array (larik) dalam bahasa pemrograman C++. Terdapat penjelasan mengenai konsep array satu dimensi dan dua dimensi beserta contoh kode programnya. Hal-hal penting yang diuraikan antara lain cara deklarasi, mengakses, dan menginisialisasi elemen array.
Reed-Solomon code adalah teknik encoding yang menambahkan redundansi data untuk mendeteksi dan memperbaiki kesalahan pada bit transmisi. Teknik ini bekerja dengan mengubah data menjadi simbol-simbol dalam suatu field Galois, lalu menambahkan simbol-simbol parity untuk membentuk codeword. Proses decoding melibatkan penghitungan sindrom dan lokasi serta nilai kesalahan untuk memperbaiki codeword yang diterima.
Bab 4 membahas penggunaan turunan untuk menentukan garis singgung dan normal suatu kurva, menentukan nilai maksimum dan minimum suatu fungsi, serta kecepatan dan percepatan partikel yang bergerak sepanjang garis lurus. Di antaranya dijelaskan cara menentukan persamaan garis singgung dan normal, menguji turunan pertama dan kedua untuk mencari nilai ekstrim, serta rumusan kecepatan dan percepatan berdasarkan turunan fungsi posisi
Dokumen tersebut membahas tentang konsep maksimum dan minimum dalam kalkulus. Terdapat penjelasan tentang titik kritis seperti titik ujung, titik stasioner, dan titik singular yang dapat menentukan nilai maksimum atau minimum suatu fungsi. Juga dijelaskan prosedur untuk menemukan nilai ekstrim suatu fungsi melalui penentuan titik-titik kritisnya. Beberapa contoh soal juga diberikan untuk memperjelas konsep tersebut.
1. Reed-Solomon Code adalah teknik pengkodean error-correcting yang populer untuk komunikasi satelit, magnetic storage, dan HDTV.
2. Teknik ini bekerja dengan menambahkan redundansi data ke dalam pesan asli untuk kemudian didekode dan dikoreksi kesalahan dalam proses decoding.
3. Algoritma encoding dan decoding melibatkan aritmatika di bidang Galois untuk mendeteksi dan memperbaiki kesalahan.
Fungsi turunan dan integral memiliki peran penting dalam menganalisis grafik fungsi dan menentukan sifat-sifatnya seperti asimtot, kemonotonan, ekstrim, kecekungan, dan titik belok. Uji turunan pertama dan kedua digunakan untuk menentukan sifat-sifat tersebut.
Dokumen tersebut membahas tentang integral dan penerapannya dalam memecahkan masalah, khususnya terkait perancangan bangunan tinggi. Integral digunakan untuk menentukan rancangan bagian atas dan bawah bangunan agar tahan terhadap angin yang semakin kuat di bagian atas. Dokumen ini juga berisi pengertian integral, rumus-rumus dasar, sifat-sifat, dan contoh soal integral.
Kuis tryout 1 mata kuliah Dasar-Dasar Pemrograman 2 Fasilkom UI berisi soal pilihan ganda dan esai tentang konsep-konsep dasar Java seperti tipe data, pewarisan, package, class, objek, dan string builder. Soal-soal tersebut bertujuan mengetes pemahaman mahasiswa terhadap materi pemrograman dasar yang telah diajarkan.
Dokumen tersebut membahas materi integral pada kelas XII IPA, yang mencakup pengertian integral tak tentu dan tertentu, integral fungsi aljabar dan trigonometri, integral substitusi, integral parsial, serta penggunaan integral untuk menghitung luas daerah dan volume benda putar."
California has a GDP of approximately $2 trillion, rivaling the entire economies of countries like Italy, France, and Brazil. It has a population of around 38 million people, which is about 10% of the total US population of 315 million. Ethnically, California is 39% Hispanic, 38.7% White, 13% Asian, 5.8% Black, and 3.4% other. The state has seen 27 proposals to split it up. It was originally inhabited by Native Americans, then became a Spanish colony in 1769. After the US-Mexico war in 1846, California declared independence from Mexico, and gold was discovered in 1848, bringing large waves of immigrants. A railroad connecting California to the eastern
This document summarizes a marketing plan for Gl端cklich chocolate. The plan targets consumers aged 25-50 who are university educated, married or single, and have high chocolate consumption habits. The message is that Gl端cklich chocolate creates happiness through its unique taste and increases happiness hormones. The plan utilizes both traditional media like TV, newspapers, radio and magazines as well as modern media. TV advertisements feature Turkish celebrities singing a jingle in different music styles to convey energy and happiness. Billboards and radio spots will also be used. Market research found brand awareness increased 30% after TV advertisements.
This course teaches students how to develop their own classroom activities for teaching English to children as a second language. It is a hands-on, practical course aimed at improving teaching skills rather than solely focusing on grades. The course is intended for current or prospective teachers of English and will help students learn contemporary teaching methods and apply them through practice teaching sessions.
Course Presentation 際際滷 Show TEFf5402 UNAD Florida Prof. Flor Lepervancheflepervanche
油
This course teaches students how to develop their own classroom activities for teaching English to children as a second language. It is a hands-on, practical course aimed at improving teaching skills rather than solely focusing on grades. The course is intended for current or prospective teachers of English and will help students learn contemporary teaching methods and apply them through practice teaching sessions.
This course examines how to effectively measure and compare the results of students learning English as a second language, including comparing their outcomes to exams taken in their own country. Teaching English as a foreign language (TEFL) refers to teaching English to students in their home country, either through public schools or privately, and teachers may be native or non-native English speakers. The course is taught by Professor Flor Lepervanche, who can be contacted by email or Skype.
En 2013, el PIB de Colombia creci坦 un 4.3%, una de las tasas m叩s altas de Latinoam辿rica, impulsado principalmente por el aumento del consumo privado debido a las bajas tasas de inter辿s y el crecimiento en la construcci坦n y otros sectores. Bogot叩 represent坦 el 24.4% del PIB nacional, seguido de Antioquia, Valle del Cauca, Santander y Cundinamarca, que en conjunto representaron el 65% de la econom鱈a colombiana.
Este documento contiene informaci坦n sobre el reciclaje tecnol坦gico. Explica que la recolecci坦n de materiales tecnol坦gicos se realiza de manera segura por personal capacitado. Tambi辿n define el reciclaje como un proceso para reutilizar materiales y productos usados como materia prima para nuevos productos. Adem叩s, describe algunos centros de reciclaje tecnol坦gico en Medell鱈n y los problemas globales relacionados con la basura electr坦nica.
Este documento explica el 鱈ndice de masa corporal, c坦mo tomar el pulso, y la f坦rmula de Karvonen para medir la intensidad del ejercicio. El 鱈ndice de masa corporal relaciona el peso y la estatura para determinar si una persona tiene sobrepeso u obesidad. Tomar el pulso antes y despu辿s del ejercicio es importante para medir la recuperaci坦n. La f坦rmula de Karvonen calcula la intensidad del ejercicio aer坦bico en funci坦n de la frecuencia card鱈aca m叩xima y en reposo para asegurar que se al
DC10 Pim den Hertog - Innovatiebeleid en kennisontwikkeling - managing servic...Jaak Vlasveld
油
Pim den Hertog van AMSI presenteerde tijdens de sessie Innovatiebeleid en kennisontwikkeling tijdens het Diensteninnovatie Congres 2010 (DC10) in Almere.
RSS es una forma sencilla de recibir informaci坦n actualizada de p叩ginas web favoritas directamente en un ordenador o p叩gina web sin necesidad de visitar cada sitio individualmente. Funciona a trav辿s de un lector RSS que permite suscribirse a los RSS de p叩ginas web y blogs favoritos para recibir nuevos art鱈culos y contenido de inter辿s. Existen lectores RSS que se instalan localmente, lectores en l鱈nea accesibles a trav辿s de una p叩gina web, y la capacidad de recibir RSS a trav辿s de navegadores web y correo electr
Estos documentos presentan perfiles de varios estudiantes que incluyen su nombre, egreso, especialidad, opiniones sobre su carrera y actividades favoritas, h叩bitos de estudio, rendimiento acad辿mico y dificultades en el aprendizaje.
Este documento describe la organizaci坦n y responsabilidades de seguridad e higiene en una empresa. Establece departamentos como seguridad y salud laboral, e instituciones como el Instituto Nacional de Prevenci坦n, Salud y Seguridad Laborales. Tambi辿n describe la creaci坦n de comit辿s de seguridad e higiene industrial con representaci坦n de trabajadores y patronos para vigilar el cumplimiento de leyes de seguridad.
Itap炭a es el s辿ptimo departamento de Paraguay, con Encarnaci坦n como su capital. Algunos de los principales puntos de inter辿s son la costanera de Encarnaci坦n, las tres playas de la ciudad y el Rally Trans Itap炭a. Itap炭a tambi辿n cuenta con sitios hist坦ricos como las ruinas de la Misi坦n Jesu鱈tica de San Cosme y San Dami叩n.
El documento explica c坦mo funcionan los lectores RSS. Los lectores RSS permiten a los usuarios suscribirse a fuentes de contenido en sitios web para recibir autom叩ticamente actualizaciones sobre nuevas noticias e informaci坦n sin tener que visitar cada sitio individualmente. Los lectores RSS revisan peri坦dicamente las fuentes RSS en los sitios suscritos y muestran al usuario los nuevos contenidos a medida que se publican. Los lectores RSS pueden instalarse directamente en el ordenador o usarse en l鱈nea a trav辿s de p叩ginas web de lectores RSS.
Perkembangan bisnis konten digital telah membawa peluang baru bagi kejahatan klasik di bidang teknologi informasi, yaitu pembajakan sehingga dibutuhkan suatu mekanisme untuk mengatasi permasalahan pembajakan konten mobile ini.
Metode-metode untuk memberikan melindungi data digital, seperti: encryption, copy protection, visible marking, header marking, steganografi, kriptografi, watermarking.
Dokumen tersebut merupakan materi tentang algoritma dan pemrograman array serta contoh-contoh soal dan penyelesaiannya menggunakan bahasa C++. Terdapat penjelasan konsep algoritma, konstruksi algoritma, dan kode program C++ untuk menyelesaikan berbagai masalah yang melibatkan penggunaan array.
Dokumen tersebut membahas konsep array dan penerapannya dalam algoritma dan pemrograman C++. Terdapat penjelasan tentang pendefinisian array, pengaksesan elemen, operasi dasar seperti penjumlahan dan pertukaran elemen, serta contoh kasus penerapannya.
Japaness multiplification 3 variables and 4 variablesstaffpengajar
油
Dokumen ini membahas algoritma perkalian Jepang (Japanese Multiplication) untuk variabel 3 dan 4 dalam bahasa pemrograman C++. Algoritma ini menjelaskan proses perkalian secara terperinci per digit dengan menggunakan carry. Dokumen ini juga memberikan contoh kode C++ untuk mempraktikkan algoritma tersebut.
Algoritma RSA merupakan algoritma kriptografi kunci publik yang paling terkenal dan banyak digunakan. Algoritma ini ditemukan oleh tiga peneliti dari MIT pada tahun 1976. Keamanan RSA terletak pada kesulitan memfaktorkan bilangan besar menjadi faktor-faktor prima.
Dokumen tersebut membahas algoritma enkripsi CAST-128. Algoritma ini menggunakan sistem Substitusi Permutasi Network (SPN) dengan 16 putaran yang menggunakan 3 jenis fungsi putaran yang berbeda. CAST-128 juga menggunakan delapan kotak substitusi dan algoritma penjadwalan kunci untuk menghasilkan 16 pasang subkunci dari kunci awal 128-bit.
Teknik enkripsi dan dekripsi Hill Cipher menggunakan operasi matriks linier untuk mengenkripsi dan mendekripsi blok huruf. Metode ini melibatkan konversi huruf menjadi nilai angka, penggunaan matriks kunci untuk menghasilkan cipherteks melalui perkalian matriks, dan penggunaan invers matriks kunci untuk mendekripsi cipherteks kembali menjadi plaintext.
Dokumen tersebut membahas konsep pointer dalam bahasa pemrograman C/C++. Pointer berperan untuk merujuk pada nilai yang disimpan di memory utama beserta alamatnya. Contoh kasus penggunaan pointer untuk menampilkan nilai dan alamat variabel serta array pun diberikan.
Soal UAS Pemrograman Dasar Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Saprudin Eskom
油
Dokumen tersebut berisi soal ujian akhir semester ganjil mata pelajaran Pemrograman Dasar kelas XI TKJ/RPL SMK Negeri 1 Pandeglang tahun pelajaran 2014/2015. Soal terdiri dari 40 pertanyaan pilihan ganda yang meliputi materi operator aritmatika, logika, array, string, konversi tipe data, pointer, dan penalaran logis.
Dokumen tersebut berisi soal ujian akhir semester ganjil mata pelajaran Pemrograman Dasar kelas XI TKJ/RPL SMK Negeri 1 Pandeglang tahun pelajaran 2014/2015. Soal terdiri dari 40 pertanyaan pilihan ganda yang meliputi materi operator aritmatika, logika, array, string, konversi tipe data, pointer, dan penalaran logis.
Dokumen tersebut membahas tentang algoritma kriptografi modern simetri yang meliputi definisi algoritma kriptografi, prinsip-prinsip kriptografi, fungsi dasar algoritma kriptografi seperti enkripsi dan dekripsi, jenis algoritma kriptografi berdasarkan kuncinya, contoh algoritma blok cipher seperti DES, dan langkah-langkah pengenkripsiannya.
1. Mengenal Algoritma Enkripsi RSA
Oleh: Iwan Ariawan (2097200608)
Sebagai tugas mata kuliah Sistem Keamanan Komputer
Sejarah RSA
Algortima RSA dijabarkan pada tahun [[1977]] oleh tiga orang : [[Ron Rivest]], [[Adi Shamir]]
dan [[Len Adleman]] dari [[Massachusetts Institute of Technology]]. Huruf '''RSA''' itu sendiri
berasal dari inisial nama mereka ('''R'''ivest'''S'''hamir'''A'''dleman).
[[Clifford Cocks]], seorang matematikawan [[Inggris]] yang bekerja untuk [[GCHQ]],
menjabarkan tentang sistem equivalen pada dokumen internal di tahun [[1973]]. Penemuan
Clifford Cocks tidak terungkap hingga tahun [[1997]] karena alasan ''top-secret classification''.
Algoritma tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun [[1983]]
di [[Amerika Serikat]] sebagai {{US patent|4405829}}. Paten tersebut berlaku hingga [[21
September]] [[2000]]. Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi
di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini
menyebabkan hasil temuan Clifford Cocks di kenal secara umum, paten di Amerika Serikat
tidak dapat mematenkannya.
Introduction
RSA adalah sebuah algoritma berdasarkan skema public-key cryptography. Diberi nama RSA
sebagai inisial para penemunya: Ron Rivest, Adi Shamir, dan Leonard Adleman. SA dibuat di
MIT pada tahun 1977 dan dipatenkan oleh MIT pada tahun 1983. Setelah bulan September
tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya
dengan bebas.
Lebih jauh, RSA adalah algoritma yang mudah untuk diimplementasikan dan dimengerti.
algoritma RSA adalah sebuah aplikasi dari sekian banyak teori seperti extended Euclid
algorithm, euler's function sampai fermat theorem.
Artikel ini menjelaskan algoritma RSA dari dasar. Saya akan menggunakan nilai-nilai yang
kecil untuk menjelaskan bagaimana cara kerja algoritma RSA.
Public-Key Cryptography
Konsep fundamental dari Public-Key Cryptography ditemukan oleh Whitfield Diffie dan Martin
Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Public-Key
Cryptography terletak pada pemahaman bahwa keys selalu berpasangan: encryption key dan
decryption key. Juga perlu diingat bahwa sebuah key tidak dapat digenerate dari key lainnya.
Pemahaman encryption dan decryption key sering disebut sebagai public dan private key.
2. Seseorang harus memberikan public key-nya agar pihak lain dapat meng-encrypt sebuah pesan.
Decryption hanya terjadi jika seseorang mempunyai private key.
Scenario
Bagian ini menjelaskan skenario bagaimana public-key cryptosystem bekerja. Saya akan
menggunakan partisipan klasik Alice dan Bob sebagai orang-orang yang melakukan pertukaran
informasi.
1. Alice dan Bob setuju untuk menggunakan public-key cryptosystem.
2. Bob mengirimkan public key-nya kepada Alice.
3. Alice meng-encrypt pesan yang dibuatkan dengan menggunakan public key milik Bob dan
mengirimkan pesan yang sudah di-encrypt kepada Bob.
4. Bob men-decrypt pesan dari Alice menggunakan private key miliknya.
Mathematical Notation
Untuk memahami algoritma RSA, seseorang harus memahami beberapa notasi matematika
dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung semua kalkulasi yang
dilakukan dalam algoritma RSA.
1. Modulo (didenotasikan dengan 'x mod m' atau 'x % m' dalam beberapa bahasa komputer)
- x % m = x mod m = pembagian x dengan m dan mengambil sisanya.
- Contoh: 25 mod 5 = 0 karena 5 habis membagi 25
25 mod 4 = 1 karena 25 / ( 4 * 6 ) menyisakan 1
x mod m = x jika dan hanya jika x < m
2. Z/mZ
- Z/7Z : { 0,1,2,3,4,5,6 } dimana [7]=[0], [8]=[1], [9]=[2] dan seterusnya.
- Operasi yang didukung dalam Z/mZ aalah penjumlahan, pengurangan, pembagian dan
perkalian.
- Inverse: Sebuah elemen dalam Z/mZ seperti A, memiliki sebuah inverse B jika dan hanya
jika [A]x[B] = [1]
- Units: Setiap elemen dalam Z/mZ yang memiliki inverse adalah sebuah unit.
- Contoh: Z/7Z
Penjumlahan: [2]+[3] = [5] ; [5]+[5] = [10] ... [10-7] = [3]
Pengurangan: [2]-[3] = [-1] = [6] ; [6]-[4] = [2]
Pembagian : [6]/[2] = [3] ; [6]/[4] = [5] ([4]x[5] = [20] = [6])
Perkalian : [2]x[6] = [12] = [5] ;
Soal: [6]/[4]
a. Tempatkan dalam formula [6] = [X][4]
b. Cari inverse dari [4], yaitu [2] ... [4]x[2] = [8] = [1]
c. Kali inverse dengan [6] ... [2]x[6] = [12] = [5]
3. d. Sehingga [4]x[5] = [20] = [13] = [6]
3. GCD(A,B)
GCD = greatest common divisor.
GCD(A,B) = D
GCD(78,32) = 2, karena tidak ada bilangan yang lebih besar dari dua yang
membagi 78 dan 32.
GCD(A,B) dapat ditemukan dengan menggunakan algoritma extended euclid.
Jika GCD(A,B) = 1 maka A and B dalah coprime satu sama lainnya (dengan kata lain, A
dan B adalah relatively prime).
4. Memecahkan 8x mod 13 = 1, dimana x adalah bilangan yang belum diketahui.
- Cari gcd(8,13) yang berarti 1 ... yang berarti persamaan dapat diselesaikan.
- Membuat sebuah matriks dan menggunakan operasi gaussian dalam matriks.
8 | 1 0 r2=r2-r1 8 | 1 0 r1=r1-r2
13 | 0 1 ---------> 5 | -1 1 --------->
3 | 2 -1 r2=r2-r1 3 | 2 -1
5 | -1 1 ---------> 2 |-3 2
lakukan sampai kita mendapatkan format : 1 | s t
0 | s' t'
s, t, s', t' dapat berupa bilangan apa saja.
Jika hasil akhir yang di dapat sbb: 0 | s' t' , kita harus
1 | s t
rotasi atas-bawah hasil nya menjadi format: 1 | s t
0 | s' t'
sehingga sekarang kita mendapatkan d = 1, s = 5, t = -3, sehingga
x = s = 5.
5. Euler's phi function (jangan sampai keliru dengan phi = 3.14)
- Euler's phi function adalah sebuah total bilangan unit dalam Z/mZ
- Theorem
a. Jika p adalah sebuah bilangan prima, maka phi(p) = p - 1
p dan phi(p) adalah (contoh: gcd(p,phi(p)) = 1)
ii): phi(m*n) = phi(m) * phi (n)
phi(p^a) = (p^a) - p^(a-1)
4. b. Contoh:
-- phi(7) = 6
-- phi(840) = phi(8) * phi(105) = phi(2^3) * phi(3*5*7)
= [(2^3) - (2^2)] * phi(3) * phi(5) * phi(7)
6. Pangkat. pow(a,b)
Saya akan menggunakan notasi '^' seperti pada a^b
Key Generation
Misalkan Alice ingin Bob mengirimnya sebuah pesan melalui jalur yang aman. Alice akan
memberikan public keynya kepada Bob dan menyimpan private key untuk dirinya.
a. Pilih 2 bilangan prima besar seperti p,q dimana p tidak sama dengan q.
b. Hitung M = p x q
c. Hitung phi(M) = phi(p) * phi(q)
d. Pilih sebuah integer 'e' dimana 1 < e < phi(M) dan 'e' serta phi(M) adalah coprime.
e. Hitung 'd' integer sehingga (d * e) mod M = 1
f. (M,e) adalah public key dimana M adalah modulo dan e adalah eksponen encryption.
g. (M,d) adalah private key dimana M adalah modulo dan d adalah eksponen decryption.
Encrypting Message
Misalkan Bob ingin mengirim sebuah pesan 'H' kepada Alice.
a. Alice harus membuat keynya; sehingga ia memiliki private dan public keys.
private key = (M,d)
public key = (M,e)
b. Mengubah 'H' menjadi sebuah bilangan yang menggunakan alphabet yang valid dengan tabel
bilangan. Sebuah contoh mudah adalah mapping A = 1, B = 2 ... Z = 26.
sehingga H = 8
c. C = 8^e (mod M)
C adalah sebuah bilangan ter-encrypt.
d. Bob mengirimkan bilangan tersebut kepada Alice sehingga Alice dapat melakukan decode
ulang menggunakan private keynya.
Decrypting Message
Misalkan Alice menerima sebuah pesan ter-encrypt, ia akan men-decrypt-nya menggunakan
tahapan-tahapan berikut:
a. Alice mempunyai private key dari langkah-langkah di atas (M,d)
b. N = C^d (mod M)
c. N adalah bilangan. Gunakan konversi table alphabet untuk mengubah
N menjadi karakter yang direpresentasikannya.
5. Example
a. Generate Key (kita dapat melewati langkah ini untuk menemukan p dan q)
1. M = 101 , sebuah bilangan prima --> phi(M) = 100
2) a] Misalkan e = 13
b] Cari d (e*d) mod M = 1
Gunakan persamaan (a*x) mod M = 1
d = 77
b. Kata "HELLO" digunakan sebagai pesan, dan diubah menurut numerical representationnya.
HELLO = 08 05 12 12 15
c. Encoding pesan.
8^13 mod 101 = 18
5^13 mod 101 = 56
12^13 mod 101 = 53
15^13 mod 101 = 7
Sehingga pesan ter-encrypt atau ciphertext adalah 18,56,53,53,07.
d. Decoding pesan.
18^77 mod 101 = x1
56^77 mod 101 = x2
53^77 mod 101 = x3 = x4
07^77 mod 101 = x5
Closure
RSA merupakan contoh yang powerful dan cukup aman dari Public-Key Cryptography.
Berdasarkan matematika, proses yang digunakan berdasarkan fungsi-fungsi trap-door satu arah.
Sehingga melakukan encryption dengan menggunakan public key sangat mudah bagi semua
orang, namun proses decryption menjadi sangat sulit.
Proses decryption sengaja dibuat sulit agar seseorang, walaupun menggunakan Cray
supercomputers dan ribuan tahun, tidak dapat men-decrypt pesan tanpa mempunyai private key.
Perlu diingat juga bahwa pemilihan p*q = M haruslah sebuah bilangan yang sangat besar
sehingga sulit dicari eksponen decoding-nya karena sulit melakukan pemfaktoran bilangan
prima.
''Padding schemes''
''[[Padding Scheme]]'' harus dibangun secara hati-hati sehingga tidak ada nilai dari ''m'' yang
menyebabkan masalah keamanan. Sebagai contoh, jika kita ambil contoh sederhana dari
penampilan [[ASCII]] dari ''m'' dan menggabungkan [[bit|bit-bit]] secara bersama-sama akan
menghasilkan ''n'', kemudian pessan yang berisi ASCII tunggal karakter <code>NUL</code>
(nilai numeris 0) akan menghasilkan ''n''= 0, yang akan menghasilkan ''ciphertext'' 0 apapun itu
6. nilai dari ''e'' dan ''N'' yang digunakan. Sama halnya dengan karakter ASCII tunggal
<code>SOH</code> (nilai numeris 1) akan selalu menghasilkan ''chiphertext'' 1. Pada
kenyataannya, untuk sistem yang menggunakan nilai ''e'' yang kecil, seperti 3, seluruh karakter
tunggal ASCII pada pesan akan disandikan menggunakan skema yang tidak aman, dikarenakan
nilai terbesar ''n'' adalah nilai 255, dan 255<sup>3</sup> menghasilkan nilai yang lebih kecil
dari modulus yang sewajarnya, maka proses dekripsi akan menjadi masalah sederhana untuk
mengambil pola dasar dari ''ciphertext'' tanpa perlu menggunakan modulus ''N''. Sebagai
konsekuensinya, standar seperti [[PKCS]] didesain dengan sangat hati-hati sehingga membuat
pesan asal-asalan dapat terenkripsi secara aman. Dan juga berdasar pada bagian [[#Kecepatan|
Kecepatan]], akan dijelaskan kenapa ''m'' hampir bukanlah pesan itu sendiri tetapi lebih pada
''message key'' yang dipilh secara acak.
Pengesahan pesan
RSA dapat juga digunakan untuk mengesahkan sebuah pesan. Misalkan Alice ingin mengirim
pesan kepada Bob. Alice membuat sebuah ''[[hash value]]'' dari pesan tersebut, di pangkatkan
dengan bilangan ''d'' dibagi ''N'' (seperti halnya pada deskripsi pesan), dan melampirkannya
sebagai "tanda tangan" pada pesan tersebut. Saat Bob menerima pesan yang telah
"ditandatangani", Bob memangkatkan "tanda tangan" tersebut dengan bilangan ''e'' dibagi ''N''
(seperti halnya pada enkripsi pesan), dan membandingkannya dengan nilai hasil dari ''hash
value'' dengan ''hash value'' pada pesan tersebut. Jika kedua cocok, maka Bob dapat mengetahui
bahwa pemilik dari pesan tersebut adalah Alice, dan pesan pun tidak pernah diubah sepanjang
pengiriman.
Harap dicatat bahwa ''padding scheme'' merupakan hal yang esensial untuk mengamankan
pengesahan pesan seperti halnya pada enkripsi pesan, oleh karena itu kunci yang sama tidak
digunakan pada proses enkripsi dan pengesahan.
Keamanan
Penyerangan yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada
bilangan yang sangat besar. Apabila terdapat faktorisasi metode yang baru dan cepat telah
dikembangkan, maka ada kemungkinan untuk membongkar RSA.
Pada tahun [[2005]], bilangan faktorisasi terbesar yang digunakan secara umum ialah sepanjang
663 bit, menggunakan metode distribusi mutakhir. Kunci RSA pada umumnya sepanjang 1024
2048 bit. Beberapa pakar meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada
waktu dekat (hal ini masih dalam perdebatan), tetapi tidak ada seorangpun yang berpendapat
kunci 2048-bit akan pecah pada masa depan yang terprediksi.
Semisal Eve, seorang ''eavesdropper'' (pencuri dengarpenguping), mendapatkan ''public key''
''N'' dan ''e'', dan ciphertext ''c''. Bagimanapun juga, Eve tidak mampu untuk secara langsung
7. memperoleh ''d'' yang dijaga kerahasiannya oleh Alice. Masalah untuk menemukan ''n'' seperti
pada ''n<sup>e</sup>=c'' mod N di kenal sebagai permasalahan RSA.
Cara paling efektif yang ditempuh oleh Eve untuk memperoleh ''n'' dari ''c'' ialah dengan
melakukan faktorisasi ''N'' kedalam ''p'' dan ''q'', dengan tujuan untuk menghitung (''p''-1)(''q''-1)
yang dapat menghasilkan ''d'' dari ''e''. Tidak ada metode waktu polinomial untuk melakukan
faktorisasi pada bilangan bulat berukuran besar di komputer saat ini, tapi hal tersebut pun masih
belum terbukti.
Masih belum ada bukti pula bahwa melakukan faktorisasi ''N'' adalah satu-satunya cara untuk
memperoleh ''n'' dari ''c'', tetapi tidak ditemukan adanya metode yang lebih mudah (setidaknya
dari sepengatahuan publik).
Bagaimanapun juga, secara umum dianggap bahwa Eve telah kalah jika ''N'' berukuran sangat
besar.
Jika ''N'' sepanjang 256-bit atau lebih pendek, ''N'' akan dapat difaktorisasi dalam beberapa jam
pada [[Personal Computer]], dengan menggunakan [[perangkat lunak]] yang tersedia secara
bebas.
Jika ''N'' sepanjang 512-bit atau lebih pendek, ''N'' akan dapat difaktorisasi dalam hitungan
ratusan jam seperti pada tahun [[1999]]. Secara teori, [[perangkat keras]] bernama [[TWIRL]]
dan penjelasan dari Shamir dan Tromer pada tahun [[2003]] mengundang berbagai pertanyaan
akan keamanan dari kunci 1024-bit. Santa disarankan bahwa ''N'' setidaknya sepanjang 2048-
bit.
Pada thaun [[1993]], [[Peter Shor]] menerbitkan [[Algoritma Shor]], menunjukkan bahwa
sebuah [[komputer quantum]] secara prinsip dapat melakukan faktorisasi dalam waktu
polinomial, mengurai RSA dan algoritma lainnya. Bagaimanapun juga, masih terdapat
pedebatan dalam pembangunan komputer quantum secara prinsip.
Pertimbangan praktis
Pembangkitan kunci
Menemukan bilangan prima besar ''p'' dan ''q'' pada biasanya didapat dengan mencoba
serangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima
yang dapat dengan cepat menghapus hampir semua bilangan bukan prima.
''p'' dan ''q'' seharusnya tidak "saling-berdekatan", agar [[faktorisasi fermat]] pada ''N'' berhasil.
Selain itu pula, jika ''p''-1 atau ''q''-1 memeiliki faktorisasi bilangan prima yang kecil, ''N'' dapat
difaktorkan secara mudah dan nilai-nilai dari ''p'' atau ''q'' dapat diacuhkan.
Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan
memberikan informasi penting tentang bilangan prima tersebut kepada penyerang. Biasanya,
pembangkit bilangan acak yang baik akan memulai nilai bilangan yang digunakan. Harap
diingat, bahwa kebutuhan disini ialah "acak" '''''dan''''' "tidak-terduga". Berikut ini mungkin
8. tidak memenuhi kriteria, sebuah bilangan mungkin dapat dipilah dari proses acak (misal, tidak
dari pola apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan
bilangan yang mudah ditebak), maka metode tersebut akan kehilangan kemampuan
keamanannya. Misalnya, tabel bilangan acak yang diterbitkan oleh [[Rand Corp]] pada tahun
[[1950-an]] mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum,
hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. Jika
penyerang dapat menebak separuh dari digit ''p'' atau ''q'', para penyerang dapat dengan cepat
menghitung separuh yang lainnya (ditunjukkan oleh [[Donald Coppersmith]] pada tahun
[[1997]]).
Sangatlah penting bahwa kunci rahasia ''d'' bernilai cukup besar, Wiener menunjukkan pada
tahun [[1990]] bahwa jika ''p'' diantara ''q'' dan 2''q'' (yang sangat mirip) dan ''d'' lebih kecil
daripada ''N''<sup>1/4</sup>/3, maka ''d'' akan dapat dihitung secara effisien dari ''N'' dan ''e''.
Kunci enkripsi ''e'' = 2 sebaiknya tidak digunakan.
Kecepatan
RSA memiliki kecepatan yang lebih lambat dibandingkan dengan [[DES]] dan [[algoritma
simetrik]] lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan algoritma
simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik
yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara
simetrik kepada Alice.
Prosedur ini menambah permasalahan akan keamanan. Singkatnya, Sangatlah penting untuk
menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan,
karena Eve dapat melakukan ''bypass'' terhadap RSA dengan menebak kunci simterik yang
digunakan.
Distribusi kunci
Sebagaimana halnya ''cipher'', bagaimana ''public key'' RSA didistribusi menjadi hal penting
dalam keamanan. Distribusi kunci harus aman dari ''[[man-in-the-middle attack]]''
(''penghadang-ditengah-jalan''). Anggap Eve dengan suatu cara mampu memberikan kunci
arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve
dapan "menghadang" sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob ''public
key'' milik Eve, dimana Bob percaya bahwa ''public key'' tersebut milik Alice. Eve dapat
menghadap seluruh ''ciphertext'' yang dikirim oleh Bob, melakukan dekripsi dengan kunci
rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi
menggunakan ''public key'' milik Alice, dan mengirimkan ''ciphertext'' yang baru kepada Alice.
Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka.
Pengamanan terhadap serangan semacam ini yaitu menggunakan [[sertifikat digital]] atau
komponen lain dari infrastuktur ''public key''.
9. Penyerangan waktu
Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun [[1995]]: jika
penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan
mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa
''ciphertext'', Eve dapat menyimpulkan kunci dekripsi ''d'' secara cepat. Penyerangan ini dapat
juga diaplikasikan pada skema "tanda tangan" RSA. SAlah satu cara untuk mencegah
penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang
konstan untuk setiap ''ciphertext'' yang diproses. Cara yang lainnya, yaitu dengan menggunakan
properti multipikatif dari RSA. Sebagai ganti dari menghitung ''c<sup>d</sup> mod N'', Alice
pertama-tama memilih nilai bilangan acak ''r'' dan menghitung ''(r<sup>e</sup>c)<sup>d</sup>
mod N''. Hasil dari penghitungan tersebut ialah ''rm mod N'' kemudian efek dari ''r'' dapat
dihilangkan dengan perkalian dengan inversenya. Nilai baru dari ''r'' dipilih pada tiap
''ciphertext''. Dengan teknik ini, dikenal sebagai ''message blinding'' (pembutaan pesan), waktu
yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ''ciphertext''
sehingga penyerangan waktu akan gagal.
Penyerangan ''ciphertext'' adaptive
Pada tahun [[1998]], [[Daniel Bleichenbacher]] menjelaskan penggunaan penyerangan
''ciphertext'' adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan
PKCS #1 v1 ''padding scheme''. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher
mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada [[protokol]]
[[Secure Socket Layer]], dan secara potensial mengungkap kunci-kunci yang digunakan.
Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan ''padding
scheme'' yang relatif terbukti aman seperti ''[[Optimal Asymmetric Encryption Padding]]'', dan
Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan
ini.
10. Penyerangan waktu
Kocher menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun [[1995]]: jika
penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara terperinci dan
mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi untuk beberapa
''ciphertext'', Eve dapat menyimpulkan kunci dekripsi ''d'' secara cepat. Penyerangan ini dapat
juga diaplikasikan pada skema "tanda tangan" RSA. SAlah satu cara untuk mencegah
penyerangan ini yaitu dengan memastikan bahwa operasi dekripsi menggunakan waktu yang
konstan untuk setiap ''ciphertext'' yang diproses. Cara yang lainnya, yaitu dengan menggunakan
properti multipikatif dari RSA. Sebagai ganti dari menghitung ''c<sup>d</sup> mod N'', Alice
pertama-tama memilih nilai bilangan acak ''r'' dan menghitung ''(r<sup>e</sup>c)<sup>d</sup>
mod N''. Hasil dari penghitungan tersebut ialah ''rm mod N'' kemudian efek dari ''r'' dapat
dihilangkan dengan perkalian dengan inversenya. Nilai baru dari ''r'' dipilih pada tiap
''ciphertext''. Dengan teknik ini, dikenal sebagai ''message blinding'' (pembutaan pesan), waktu
yang diperlukan untuk proses dekripsi tidak lagi berhubungan dengan nilai dari ''ciphertext''
sehingga penyerangan waktu akan gagal.
Penyerangan ''ciphertext'' adaptive
Pada tahun [[1998]], [[Daniel Bleichenbacher]] menjelaskan penggunaan penyerangan
''ciphertext'' adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan
PKCS #1 v1 ''padding scheme''. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher
mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada [[protokol]]
[[Secure Socket Layer]], dan secara potensial mengungkap kunci-kunci yang digunakan.
Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk menggunakan ''padding
scheme'' yang relatif terbukti aman seperti ''[[Optimal Asymmetric Encryption Padding]]'', dan
Laboratorium RSA telah merilis versi terbaru dari PKCS #1 yang tidak lemah terdapat serangan
ini.