Posted by: arikuncoro2id | April 14, 2008

Menyelesaikan Persamaan

Ini adalah tugas kuliah Keamanan Sistem Informasi. Saya mencoba menjawabnya dengan program MATLAB

Soal:

Tentukan d, jika d*19=1 mod 48!

Jawab:

Untuk menghitung d dari persamaan di atas diperlukan kemampuan matematis yang lebih dan memakan waktu yang agak lama. Namun, komputer mampu menghitung dengan cepat dengan algoritma tertentu. Oleh sebab itu, saya menawarkan solusi program komputer dengan algoritma yang saya buat sendiri sebagai berikut:

  1. Buat matriks yang isinya merupakan bilangan kelipatan 19 dengan komponen 200 baris x 1 kolom. Nilai 200 di sini dapat ditambah atau dikurang, tergantung keinginan dan prediksi nilai d.
  2. Lakukan operasi mod seluruh isi matriks tersebut dengan 48
  3. Bilamana hasil operasi mod adalah 1, ambil nilai posisi matriks.
  4. Nilai d adalah nilai posisi matriks

Algoritma tersebut saya terapkan pada program MATLAB dengan file bernama mencari_d.m, sehingga saya dapat mengubah-ubah nilai yang dilibatkan. Nilai d yang didapatkan lebih dari satu buah, namun biasanya dalam algoritma enkripsi-dekripsi RSA, diambil yang terkecil saja.

Dalam Command Window, saya melakukan perintah berikut:
mencari_d(19,1,4 8)

ans =

43

91

139

187

Jadi, nilai d=43 karena diambil yang terkecil.

Lampiran Program:

Lampiran file mencari_d.m

%=========================================================== %

% TUGAS 5 KEAMANAN SISTEM INFORMASI %

% program mancari nilai d dari persamaan d*a = b mod c %

% Bernardus Ari Kuncoro 13204038 %

%=========================================================== %

function y = mencari_d(a,b,c)

i=1;

for k=1:200; % memulai looping

kelipatan(k,1)=a*k; % membuat matriks yang berisi kelipatan a sebanyak 1000 komponen

hasil(k,1)=mod(kelipatan(k,1),c); % menentukan nilai mod, agar didapat hasil mod-nya

if hasil(k,1)==b % jika hasil mod-nya adalah b, didapatkanlah nilai d

y(i,1)=k;

i=i+1;

end

end

% Pada soal diketahui d*19=1 mod 48.

% Masukkan nilai-nilai tersebut pada command window MATLAB, sebagai berikut:

% mencari_d=(19,1,48);

% sehingga hasil yang didapatkan adalah: 43, 91, 139, dan 187.

% Keterangan:

% Program ini merupakan salah satu langkah algoritma RSA dalam mencari

% kunci publik/privatnya. Langkah inilah yang sulit bila dilakukan secara

% manual, karena sangat memerlukan pemfaktoran yang berulang-ulang.

Tanggapan

wah..mantap kali pak. terima kasih banyak. untung ada sampeyan. jadi bisa ngumpulin tugas. hehe

brute force? :D

maksude opo, Za?
brute force? hehe…
brute=kasar
force=paksa
“kerja paksa?” gak mudheng aku… haha.

Leave a response

Your response:

Kategori