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