Pembangkit Bilangan Acak Semu Linier Congruential Generator LCG

Salah satu pangram bahasa Inggris yang paling terkenal adalah “The quick brown fox jumps over the lazy dog”, yang mencakup semua huruf dalam alfabet bahasa Inggris. Metode steganografi yang dibahas ini tidak hanya memerlukan semua huruf bahasa Inggris, tetapi juga digit dan karakter spesial sehingga dapat cocok dengan semua kemungkinan karakter dari pesan rahasia untuk disembunyikan. Secara formal, setiap karakter s pada pangram memiliki sebuah indeks yang disimbolkan dengan i yang secara unik menunjuk ke sebuah karakter tertentu pada pangram. Pangram akan direpresentasikan sebagai PAN = {S i=0 , S i=1 , S i=2 , S i=3 , ..., S i=511 }. Youssef Bassil, 2012

2.4.4. Medium Kedua : Citra Pembawa

Medium kedua adalah sebuah file citra digital yang tidak terkompresi dari tipe BMP, yang berupa citra berwarna 24 bit, dimana pikselnya tersusun dari tiga buah channel warna, yaitu channel Red, Green dan Blue RGB. Medium ini akan bertindak sebagai file pembawa untuk menempelkan indeks SEED dan OFFSET yang dihasilkan dari medium pertama yaitu kalimat pangram. SEED akan ditempelkan pada piksel khusus, sedangkan OFFSET akan ditempelkan pada piksel selanjutnya. Lokasi bit sebagai tempat penyimpanan indeks ini adalah tiga buah LSB Least Significant Bit dari channel warna yang membentuk piksel dari citra pembawa. Youssef Bassil, 2012

2.5. Pembangkit Bilangan Acak Semu

Pembangkit Bilangan Acak-Semu atau yang biasa dikenal dengan singkatan PRNG Pseudo-Random Number Generator adalah sebuah algoritma untuk menghasilkan suatu urutan bilangan yang terlihat acak, namun sebenarnya urutan tersebut tidak benar-benar acak karena urutan tersebut ditentukan oleh suatu nilai awal. Urutan bilangan yang terlihat acak ini sangat penting karena bisa Universitas Sumatera Utara dimanfaatkan untuk suatu parameter bagi percobaan atau simulasi dan juga menjadi pusat pake praktik kriptografi. Sebuah pembangkit bilangan acak-semu bisa dimulai dengan memberikan nilai umpan. Pembangkit bilangan acak-semu ini akan selalu memberikan urutan bilangan yang sama jika diberikan nilai umpan yang sama, dengan jumlah bilangan yang dihasilkan bergantung kepada besar nilai umpan yang diukur dengan satuan bit. Keuntungan dari penggunaan pembangkit bilangan acak-semu ini adalah efisien, algoritma ini mampu menghasilkan banyak angka dalam waktu singkat, dan tertentu, urutan yang digunakan bisa dimunculkan kembali dengan mudah jika nilai awalnya diketahui. Efisien adalah karakteristik yang sangat baik jika aplikasi kita membutuhkan banyak angka. Kesemua contoh di atas menggunakan suatu nilai acak dengan ukuran tertentu. Acak disini dalan artian acak secara probabilitas. Selain acak, biasanya juga menggunakan ukuran yang cukup besar, misalnya 512 bit. Ukuran yang besar dan keacakan ini membuat kriptanalis tidak akan berfikir untuk melakukan brute- force. Karena, akan memakan waktu yang sangat lama, bisa mencapai ratusan atau ribuan tahun bahkan dengan super komputer paling hebat. Berikut ini beberapa contoh PRNG pembangkit bilangan acak semu : 1. Linear Congruential Generators LCG 2. Blum Blum Shub 3. Lagged Fibonacci generators 4. Linear feedback shift registers 5. Generalised feedback shift registers 6. Mersenne twister 7. Well Equidistributed Long-period Linear Universitas Sumatera Utara

2.6. Linier Congruential Generator LCG

Untuk memudahkan proses pemilihan secara selektif dari bit citra, digunakan standard minimal Linear Congruential Number Generator LCG. Message digest dari sebuah password yang diberikan oleh user akan digunakan sebagai nilai awal pada LCG dan untuk mengekstrak data dari media sampul. Metode standard minimal Linear Congruential Generator LCG yang dipublikasikan oleh Park dan Miller pada tahun 1988 digunakan untuk menghasilkan pseudo random number yang digunakan untuk memilih bit spesifik pada citra sampul sebagai tempat penyembunyian data rahasia. Metode ini merupakan salah satu random number generator yang paling sukses. Rumusan yang digunakan adalah: X n+1 = aX n + c mod m dimana: X adalah nilai awal; 0 ≤ X m a adalah bilangan perkalian multiplier; a ≥ 0 c adalah bilangan penjumlahan increment; c ≥ 0 m adalah bilangan modulus; m X , m a, m c Deretan bilangan acak X n diperoleh dengan men-set: X n+1 = aX n + c mod m, n ≥ 0 Nilai X n yang diperoleh berada pada range nilai [0, m – 1], n ≥ 0. Kedua pihak yang berkomunikasi memiliki sebuah kunci share k yang diperoleh dari message digest dari password yang disediakan oleh user. Sebuah deretan kongruen linier yang didefinisikan oleh m, a, c dan X memiliki tingkat sekuritas yang bagus, jika dan hanya jika tiga kondisi berikut terpenuhi: 1. Bilangan integer positif yang dapat membagi m dan c adalah nilai 1. 2. Jika q adalah sebuah bilangan prima yang dapat membagi m m q, maka q dapat membagi a – 1 a – 1q. 3. Jika m habis dibagi 4 m 4, maka a – 1 habis dibagi 4 a – 1 4. Universitas Sumatera Utara Sebagai tambahan, nilai m harus relatif besar karena nilai yang diperoleh tidak dapat lebih dari m buah elemen. Gabriel dan partner menyarankan agar m = 2 48 = 281,474,976,710,656. Nilai awal X diperoleh dari hasil message digest dari password. Proses ini dapat dilakukan dengan menggunakan sebuah fungsi one way hash, yang memungkinkan pengisian data input pesan dengan panjang yang berbeda, namun selalu menghasilkan output nilai hash message digest dengan panjang yang sama. Sementara itu, untuk nilai a dan c, Gabriel dan partner menyarankan untuk mengunakan nilai: a multiplier = 25214903917 c increment = 11

2.7. Analisis Berorientasi Objek