Langsung ke konten utama

Unggulan

Cara Mencegah Inflasi

Pengertian Inflasi Menurut Kamus Besar Bahasa Indonesia, inflasi adalah kemerosotan nilai uang (kertas) karena banyaknya dan cepatnya uang (kertas) beredar sehingga menyebabkan naiknya harga barang-barang. Bank Indonesia  memberikan definisi, inflasi adalah kenaikan harga barang dan jasa secara umum dan terus menerus dalam jangka waktu tertentu. Sedangkan menurut Badan Pusat Statistik, inflasi adalah kecenderungan naiknya harga barang dan jasa pada umumnya yang berlangsung secara terus menerus. Inflasi adalah hal yang biasa terjadi pada negara yang sedang berkembang, yang mengalami kenaikan harga secara meluas dan simultan. Inflasi adalah gejala ekonomi, yang hampir bisa dipastikan tidak mungkin bisa dihindari. Yang bisa dilakukan oleh suatu negara adalah mengendalikannya. Jenis-Jenis Inflasi 1. Inflasi ringan Skala ringan dalam inflasi adalah yang masih dalam tingkat mudah dikendalikan. Biasanya tidak memberikan efek yang terlalu mengganggu stabilitas ekonomi suatu negara. Parameterny

Pengertian Algoritma RSA

RSA adalah sebuah algoritma berdasarkan skema public-key cryptography. Diberi nama RSA sebagai inisial para penemunya: Ron Rivest, Adi Shamir, dan Leonard Adleman. RSA 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.
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]
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)

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.


----| 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 representation-nya.

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.


------| Reference

[1] Childs, Lindsay N. A Concrete Introduction to Higher Algebra.
Undergraduate Texts in Mathematics. Springer-Verlaag: New York,
2000.

[2] Schneier, B. Applied Cryptography, 2nd Ed. John Wiley & Sons, Inc:
Canada, 1996.

[3] Rivest R.L., Shamir A., Adleman L. "A Method for Obtaining Digital
Signatures and Public-Key Cryptosystems. MIT: Massachusetts. 1977.



download simulator dan panduannya. http://www.mediafire.com/?2zxg1etdr2dxppc

Komentar

Posting Komentar

Postingan Populer