<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Kriptologi is My Way to Life</title>
	<atom:link href="http://kriptologi.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kriptologi.wordpress.com</link>
	<description>Begginer's that hope be a Master soon...</description>
	<lastBuildDate>Fri, 03 Oct 2008 15:56:26 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>id</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='kriptologi.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/e028bdf5f8d8462be2a66ce2efe9c041?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Kriptologi is My Way to Life</title>
		<link>http://kriptologi.wordpress.com</link>
	</image>
			<item>
		<title>Kriptografi NOW not the Past</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/kriptografi-now-not-the-past/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/kriptografi-now-not-the-past/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:55:02 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Kriptografi]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=27</guid>
		<description><![CDATA[
Kriptografi saat ini


PENDAHULUAN

1.1  Latar belakang
Perkembangan teknologi informasi dan komunikasi semakin mempermudah proses pengolahan, penyimpanan dan pendistribusian data dan informasi. Aspek kemudahan yang didapat tersebut ternyata berbanding terbalik dengan faktor confidentiality (kerahasiaan), intergrity dan availability (ketersediaan).
Proses pengiriman data yang dilakukan media seperti Local Area Network (LAN), internet, email, handphone maupun media lain; pada dasarnya melakukan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=27&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 		A:link { color: #0000ff } 	--></p>
<p style="margin-bottom:0;line-height:200%;" align="center"><strong>Kriptografi saat ini<br />
</strong>
</p>
<p style="margin-bottom:0;line-height:150%;" align="center"><strong>PENDAHULUAN</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:.17in;line-height:150%;" align="justify"><strong>1.1  Latar belakang</strong></p>
<p style="line-height:150%;" align="justify">Perkembangan teknologi informasi dan komunikasi semakin mempermudah proses pengolahan, penyimpanan dan pendistribusian data dan informasi. Aspek kemudahan yang didapat tersebut ternyata berbanding terbalik dengan faktor <em>confidentiality </em>(kerahasiaan), <em>intergrity</em> dan <em>availability</em> (ketersediaan).</p>
<p style="line-height:150%;" align="justify">Proses pengiriman data yang dilakukan media seperti <em>Local Area Network </em>(LAN), internet, email, handphone maupun media lain; pada dasarnya melakukan pengiriman data tanpa melakukan pengamanan terhadap konten dari data yang dikirim, sehingga ketika dilakukan penyadapan pada jalur pengirimannya maka data yang disadap dapat langsung dibaca oleh penyadap. Untuk menghidari kemungkinan data yang disadap dapat langsung dibaca oleh penyadap, maka data yang dikirim diacak dengan menggunakan metode penyandian tertentu sehingga pesan yang terkandung dalam data yang dikirim tersebut menjadi lebih aman.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Salah satu metode kriptograpi yang ditawarkan untuk melakukan penyandian terhadap data adalah metode kriptografi pontifex yang menggunakan prinsip dari kartu sehingga terdapat 54! cara kartu tersebut diatur.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">
<ol>
<li>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>Tujuan</strong></p>
</li>
</ol>
</li>
</ol>
<p style="margin-bottom:0;line-height:150%;" align="justify">Tujuan penulisan untuk mengetahui prinsip dasar dari proses penyandian dengan menggunakan algoritma kriptografi Pontifex.</p>
<p style="margin-bottom:0;line-height:200%;" align="center"><strong>TINJAUAN PUSTAKA</strong></p>
<p style="margin-bottom:0;" align="center">
<p style="margin-bottom:0;line-height:200%;" align="justify"><strong>2.1  Terminologi</strong></p>
<p style="line-height:150%;" align="justify">Kriptograpi (<em>cryptography</em>) adalah studi mengenai metode penyandian pesan yang bertujuan untuk menghindari perolehan pesan secara tidak sah<sup><strong>[3]</strong></sup>. <span style="font-size:x-small;">Kriptografi </span><span style="font-size:x-small;">(</span><span style="font-size:x-small;"><em>cryptography</em></span><span style="font-size:x-small;">) merupakan ilmu dan seni untuk menjaga pesan agar aman. </span>(<em>Cryptography is the art and science of keeping messages</em> <em>secure</em>)<sup> [1]</sup>. “<em>Crypto</em>” berarti “<em>secret</em>” (rahasia) dan “<em>graphy</em>” berarti “<em>writing</em>” (tulisan)<sup>[5]</sup>. Para pelaku atau praktisi kriptografi disebut <em>cryptographers</em>. Sebuah algoritma kriptografik (<em>cryptographic algorithm</em>), disebut <em>cipher</em>, merupakan persamaan matematik yang digunakan untuk proses enkripsi dan dekripsi. Biasanya kedua persamaan matematik (untuk enkripsi dan dekripsi) tersebut memiliki hubungan matematis yang erat.</p>
<p style="line-height:150%;" align="justify">Proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut <em>plaintext</em>) menjadi pesan yang tersembunyi (disebut <em>ciphertext</em>) adalah enkripsi<strong> </strong>(<em>encryption</em>). <em>Ciphertext </em>adalah pesan yang sudah tidak dapat dibaca dengan mudah. Menurut ISO 7498-2, terminologi yang lebih tepat digunakan adalah “<em>encipher</em>”. Proses sebaliknya, untuk mengubah <em>ciphertext </em>menjadi <em>plaintext</em>, disebut dekripsi<strong> </strong>(<em>decryption</em>). Menurut ISO 7498-2, terminologi yang lebih tepat untuk proses ini adalah “<em>decipher</em>”.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Cryptanalysis </em>adalah seni dan ilmu untuk memecahkan <em>ciphertext </em>tanpa bantuan kunci. <em>Cryptanalyst </em>adalah pelaku atau praktisi yang menjalankan <em>cryptanalysis</em>. <em>Cryptology </em>merupakan gabungan dari <em>cryptography </em>dan <em>cryptanalysis</em>.  Kriptograpi merupakan bidang pengetahuan yang cukup tua. Kriptograpi digunakan oleh Julius Caesar dalam perang Gallic, walaupun saat itu hanya menggunakan metode sederhana dengan melakukan pergeseran pada urutan huruf. Secara garis besar proses kriptograpi terdapat dua bagian yaitu enkripsi dan dekripsi.</p>
<p style="margin-bottom:0;line-height:150%;page-break-before:always;" lang="sv-SE" align="justify">Gambar di bawah ini mengilustrasikan bagian proses kriptograpi</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-left:1in;text-indent:.5in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Gambar 2.1 Sistem Kriptograpi</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>2.2  Algoritma Berdasarkan Key </strong><sup><strong>[3]</strong></sup></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Terdapat dua macam algoritma  kriptograpi yaitu algoritma <em>Public Key (Asymetric)</em> dan <em>Secret Key ( Simetric).</em> Algoritma simetrik sendiri terdiri atas <em>block chipper</em> dan <em>stream chipper</em>. Gambar di bawah mempersentasikan jenis kriptograpi berdasarkan key yang</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Dipakai.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">Gambar 2.2 Pembagian Algoritma Kriptograpi Berdasarkan Key</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">2.2.1 Algoritma Asimetrik</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Public Key</em> menggunakan dua key yang berbeda dalam melakukan proses enkripsi dan dekripsi. <em>Public Key</em> yang digunakan untuk melakukan enkripsi dan boleh diketahui umum. Sedangkan <em>Private Key</em> hanya boleh diketahui oleh pihak penerima.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2.2.2 Algoritma Simetrik</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Key</em> yang digunakan pada algoritma ini, antara pengirim dan penerima adalah sama, sedangkan proses yang dilakukan untuk dekripsinya melakukan kebalikan dari proses enkripsi. <span>Kekuatan algoritma simetrik sangat bergantung pada satu key yang digunakan. Jika key dapat dikirimkan secara aman maka kemungkinan mendapatkan </span><span><em>plaintext </em></span><span>dan </span><span><em>chipertext</em></span><span> yang dikirimkan akan semakin kecil. Algoritma Simetrik memiliki dua tipe dasar yaitu </span><span><em>Block Chiper</em></span><span> dan </span><span><em>Stream Chiper</em></span><span>. Dengan menggunakan </span><span><em>block chiper</em></span><span> , </span><span><em>plaintext chiper </em></span><span>yang sama dengan key yang sama akan dienkripsikan ke dalam </span><span><em>Chipertext Block</em></span><span> yang sama. Pada </span><span><em>Stream Chiper</em></span><span> , </span><span><em>Plaintext</em></span><span> atau byte yang sama akan dienkripsikan ke dalam bit yang berbeda setiap enkripsinya</span><sup><span>[3]</span></sup><span>.</span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">1 Stream Cipher</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Stream Chiper</em> melakukan pengkodean 1 bit atau byte dalam satu kali prosesnya <em>Stream Chiper </em>lebih muda diimplementasikan dalam hardware. <span>Hardware bekerja berdasarkan bit-bit yang merupakan satuan terkecilnya dalam melakukan proses perhitungannya.</span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2 Block Chiper</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Block Chiper melakukan pengkodean 1 block dalam sekali proses. Ukuran block ini sendiri dapat ditentukan sesuai keinginan. Namun dalam prakteknya ukuran block yang digunakan memenuhi rumu 2</span><sup><span>n</span></sup><span> dengan n bilangan integer.</span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">3 Perbedaan Stream Cipher dan Block Cipher</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Stream Cipher</em> dan <em>Block Cipher</em> sebenarnya memiliki karakteristik yang sama. <em>Stream Cipher </em>dapat diimplementasikan sebagai  <em>Block Cipher</em> dan sebaliknya. Perbedaan <em>Stream Cipher</em> dan <em>Block Cipher </em>didefinisikan.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">“<em>Block Cipher </em>melakukan prosesnya pada data dengan transformasi yang tentu pada suatu ukuran besar blok  data dari <em>Plaintext</em>, <em>Stream Cipher</em> bekerja berdasarkan pengolahan digit <em>Plaintext</em> tersendiri dengan transformasi yang berbeda-beda setiap waktunya”.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><strong>2</strong></span><span><strong>.3  Kriteria Algoritma Kriptograpi</strong></span><sup><span><strong>[3]</strong></span></sup></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Kriteria standar yang harus dimiliki oleh suatu algoritma kriptograpi menurut </span><span><em>National Bureau Of Standarts</em></span><span> (NBS), sekarang dinamakan </span><span><em>National Institute of Standarts and Tehcnology </em></span><span>(NIST), adalah </span></p>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma harus memiliki tingkat keamanan yang tinggi</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma harus spesifik dan mudah dimengerti</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Tingkat keamanan algoritma harus terletak pada key, bukan dari 	kerahasiaan algoritmanya</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma harus dapat diadaptasi pada aplikasi yang beragam</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma harus ekonomis dalam pengimplementasiannya pada perangkat 	keras.</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Algoritma 	harus efisien dalam penggunaannya</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma harus dapat berlaku secara umum</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma dapat dipisahkan (tidak bergantung)</p>
</li>
</ul>
<p style="margin-left:.25in;margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>2.4  Dasar Matematika</strong></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Banyak teori yang menjadi dasar pembangunan algoritma kriptograpi. Dalam tugas akhir ini akan ditampilkan beberapa teori saja yan berhubungan dengan algoritma Pontifex dalam implementasi dan analisisnya.</p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>2</span><span>.4.1. Teori Informasi</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Mende</span><span>fenisikan jumlah bit terkecil yang diperlukan untuk mempersentasikan informasi. Jika terdapat 7 kemungkinan maka jumlah bit yang diperlukan adalah 3 diperoleh dari pengambilan nilai terkecil yang masih dapat menampang 7 representasi data yaitu 2</span><sup><span>3</span></sup><span> = 8</span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2.4.2  Kompleksitas Algoritma</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Ditentukan dengan kekuatan perhitungan yang diperlukan untuk mengeksekusinya. Perhitungan kompleksitas ditentukan berdasarkan dua variable </span><span><em>T</em></span><span> (</span><span><em>Time</em></span><span>) waktu dan </span><span><em>S</em></span><span> (</span><span><em>Space</em></span><span>) ruang memory yang dibutuhkan. Jika waktu yang diperlukan untuk melakukan proses selalu tetap maka kompleksitasnya dikatakan konstan. Bila waktu berbanding lurus dengan proses dikatakan linear.</span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2.4.3 Teori Bilangan</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Teori bilangan banyak digunakan dalam teknik kriptograpi, teori bilangan yang berhubungan dengan tugas akhir ini, diantaranya :</p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;page-break-before:always;" lang="sv-SE" align="justify"><em><strong>Modulo (Mod)</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Modulo bekerja berdasarkan pada rumus b = c – (a * n)</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Dengan a bilangan yang memodulo, b hasil modulo, c bilangan yang dimodulo dan n merupakan nilai integer. Hasil modulo harus terletak antara 0 hingga  n – 1.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Prima (Prime)</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Bilangan prima adalah nilai yang hanya memiliki dua factor dirinya sendiri dan 1, a dikatakan bilangan prima jika faktornya hanya a dan 1.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><em><strong>Generator</strong></em></span><span><strong> dan </strong></span><span><em><strong>Primitive</strong></em></span></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Jika p adalah bilangan prima dan g kurang dari p maka g adalah generator mod p jika</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>For each b from 1 to p-1, there exist a where g’ = b (mod b)</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Dengan kata lain g primitive terhadap p</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><em><strong>Inverse Modulo Number ( modulo balikan)</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Penulisan inverse bermakna balikan. Jika dalam modulo uang diinginkan adalah harga b, maka dalam inverse modulo yang dicari adalah c. dengan notasi matematika c =(a * n) +b</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Dimana a, b, c dan n sesuai dengan ketentuan pada modulo</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Greatest Common Divisor</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Dua bilangan dikatakan relative prima jika irisan factor pembagi kedua bilangan hanya 1</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Dengan notasi matematika</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><em><strong>Gcd(a, n) = 1</strong></em></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><em><strong>Generator</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Jika pa adalah prima dan g kurang dari p maka g adalah generator mod p bila</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><em><strong>For each b from 1 to p -1, there exist a where g</strong></em><sup><em><strong>a</strong></em></sup><em><strong> = b (mod p)</strong></em></p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Jacobi Symbol (</strong></em><strong>Simbol Jacob</strong><em><strong>i)</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Notasi J(a-n) merupakan bentuk umum dari symbol langrange dari beragam modulo, didefinisikan untuk sembarang bilangan integer a dan bilangan ganjil n.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Metode Jacobi</em> memiliki ketentuan</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>J(a,n)</strong></em> hanya didefinisikan untuk nilai n ganjil</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>J(0,n) 	= 0</strong></em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Jika 	n bilangan prima maka </span><span><em><strong>J(a,n) = 0</strong></em></span><span> bila n membagi a</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Jika 	n bilangan prima maka </span><span><em><strong>J(a,n) = -1</strong></em></span><span> bila a adalah residu quadratic modulo n</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Jika 	n bilangan prima maka </span><span><em><strong>J(a,n)=-1</strong></em></span><span> bila a adalah non residu modulo n</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Jika 	n adalah composite (campuran) maka</p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><em><strong>J(a,n) = J(a,p1)*…*J(a,p</strong></em><sub><em><strong>m</strong></em></sub><em><strong>)</strong></em> factor prima dari <em><strong>n</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Aturan Jacobi</em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>J(1,n)=1</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>J(a*b,c)=J(a,n)*J(b,n)</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><em>J(2,n)=1 	jika (n</em></span><sup><span><em>2</em></span></sup><span><em> -1)/8</em></span><span> adalah genap, selain itu </span><span><em>J(2,n)=-1</em></span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>J(a,n) 	= J(a,mod n),n)</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>J(a,b</em><sub><em>1</em></sub><em>*b</em><sub><em>2</em></sub><em>) 	= J(a,b</em><sub><em>1</em></sub><em>)*J(a,b</em><sub><em>2</em></sub><em>)</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em>Jika 	Ged(a,b)=1</em> dan a,b keduanya bilangan genap</p>
</li>
</ol>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" align="justify"><em>6.a.  J(a,b) = J(b,a) </em>jika<em> (a-1) (b-1)/4 </em>adalah bilangan genap</p>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" align="justify"><em>6.b. J(a,b) = -(b,a) </em>jika <em>(a-1) (b-1)/4 </em>adalah bilangan ganjil</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Prime Number Generator (</strong></em><strong>generator bilangan prima</strong><em><strong>)</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Bilangan prima berperan cukup banyak dalam teknik kriptograpi. Cara yang digunakan untuk mengenerate bilangan prima adalah dengan melakukan</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Generate 	bilangan random</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Periksa 	apakah bilangan tersebut prima</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Masukan bilangan tersebut ke dalam kumpulan bilangan prima</p>
</li>
</ol>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Terdapat beberapa cara yang dapat diterapkan</span><span> untuk membangun bilangan prima, metode dibawah ini memeriksa apakah p bilangan prima.</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Solovary Strassen </strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">pilih 	nilai random, a, kurang dari p</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">jika 	<em>ged(a,p) </em><em> 1</em> maka p bukan prima</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">lakukan 	perhitungan <em>J=a</em><sup><em>(p-1)/2</em></sup><em> mod p</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">lakukan 	perhitungan Jacobi <em>J(a,p)</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">jika 	j<em>J(a,p) </em>maka p mutlak bukan prima</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>jika 	j </span><span><em>= J(a,p) </em></span><span>maka 	kemungkinan p bukan prima &lt; 50 %</span></p>
</li>
</ol>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Lehmann</strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pilih 	nilai random,a kurang dari p</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Lakukan 	perhitungan Jacobi <em>J=a</em><sup><em>(p-1)/2</em></sup><em> mod p</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Jika </span><span><em>J=a</em></span><sup><span><em>(p-1)/2</em></span></sup><span><em> mod p 1=1 atau  -1 (mod p) , </em></span><span>maka p 	mutlak bukan prima</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">jika 	<em>a</em><sup><em>(p-1)/2</em></sup><em>=1 atau -1 (mod p), </em>maka 	kemungkinan p bukan prima &lt; 50%</p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Rabin Miller</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pilih nilai p sebarang, lakukan perhitungan b dengan nilai b adalah nilai jumlah perkalian 2 dibagi (p-1) kemudian hitung nilai m dengan rumus <em><strong>p = 1 + 2 b* m </strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">pilih 	nilai random, a kurang dari p</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>set 	j = 0 set z = a</span><sup><span>m</span></sup><span> mod p</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">jika 	= &#8211; 1 atau jika z = p -1 maka p valid akan kemungkinan prima</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">jika 	j &gt; 0 dan z = 1 maka p bukan prima</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">set 	j = j + 1, jika j &lt; b dan z <em>p -1, set z = z</em><sup><em>2</em></sup><em> mod p </em>dan lakukan proses 4 jika z = p-1, maka p valid 	kemungkinan prima</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>jika 	j=b dan z </span><span><em>p-1 </em></span><span>maka 	p bukan prima</span><span><em> </em></span></p>
</li>
</ol>
<p style="margin-bottom:0;line-height:150%;" align="justify"><em><strong>Metode Praktis</strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Generated n-bit bilangan random p</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">set 	bit high order dan low order bit menjadi 1</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>periksa 	p, dapatkah dibagi oleh bilangan prima kurang dari nilainya. 	Kebanyakan implementasi hanya menggunakan bilangan prima kurang dari 	256. efisiensi dari pemeriksaan bilangan prima dilakukan dengan 	membagi bilangan tersebut dengan bilangan prima &lt;</span><span> 2000</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">lakukan 	proses Rabbin Miller untuk nilai random a. jika p sesuai maka 	generator bilangan random a lainnya dan ulangi lagi test. Pilihlah 	nilai a yang kecil untuk mempercepat proses perhitungan. Proses ini 	dilakukan 5 kali.</p>
</li>
</ol>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>2.5  Manajemen Key</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pengaturan key pada metode simetrik mutlak diperlukan, terdapat beberapa hal yang menjadi acuan dalam melakukan pengaturan key.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2.5.1 <em>Generate Key</em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Kerahasiaan key sangat bergantung pada cara key itu di generate. Generate key yang paling baik adalah key yang sedekat mungkin random. Nilai yang benar-benar random sulit didapat jika mesin yang membuat nilai random tersebut memiliki nilai tertentu. <span>Pseudo random Generator merupakan generator bilangan random yang cukup baik. </span><span>Namun tetap saja memiliki nilai tidak random.</span></p>
<p style="margin-bottom:0;" lang="fi-FI" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>2</span><span>.5.2. Lama Penggunaan Key</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Semakin lama key dipakai atau disimpan maka akan semakin rendah keamanan data yang dienkripsi. Hal terbaik adalah menggunakan key sekali pakai dan tidak menyimpan key pada media penyimpan permanen (misalnya harddisk). Lakukan pergantian key dalam kurun waktu yang tertentu yang optimal. Jika ingin menghilangkan/mengganti key maka lakukan dengan seaman mungkin. </span>Wipe area yang dijadikan tempat penyimpanan key.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>2.6. Pertukaran </strong><em><strong>Key</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pertukaran key merupakan titik yang paling rawan diserang untuk memecahkan algoritma kriptograpi. <span>Terlebih lagi pada algoritma simetik yang sangat mengandalkan pada kerahasian key-nya.</span></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Metode yang digunakan dalam pertukaran key adalah</p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2.6.1. <em>Enrypted Key</em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Metode ini melakukan enkripsi terlebih dahulu sebelum key yang sebenarnya dikirim. Pada kedua sisi pengirim dan penerima harus memiliki key Encypted key yang sama dalam melakukan enkripsi. Kelemahan metode ini terdapat pada key Encypted Key yang digunakan jika seseorang mengetahui Key Encypted Key-nya maka enkripsi sebelum key dikirimkan adalah percuma dan hanya memperlama proses tanpa meningkatkan keamanannya. Segala serangan pada metode ini terfokus pada key encypted key yang digunakan.</p>
<p style="margin-bottom:0;" align="justify">
<p style="line-height:150%;page-break-before:always;" align="justify">2.6.2. Diffie Hellman</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Metode yang cukup cerdik ditemukan oleh Diffie Hellman. Keamanan metode ini berasal dari permasalahan perhitungan algoritma diskrit, dibandingkan dengan melakukan perhitungan exponensial pada domain yang sama.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Aturan matematika yang pakai dalam metode ini cukup sederhana. Pertama-tama, tentukan bilangan prima n dan g dimana g adalah primitive mod n. nilai prima m tidak perlu rahasia . kedua nilai ini haruslah sama pada pengirim dan penerima.</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma pertukaran Key-nya adalah</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Dengan kesepakatan</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><span>A = Pengirim pertama</span></p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">B = Penerima pertama</p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">1. A memilih nilai integer x yang cukup besar dan mengirim</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><span><em><strong>X = g</strong></em></span><sup><span><em><strong>x</strong></em></span></sup><span><em><strong> mod n.</strong></em></span></p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">2. B memilih nilai random y yang cukup besar dan mengirim</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><span><em><strong>Y = g</strong></em></span><sup><span><em><strong>y</strong></em></span></sup><span><em><strong> mod n</strong></em></span></p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">3. A melakukan perhitungan</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><span><em><strong>K = Y</strong></em></span><sup><span><em><strong>x</strong></em></span></sup><span><em><strong> mod n</strong></em></span></p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">4. B melakukan perhitungan</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><em><strong>K’ = X</strong></em><sup><em><strong>y</strong></em></sup><em><strong> mod n</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Keduanyan nilai k dan k’ adalah sama dan bersesuaian dengan nilai g<sup>xy</sup> mod n . seorang yang dapat  melakukan penyadapan informasi yang dikirim hanya akan mengetahui nilai n, g, X dan Y tetapi tidak mengetahui nilai k dan k’, kecuali penyadap dapat menghitung nilai logaritma diskrit.</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Pemilihan k dan g sangat berpengaruh pada tingkat keamanan. Nilai (n-1)/2 haruslah bilangan prima dan nilai n merupakan bilangan yang cukup besar.</p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">2.6.3. Extended Diffie Hellman</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Kelemahan yang dimiliki metode Diffie Hellman adalah kita tidak dapat menentukan key yang akan ditransmisikan, diperlukannya konfirmasi dari penerima untuk membentuk sebuah key. Permasalahan ini diatasi oleh metode Extended Diffie Hellman. Dengan ketentuan seperti Diffie Hellman, algoritma pertukaran key-nya adalah</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">A 	memilih nilai integer x yang cukup besar dan mengirim</p>
</li>
</ol>
<p style="margin-left:1in;margin-bottom:0;line-height:150%;" align="justify"><em><strong>K = g</strong></em><sup><em><strong>x</strong></em></sup><em><strong> mod n.</strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">B 	memilih nilai random y yang cukup besar dan mengirim</p>
</li>
</ol>
<p style="margin-left:1in;margin-bottom:0;line-height:150%;" align="justify"><em><strong>Y = g</strong></em><sup><em><strong>y</strong></em></sup><em><strong> mod n</strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">A 	melakukan perhitungan</p>
</li>
</ol>
<p style="margin-left:1in;margin-bottom:0;line-height:150%;" align="justify"><em><strong>X = Y</strong></em><sup><em><strong>x</strong></em></sup><em><strong> mod n</strong></em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">B 	melakukan perhitungan</p>
</li>
</ol>
<p style="margin-left:1in;margin-bottom:0;line-height:150%;" align="justify">= y<sup>-1</sup></p>
<p style="margin-left:1in;margin-bottom:0;line-height:150%;" align="justify"><em><strong>K’ = X</strong></em><sup><em><strong>x</strong></em></sup><em><strong> mod n</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Algoritma ini akan menghasilkan k dan k’ yang bernilai sama</p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>2.7 Penanganan </strong><em><strong>Error </strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Penanganan error yang paling buruk dari sisi biaya adalah dengan melakukan pengiriman ulang data yang telah dikirimkan. Namun metode ini sangat baik untuk menjamin data yang diterima tidak terdapat error. Kelemahan metode ini selain dari sisi biaya adalah jika saat data dikirimkan ulang oleh penerima dan data mengalami kerusakan dalam pengiriman ulang maka data akan dikirim ulang oleh pengirim pertama. Tentunya hal ini merupakan pemborosan.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>2.8 Metode </strong><em><strong>Parity Check</strong></em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Metode ini didasarkan pada pemberian bit parity pada data, data yang dikirimkan dilakukan pemeriksaan genap atau ganjil. Parity diberikan sebagai penandanya. Kelemahan metode ini jika terdapat error bit dalam bilangan genap maka parity cek tetap akan benar padahal data yang dikirimkan tidak sesuai. Namun demikian metode ini sangat murah dalam implementasinya dan cocok untuk jaringan dengan error rate yang rendah. Metode ini merupakan layanan pada Datalink layer tetapi dapat diadaptasi ke dalam Applicatation Layer</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>ALGORITMA KRIPTOGRAPI PONTIFEX</strong></p>
<p style="margin-left:1in;text-indent:-1in;margin-bottom:0;line-height:150%;" align="center">
<p style="margin-bottom:0;line-height:200%;" align="justify"><strong>3.1  Pengenalan Algoritma Pontifex </strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pengenalan Algoritma Pontifex merupakan Algoritma <em>Stream Chiper OFB</em> <em>(Output FeedBack).</em> Algoritma mendapat keamanan dari permasalahan kartu. Dalam pembuatan key-nya, algoritma ini mengandalkan <em>decking</em> dari 54 kartu. Dengan demikian terdapat 54! Cara kartu tersebut diatur. Algoritma ini tidak seperti algoritma <em>Stream Chiper</em> pada umumnya yang memiliki <em>S-box</em> dan <em>P-box </em>serta <em>key</em> yang dibarengi<em> sub-key. </em>Pontifex memiliki nama lain solitare dan diciptakan oleh Bruce Schneier. Bruce Schneier juga menciptakan algoritma kriptograpi lainnya, dalam <em>Block Chiper</em> yang dinamakan <em>Two Fish</em>. Karena perbedaan dalam perancangannya maka tidak semua bagian dari algoritma ini dapat dibandingkan dengan algoritma <em>Stream Cipher</em> lainnya.  <span>Namun faktor dasar dari kriptograpi selalu dapat dibandingkan dengan semua metode. </span>Faktor tersebut adalah waktu, tingkat keamanan dan biaya. <span>Penganalogian dengan kartu, dalam implementasinya akan dikonversi kedalam nilai bilangan.</span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><strong>3</strong></span><span><strong>.2  Komponen Algoritma Pontifex</strong></span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><strong>3</strong></span><span><strong>.2.1  Komponen Dasar Pontifex</strong></span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Dengan memanfaatkan 54! Macam decking kartu, maka terdapat sekitar 2,3 * 10 </span><sup><span>71</span></sup><span> kemungkinan kartu di – </span><span><em>deck.</em></span><span> Selain mendapatkan kunci dari decking kartu algoritma ini juga dapat memanfaatkan kunci yang dimasukkan dari pengguna walaupun akan sangat membebani pada kenyataannya. </span>Secara garis besar komponen pembentuk algoritma <em>pontifex</em> adalah</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Aturan 	Decking</p>
</li>
</ol>
<ul>
<li>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Aturan 		Decking Pontifex</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Masukan 		dari user</p>
</li>
</ul>
</li>
</ul>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Otak 	Pontifex</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Aturan 	pengambilan <em>Key</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Penggabungan 	dan pemisahan antara </span><span><em>plaintext</em></span><span> dan </span><span><em>chiphertext</em></span></p>
</li>
</ol>
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.2.2  Komponen Pendukung</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Tanpa komponen pendukung yang cukup <em>pontifex</em> bukanlah algoritma yang baik, seperti kebanyakan metode simetris yang mengandalkan pada key maka segala kekuatan <em>pontifex</em> hanyalah pada<em> key</em>. Karenanya harus ada komponen pendukung dalam pertukaran <em>key</em>. Selain faktor tersebut terdapat faktor lain yang mempengaruhi performansi algoritma ini. <span>Komponen berikut adalah komponen yang digunakan sebagai optimasi algoritma pontifex, yaitu : </span></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pertukaran 	Key</p>
</li>
</ol>
<ul>
<li>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pertukaran 		biasa</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Diffie 		Hellman</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Extended 		Diffie Hellman</p>
</li>
</ul>
</li>
</ul>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Aturan pertukaran data dalam TCP/IP</p>
</li>
</ol>
<p style="margin-left:.5in;line-height:150%;" lang="sv-SE" align="justify">Karena pengimplementasiannya menggunakan protocol TCP/IP dengan layanan windows socket.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.3. Proses Algoritma Pontifex</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Aturan Key Generator merupakan pembeda pontifex dengan algoritma lainnya. Aturan generate kunci pada pontifex adalah</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Fase 	persiapan</p>
</li>
</ol>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" align="justify">Lakukan pengacakan kartu menggunakan <em>Pseudo Random Generator</em></p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Fase 	Inti</p>
</li>
</ol>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Tentukan 	Joker A dalam hal ini nilai 53, pindahkan ke belakang 1 kartu 	dibelakang lokasi sekarang jika kartu paling belakang, maka letakkan 	ke belakang kartu terdepan</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Temukan 	Joker B dalam hal ini nilai 54, pindahkan ke belakang 2 kartu jika 	kartu paling belakang maka letakkan ke belakang kartu kedua 	terdepan. Jika kartu terletak satu kartu sebelum belakang maka 	letakkan kartu dibelakang kartu terdepan.</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Lakukan 	Triple Cut</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Dilakukan 	dengan cara memindahkan kartu yang terdapat pada bagian kiri joker 	pertama dan kartu yang terletak pada bagian kanan joker kedua. <span>Jika 	joker keduanya berada pada ujung maka tidak perlu melakukan operasi 	ini.</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Lakukan 	Count Cut</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Periksa 	kartu terakhir, pindahkan mulai dari karti 1 hingga kartu ke (nilai 	kartu terakhir). </span>Letakkan disamping nilai kartu terakhir 	dengan urutan yang sama.</p>
</li>
</ul>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Fase 	Pengambilan Kunci</p>
</li>
</ol>
<ul>
<li>
<ul>
<li>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Temukan kartu yang dijadikan kunci</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="margin-left:1in;margin-bottom:0;line-height:150%;" align="justify"><span>Berdasarkan metode pengambilan kunci dari deck. Default-nya adalah dengan meng</span><span>ambil kartu di kanan kartu pertama dengan jarak nilai kartu pertama tersebut. Dapat dimodifokasi dengan memasukkan kunci dari pemakai.</span></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Ketiga fase ini dilakukan sebanyak stream karakter yang diterima dengan deck pada fase persiapan merupakan keluaran dari fase sebelumnya.</p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.3.1. Fase Persiapan</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Fase ini merupakan tahap pengacakan kartu yang bertujuan menentukan nilai deck awal yang akan digunakan dalam melakukan <em>Generate Key. </em>Deck yang dihasilkan haruslah memiliki kesepakatan antara pengirim dan penerima. Cara yang dilakukan dalam melakukan <em>decking </em>adalah</p>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Nilai 	kartu diurutkan dari 1 hingga 54 kemudian diberikan kesepakatan 	dalam peletakan joker A dan joker B.</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Melakukan 	randomisasi kartu dengan menggunakan </span><span><em>Pseudo 	Random Generator</em></span></p>
</li>
</ul>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.3.2. Fase Inti</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Pada bagian ini akan dijelaskan secara mendetail proses yang dilakukan dalam algoritma </span><span><em>Pontifex</em></span><span>. Untuk memudahkan penjelasan maka akan diberikan kasus secara langsung yang berhubungan dengan aturan umum maupun khusus pada algoritma ini.</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">Misalkan kartu yang dideck adalah kartu terurut, setelah dikonversi menjadi nilai</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54 (……0)</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Selanjutnya dalam pembahasan algoritma pontifex akan merujuk kepada nilai bilangannya, bukan nama kartunya (hanya untuk memudahkan)</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Temukan Joker A, kartu yang bernilai 53</p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Posisi kartu sebelum dilakukan proses 1</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><span style="text-decoration:underline;"><strong>53</strong></span></span><span>,54 (……0)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu ditemukan dengan posisi 53, kemudian dilakukan perpindahan kartu ke bawah contoh ini dipindahkan ke sebelah kanan</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Nilai kartu setelah dilakukan proses 1 adalah</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,<strong>54</strong>,<span style="text-decoration:underline;"><strong>53 </strong></span>(……1)</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Temukan Joker B, kartu yang bernilai 54</p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Posisi kartu sebelum dilakukan proses 2</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>54</strong></span><span>,</span><span><span style="text-decoration:underline;"><strong>53 </strong></span></span><span>(……1)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu ditemukan dengan posisi 53, kemudian dilakukan perpindahan kartu ke bawah 2 tempat dari posisi awal pada contoh ini pindahkan kesebelah kanan 2 posisi.</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Nilai kartu setelah dilakukan proses 1 adalah</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>1,</span><span><strong>54</strong></span><span>,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,(…2)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>Pada kondisi di atas letak kartu tidak lagi paling bawah tetapi pada posisi di bawah kartu pertama. </span>Kondisi ini merupakan kasus khusus, logikanya menggunakan perputaran dengan menganggap kartu lanjutan setelah kartu terakhir adalah kartu teratas.</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Lakukan 	<em>Triple Cut</em></p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">Aturan dalam melakukan <em>Triple Cut</em> adalah dengan menukar kartu sebelah kiri joker terdepan ke sebelah kanan kartu joker kedua.</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">Untuk lebih jelasnya akan diberikan contoh kasus yang berbeda penanganannya</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kasus 3.1 Kasus Umum</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu sebelum dilakukan proses 3</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><span style="text-decoration:underline;">1,2,3,4,5,6,7,8,9,10,11,12,</span></span><span><strong>54</strong></span><span>,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,</span><span><strong>53</strong></span><span>,</span><span><span style="text-decoration:underline;">42,43,44,45,46,47,48,49,50,51,52</span></span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu setelah dilakukan proses 3</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><span style="text-decoration:underline;">42,43,44,45,46,47,48,49,50,51,52,</span></span><span><strong>54</strong></span><span>,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,</span><span><strong>53,</strong></span><span><span style="text-decoration:underline;"> 1,2,3,4,5,6,7,8,9,10,11,12</span></span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kasus 3.2 salah satu kartu joker terletak di ujung (sebelah kiri atau kanan)</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu sebelum dilakukan proses 3</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>1,</span><span><strong>54</strong></span><span>,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,(…2)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu setelah dilakukan proses 3</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><strong>54</strong></span><span>,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,</span><span><span style="text-decoration:underline;">1</span></span><span>(…3)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kasus 3.3 kedua kartu joker terletak di ujung</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu sebelum dilakukan proses 3</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><strong>54</strong></span><span>,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu setelah dilakukan 3</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><strong>54</strong>,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,<strong>53</strong></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">terlihat pada kasus 3.3 tidak ada perubahan kartu karena tidak terdapat kartu disebelah kiri joker terdepan maupun kartu disebelah kanan joker kedua.</p>
<ol>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Lakukan 	Count Cut</p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Pada proses ini dilakukan optimasi terdapat dua cara yang digunakan</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>Cara 1 Menggunakan proses standar dari </span><span><em>Pontifex</em></span></p>
<p style="margin-left:.75in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Periksa kartu terakhir, pindahkan mulai dari kartu 1 hingga kartu ke (nilai kartu terakhir). Letakkan disamping nilai kartu terakhir dengan urutan yang sama</p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Cara 2 Menggunakan Key dari pengguna</p>
<p style="margin-left:.75in;margin-bottom:0;line-height:150%;" align="justify"><span>Jika perpindahan k</span><span>artu pada proses </span><span><em>Pontifex </em></span><span>berdasarkan kartu terakhir maka pada cara kedua dilakukan dengan melihat nilai key yang dimasukan pengguna. </span>Misalkan pengguna memasukkan key “FOO” maka pada perulangan pertama menggunakan karakter F yang bernilai 6. jadi melakukan perpindahan 6 kartu terdepan ke dekat kartu terakhir.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Menggunakan cara 1. aturan standar dari P</span><span><em>ontifex</em></span><span> </span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span> </span><span>Kasus 4.1 kartu terakhir adalah kartu bernilai 53 atau 54</span></p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu sebelum dilakukan proses 4</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><strong>54</strong></span><span>,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,</span><span><span style="text-decoration:underline;">1</span></span><span>(…3)</span></p>
<p style="margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu setelah dilakukan proses 4</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,</span><span><span style="text-decoration:underline;">54</span></span><span>,</span><span><span style="text-decoration:underline;">1</span></span><span>(…4)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kasus 4.2 kartu terakhir adalah kartu bernilai 53 atau 54</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu sebelum dilakukan proses 4</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><strong>54</strong></span><span>,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu setelah dilakukan proses 4</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><strong>54</strong></span><span>,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Karena kartu terakhir 53 atau 54 maka tidak ada perubahan posisi</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Menggunakan cara 2. key masukan dari pengguna</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu sebelum dilakukan proses 4</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span><strong>54</strong></span><span>,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,</span><span><span style="text-decoration:underline;">1</span></span><span>(…3)</span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="fi-FI" align="justify">Kartu setelah dilakukan proses 4</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify"><span>7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53, </strong></span><span><span style="text-decoration:underline;"><strong>54</strong></span></span><span><span style="text-decoration:underline;">,2,3,4,5,6,1</span></span><span> (…3)</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><strong>3</strong></span><span><strong>.3.3 </strong></span><strong>Fase Pengambilan Key</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pada fase ini nilai kartu yang diambil dijadikan masukan untuk membentuk <em>Strean key</em>. Dalam pengambilan <em>key</em> akan dibagi menjadi beberapa cara yang merupakan parameter untuk melakukan optimasi algoritma P<em>ontifex</em>.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Decking kartu yang dijadikan acuan pengambilan </span><span><em>key</em></span></p>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" align="justify"><span>2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,</span><span><strong>53</strong></span><span>,</span><span><strong>54</strong></span><span><span style="text-decoration:underline;">,1</span></span><span>(…4)</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Cara 1. Pengambilan </span><span><em>key </em></span><span>sesuai ketentuan dasar algoritma </span><span><em>Pontifex</em></span></p>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Kartu terkiri adalah 2 sehingga kartu yang diambil menjadi key adalah nilai 4 didapat dengan mencari kartu dengan lokasi 2 ke kanan dari posisi terkiri (kartu bernilai 4).</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Cara 2. Pengambilan K</span><span><em>ey </em></span><span>berdasarkan masukan dari prngguna</span></p>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" align="justify">Melanjutkan dari proses 4 dengan cara <em>key</em> masukan dari user maka <em>key</em> diambil dengan melakukan perhitungan posisi ke kanan sebanyak nilai <em>key</em> yang bersesuaian. Pada contoh di atas digunakan key “FOO” yang berarti perulangan pertama menggunakan karakter F dengan nilai 6. jadi nilai <em>key</em> yang diambil pada proses ini adalah 8 berdasarkan deck (kartu bernilai 6).</p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><strong>3</strong></span><span><strong>.3.4 Pemisahan Antara Plaintex dan Key</strong></span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span><strong> </strong></span><span><em>Plaintext</em></span><span> dan </span><span><em>key</em></span><span> dipisahkan dengan melakukan proses balikan dari proses penggabungan.</span></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Proses yang terlibat dalam pemisahan <em>Plaintext</em> dengan <em>Key</em></p>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify"><span>Konversi </span><span><em>Ciphertext </em></span><span>ke 	dalam nilai bilangan</span></p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Konversi 	key ke nilai bilangan</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Kurangkan 	ke nilai bilangan keduanya</p>
</li>
</ul>
<p style="margin-bottom:0;line-height:150%;" align="justify">Jika di dapat nilai bilangan negative maka tambahkan nilai 26 atau kelipatannya hingga didapatkan nilai positif  kemudian lakukan konversi ke karakter</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Proses yang terjadi di definisikan</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Tahap 1</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Bil_Plaintext =</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Konversi_ke_bilangan (Chipertext) – Konversi_ke_bilangan (Key) + (26 * n)</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Tahap 2</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Plaintext = Konversi_ke_bilangan (Bil_Plaintext)</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">Dengan n = bilangan integer</p>
<p style="margin-bottom:0;" align="justify"><span> </span><span>Dalam kasus ini nilai n adalah 0,1,2</span></p>
<p style="margin-bottom:0;" lang="fi-FI" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.4. Komponen Pendukung</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pemilihan Diffie Hellman dalam pertukaran key dikarenakan metode ini mudah dimengerti tetapi cukup tangguh dalam mengamankan pertukaran data. Jadi tidak kehilangan tujuan dasarnya mengamankan data. Sebagai bahan perbandingan akan dikirimkan key tanpa tanpa menggunakan algoritma pertukaran key. Walaupun akan lebih cepat sebab prosesnya sedikit tetapi sangat tidak aman karena seorang penyadap dapat langsung mengetahui kunci yang kita gunakan.</p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.4.1 Pertukaran Key</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Pertukaran key yang digunakan adalah menggunakan 3 cara dan merupakan parameter yang menjadi masukan dalam proses implementasi kriptograpi</p>
<p style="margin-left:.63in;text-indent:-.63in;margin-bottom:0;line-height:150%;" align="justify">Cara	1.	<em>Key</em> hanya dikirimkan dengan melakukan pengkapsulan dan pengenkapsulsian saja tanpa disandikan . key haruslah dikirim dengan channel yang benar-benar aman. Satu-satunya proteksi pada pengiriman ini adalah dalam keamanan channel. Jika channel disadap maka keseluruhan kunci dapat diketahui.</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Cara 2.  	<em>Ke y </em>dikirimkan dengan menggunakan cara <em>Deffie Hellman</em></p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Cara 3.  	<span><em>Ke y </em></span><span>dikirimkan dengan menggunakan cara</span><span><em> Extended Deffie Hellman</em></span><span> </span></p>
<p style="margin-bottom:0;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>3.4.2 Alur Pertukaran Data</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong> </strong>Data yang dipertukarkan selain data murni terdapat juga data redudasi yang berfungsi membantu pengiriman data. Data yang perlu dikirimkan sebagai pendukung data terkirim dengan baik adalah</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">Header Paket</p>
<p style="margin-left:.5in;margin-bottom:0;line-height:150%;" align="justify">Header ini berupa  IP Address, Port asal dan tujuan. Dalam implementasinya terdapat juga header untuk cek error transmisi</p>
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify">Header Data</p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" align="justify">Header data diberikan pada setiap jenis data yang dikirimkan header data terdiri dari :</p>
<ul>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Penanda 	awal jenis data dikirim</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Penanda 	akhir jenis data dikirim</p>
</li>
<li>
<p style="margin-bottom:0;line-height:150%;" align="justify">Panjang 	data</p>
</li>
</ul>
<p style="margin-bottom:0;line-height:150%;" align="justify">Semua data yang dikirimkan harus memenuhi aturan tersebut agar dijamin keakuratan pengirimannya.</p>
<p style="margin-bottom:0;line-height:150%;" align="center"><strong>PENUTUP</strong></p>
<p style="margin-bottom:0;line-height:150%;" align="center">
<p style="margin-bottom:0;line-height:150%;" align="justify"><strong>4.1  Kesimpulan</strong></p>
<p style="margin-bottom:0;" align="center">
<ol>
<li>
<ol>
<li>
<p style="margin-bottom:0;line-height:200%;" align="justify">Algoritma 		kriptograpi pontifex memiliki pembeda dengan algoritma kriptograpi 		yang lain, yaitu aturan key generator.</p>
</li>
<li>
<p style="margin-bottom:0;line-height:200%;" align="justify">Kekuatan 		Algoritma <em>pontifex</em> relatif sama dengan metode simetris pada 		umumnya yaitu terletak pada<em> key.</em></p>
</li>
<li>
<p style="margin-bottom:0;line-height:200%;" align="justify">Terdapat empat fase utama pada algoritma kriptograpi pontifex yaitu 		fase persiapan, fase inti, fase pengambilan <em>key</em> dan fase 		pemisahan <em>plaintex</em> dengan <em>key.</em></p>
</li>
</ol>
</li>
</ol>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;line-height:200%;page-break-before:always;" lang="sv-SE" align="justify">DAFTAR PUSTAKA</p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="center">
<ol>
<li>
<p style="margin-bottom:0;" align="justify"><span>Budi 	Rahardjo</span><span> (2005), “</span><span><em>Keamanan 	Sistem Informasi Berbasis Internet</em></span><span>”, </span><span>PT Insan Infonesia &#8211; Bandung &amp; PT 	INDOCISC – Jakarta.</span></p>
</li>
</ol>
<p style="margin-left:.13in;margin-bottom:0;" lang="sv-SE" align="justify">
<ol>
<li>
<p style="margin-bottom:0;" align="justify">Stallings, William 	(1995), “<em>Network and Internetwork Security</em>”, Prentice 	Hall.</p>
</li>
</ol>
<p style="margin-bottom:0;" lang="en" align="justify">
<ol>
<li>
<p style="margin-bottom:0;" align="justify"><span>Schneier</span><span>, 	Bruce (1996), “</span><span style="color:#0000ff;"><span style="text-decoration:underline;"><a href="http://en.wikipedia.org/w/index.php?title=Applied_Cryptography&amp;action=edit"><span><em>Applied 	Cryptography</em></span></a></span></span><span>”</span><span>, 	Second Edition, John Wiley &amp; Sons.</span></p>
</li>
</ol>
<p style="margin-left:.5in;text-indent:-.38in;margin-bottom:0;" lang="en" align="justify">
<ol>
<li>
<p style="margin-bottom:0;" align="justify">Tanemboum, Andrea S 	(1996), ”<em>Computer Network</em>”, Prentice Hall.</p>
</li>
</ol>
<p style="margin-left:.5in;text-indent:-.38in;margin-bottom:0;" align="justify">
<ol>
<li>
<p style="margin-bottom:0;" align="justify">Whitfield Diffie, 	and Martin E. Hellman, “<em>New Directions in Cryptography</em>,” 	IEEE Transactions on Information Theory, IT-22, 6, 1976, pp.644-654.</p>
</li>
</ol>
<p style="margin-left:.5in;text-indent:-.38in;margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;"><span style="font-size:x-small;">.</span></p>
<p style="margin-left:.13in;margin-bottom:0;" align="justify">
<p style="margin-left:.5in;text-indent:-.38in;margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" lang="sv-SE">
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=27&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/kriptografi-now-not-the-past/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>ALGORITMA TEA (Tiny Encryption Algorithm)</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/algoritma-tea-tiny-encryption-algorithm/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/algoritma-tea-tiny-encryption-algorithm/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:51:06 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Block Cipher]]></category>
		<category><![CDATA[Kriptografi]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=28</guid>
		<description><![CDATA[
DESKRIPSI ALGORITMA TEA

Tiny Encription Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Loboratory, Cambridge Univercity, England pada bulan November 1994. Algoritma ini merupakan algoritma penyandian block cipher yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal.
Berikut ini diberikan source code TEA dalam bahasa [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=28&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="center"><span style="font-family:Book Antiqua,serif;"><strong>DESKRIPSI ALGORITMA TEA</strong></span></p>
<p style="margin-left:.25in;margin-bottom:0;line-height:150%;" lang="sv-SE">
<p style="text-indent:.5in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-size:x-small;"><span>Tiny Encription Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh </span></span><span style="font-size:x-small;"><span>David Wheeler dan Roger Needham dari Computer Loboratory, Cambridge Univercity, England pada bulan November 1994. Algoritma ini merupakan algoritma penyandian block cipher yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal.</span></span></p>
<p style="text-indent:.5in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-size:x-small;"><span>Berikut ini diberikan source cod</span></span><span style="font-size:x-small;"><span>e TEA dalam bahasa C, dengan k[0]-k[3]. Dan data dalam v[0] dan v[1]</span></span></p>
<p style="margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify">
<p style="margin-bottom:0;line-height:150%;" align="justify"><span style="font-size:x-small;"><span style="text-decoration:underline;"><strong>Encode Routine</strong></span></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>void encrypt(unsigned long* v, unsigned long* k) {</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>unsigned long v0=v[0], v1=v[1], sum=0, i; </strong><em><strong>/* set up */</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>unsigned long delta=0&#215;9e3779b9; </strong><em><strong>/* a key schedule constant */</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3]; </strong><em><strong>/* cache key*/</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>for (i=0; i &lt; 32; i++) { </strong><em><strong>/* basic cycle start */</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>sum += delta;</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>v0 += (v1&lt;&lt;4)+k0 ^ v1+sum ^ (v1&gt;&gt;5)+k1;</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>v1 += (v0&lt;&lt;4)+k2 ^ v0+sum ^ (v0&gt;&gt;5)+k3; </strong><em><strong>/* end cycle*/</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>}</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>v[0]=v0; v[1]=v1;</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>}</strong></span></p>
<p style="margin-bottom:0;">
<p><span style="font-size:x-small;"><span style="text-decoration:underline;"><strong>Decode Routine</strong></span></span><span style="text-decoration:underline;"><strong> </strong></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>void decrypt(unsigned long* v, unsigned long* k) {</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>unsigned long v0=v[0], v1=v[1], sum=0xC6EF3720, i; </strong><em><strong>/* set up */</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>unsigned long delta=0&#215;9e3779b9; </strong><em><strong>/* a key schedule constant */</strong></em></span></p>
<p style="margin-bottom:0;"><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-bottom:0;"><strong>unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3]; </strong><em><strong>/* cache key */</strong></em></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><strong>for(i=0; i&lt;32; i++) { </strong><em><strong>/* basic cycle start */</strong></em></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><span><strong>v1 -= (v0 &lt;&lt; 4)+k2 ^ v0+sum ^ (v0 &gt;&gt; 5)+k3;</strong></span></span></p>
<p style="margin-bottom:0;" lang="de-DE"><span style="font-size:x-small;"><strong>v0 -= (v1 &lt;&lt; 4)+k0 ^ v1+sum ^ (v1 &gt;&gt; 5)+k1;</strong></span></p>
<p style="margin-bottom:0;"><span style="font-size:x-small;"><span><strong>sum -= delta; </strong></span><span><em><strong>/* end cycle */</strong></em></span></span></p>
<p style="margin-bottom:0;" lang="de-DE"><span style="font-size:x-small;"><strong>}</strong></span></p>
<p style="margin-bottom:0;" lang="de-DE"><span style="font-size:x-small;"><strong>v[0]=v0; v[1]=v1;</strong></span></p>
<p style="margin-bottom:0;" lang="de-DE"><span style="font-size:x-small;"><strong>}</strong></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-size:x-small;">System penyandian TEA menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksudkan untuk  menciptakan sifat non linearitas. Pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara berulang ulang.</span></p>
<p style="text-indent:.5in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-size:x-small;"><span>TEA memproses 64 bit input sekali waktu  dan menghasilkan 64 bit output. TEA menyimpan 64 bit input kedalam L</span></span><sub><span style="font-size:x-small;"><span>0</span></span></sub><span style="font-size:x-small;"><span> dan R</span></span><sub><span style="font-size:x-small;"><span>0</span></span></sub><span style="font-size:x-small;"><span> masing masing 32 bit. Sedangkan 128 bit kunci disimpan kedalam k[0], k[1], k[2], dan k[3] yang masing masing berisi 32 bit. Diharapkan teknik ini cukup dapat mencegah penggunaan teknik exshautive search secara efektif. Hasil outputnya akan disimpan dalam L</span></span><sub><span style="font-size:x-small;"><span>16 </span></span></sub><span style="font-size:x-small;"><span>dan R</span></span><sub><span style="font-size:x-small;"><span>16. </span></span></sub></p>
<p style="text-indent:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-size:x-small;"><span>Bilangan delta berasal dari golden number, digunakan delta=(√5 -1)2</span></span><sup><span style="font-size:x-small;"><span>31</span></span></sup><span style="font-size:x-small;"><span>. Suatu ilangan delta ganda yang berbeda digunakan dalam setiap roundnya sehingga tidak ada bit dari perkalian yang tidak berubah secara teratur. Berbeda dengan sruktur feistel yang semula hanya mengoperasikan satu sisi yaitu sisi sebelah kanan dengan sebuah fungsi F, pada algoritma TEA kedua sisi dioperasikan dengan sebuah fungsi yang sama. </span></span></p>
<p style="text-indent:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">Proses diawali dengan input bit teks terang sebanyak 64 bit. Kemudian 64 bit teks terang tersebut dibagi, yaitu dua. Sisi kiri (L</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;">) sebanyak 32 bit dan sisi kanan (R</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;">) sebanyak 32 bit. Setiap bagian teks terang akan dioperasikan sendiri-sendiri. R</span><sub><span style="font-family:Book Antiqua,serif;">0 </span></sub><span style="font-family:Book Antiqua,serif;">(z) akan digeser kekiri sebanyak empat (4) kali dan ditambahkan dengan kunci k[0]. Sementara itu z ditambah dengan sum (delta) yang merupakan konstanta. Hasil penambahan ini di XOR kan dengan penambahan sebelumnya. Kemudian di XOR kan dengan hasil penambahan antara Z yang digeser kekenan sebanyak lima (5) kali dengan kunci k[1]. Hasil tersebut kemudian ditambahkan dengan L</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> (y) yang akan menjadi R</span><sub><span style="font-family:Book Antiqua,serif;">1</span></sub><span style="font-family:Book Antiqua,serif;">.</span></p>
<p style="margin-top:.17in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><span style="font-family:Book Antiqua,serif;">Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan. L</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> (y) akan digeser kekiri sebanyak empat (4) kali lalu ditambahkan dengan kunci k[2]. Sementara itu , Y ditambah dengan sum (delta). Hasil penambahan ini di XOR kan dengan penambahan sebelumnya. Kemudian di XOR kan dengan hasil penambahan antara Y yang digeser ke kanan sebanyak lima (5) kali dengan unci k[3]. Hasil tersebut kemudian ditambahkan dengan R</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> (Z) yang akan menjadi L</span><sub><span style="font-family:Book Antiqua,serif;">1</span></sub><span style="font-family:Book Antiqua,serif;">.<br />
<strong></strong></span>
</p>
<p style="margin-top:.17in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><span style="font-family:Book Antiqua,serif;"><strong>pergeseran (shift)</strong></span></p>
<ol></ol>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><span style="font-family:Book Antiqua,serif;">Blok teks terang pada kedua sisi yang masing masing sebanyak 32 bit akan digeser kekiri sebanyak empat (4) kali dan digeser ke kanan sebanyak lima (5) kali.</span></p>
<p><span style="font-family:Book Antiqua,serif;"><strong>Penambahan</strong></span></p>
<ol></ol>
<p style="margin-top:.17in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><span style="font-family:Book Antiqua,serif;"> Setelah digeser kekiri stsu kekanan, maka Y dan Z yang sedah digeser akan ditambahkan dengan         kunci k[0]-k[3]. Sedangkan  Y dan Z awal akan ditambahkan dengan sum (delta).<br />
<strong></strong></span>
</p>
<p style="margin-top:.17in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><span style="font-family:Book Antiqua,serif;"><strong>peng-XOR-an</strong></span></p>
<ol></ol>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" lang="sv-SE" align="justify"><span style="font-family:Book Antiqua,serif;">Setelah dioperasikan dengan penambahan pada masingmasing register maka akan dilakukan peng XOR an dengan rumus untuk satu round adalah sebagai berikut :</span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" lang="es-ES" align="justify"><span style="font-family:Book Antiqua,serif;">y = y + (((z&lt;&lt;4)+k[0])^z+sum^((z&gt;&gt;5)+k[1]))</span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" lang="es-ES" align="justify"><span style="font-family:Book Antiqua,serif;">z = z + (((y&lt;&lt;4)+k[2]^y+sum^((y&gt;&gt;5)+k[3]))</span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" lang="es-ES" align="justify"><span style="font-family:Book Antiqua,serif;">dalam hal ini sum=sum+delta.</span></p>
<p style="margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;"><span>Hasil penyandian dalam satu cycle satu blok teks terang 64 bit menjadi 64 bit teks sandi adalah dengan menggabungkan y dan z. Untuk penyandian pada cycle berikutnya y dan z ditukar posisinya, sehingga y</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>1</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> menjadi z</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>1</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> dan z</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>1</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> menjadi y</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>1</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> terus dilanjutkan proses seperti langkah-langkah diatas sampai dengan 16 cycle (32 round).</span></span></p>
<ol>
<li>
<p style="margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;"><strong>Key Schedule</strong></span></p>
</li>
</ol>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">Pada algoritma TEA, key schedulenya sangat sederhana. Yaitu kunci k[0] dan k[1] konstan digunakan ntuk round ganjil sedangkan kunci k[2] dan k[3] konstan digunakan untuk round genap.</span></p>
<p style="margin-left:.25in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;"><strong>5.	Dekripsi</strong></span></p>
<p style="margin-left:.25in;text-indent:.25in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">Dalam proses delripsi dama halnya seperti dapa proses penyandian yang berbasis feistel cipher lainnya. Yaitu  pada prinsipnya adalah sama pada saat proses enkripsi. Namun hal yang berbeda adah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Pada proses dekripsi semua round ganjil menggunakan k[1] terlebih dahulu kemudian k[0], demikian juga dengan semua round genap digunakan k[3] terlebih dahulu kemudian k[2].</span></p>
<p style="margin-left:.25in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">Pada rumus enkripsi diketahui :</span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">L</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> = L</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> + f ( R</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> , k[0], k[1], sum )</span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">R</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> = R</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;"> + f ( L</span><sub><span style="font-family:Book Antiqua,serif;">0</span></sub><span style="font-family:Book Antiqua,serif;">, k[2], k[3], sum )</span></p>
<p style="margin-left:.25in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;">Sehingga untuk proses dekripsi digunakan rumus :</span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;"><span>L</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>0</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> = L</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>0</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> + f ( R</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>0</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> , k[1], k[0], sum )</span></span></p>
<p style="margin-left:.5in;margin-top:.17in;margin-bottom:0;line-height:150%;" align="justify"><span style="font-family:Book Antiqua,serif;"><span>R</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>0</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> = R</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>0</span></span></sub><span style="font-family:Book Antiqua,serif;"><span> + f ( L</span></span><sub><span style="font-family:Book Antiqua,serif;"><span>0</span></span></sub><span style="font-family:Book Antiqua,serif;"><span>, k[3], k[2], sum )</span></span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=28&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/algoritma-tea-tiny-encryption-algorithm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>Kriptogarfi Modern</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/kriptogarfi-modern/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/kriptogarfi-modern/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:50:24 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Kriptografi]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=26</guid>
		<description><![CDATA[Cipher

System kriptografi simetrik terbagi lagi menjadi dua, diantaranya stream cipher dan blok cipher…
Bedanya???
Pada blok cipher teks terang dibagi menjadi blok – blok dengan panjang tertentu dan ditransformasikan menjadi blok teks sandi dengan panjang yang sama dan dengan mempergunakan kunci yang telah disepakati.
Sedangkan yang namanya stream cipher yaitu dilakukan bit per bit atau karakter per karakter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=26&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2><a title="Stream Cipher" rel="bookmark" href="http://4mie.wordpress.com/2007/11/25/stream-cipher/">Cipher</a></h2>
<div class="snap_preview">
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">System kriptografi simetrik terbagi lagi menjadi dua, diantaranya stream cipher dan blok cipher…</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"><span style="color:#003300;"><strong>Bedanya???</strong></span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Pada blok cipher teks terang dibagi menjadi blok – blok dengan panjang tertentu dan ditransformasikan menjadi blok teks sandi dengan panjang yang sama dan dengan mempergunakan kunci yang telah disepakati.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Sedangkan yang namanya stream cipher yaitu dilakukan bit per bit atau karakter per karakter per satuan waktu. Kunci yang digunakan dihasilkan oleh pembangkit rangkaian kunci ( key Stream Generator ). Contoh sream cipher diantaranya ; OTP, RC-4, A5/1 yang digunakan pada handphone dll.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Di bawah ini kita bisa lihat struktur dari stream cipher…</span></p>
<p class="MsoNormal" style="text-align:justify;"><a title="stream.jpg" href="http://4mie.files.wordpress.com/2007/11/stream.jpg"><img src="http://4mie.files.wordpress.com/2007/11/stream.jpg?w=444&amp;h=157&#038;h=157" alt="stream.jpg" width="444" height="157" /></a></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">kita bisa lihat dari struktur di atas,sebuah kunci adalah inputan untuk pembangkit rangkaian kunci yang akan menghasilkan sebuah stream number sebanyak 8 bit yang acak. Output dari pembangkit disebut <em>key stream</em>, yang dikombinasikan bit per bit per satuan waktu,<em> plainteks</em> pada stream dengan menggunakan operasi <em>exclusive</em>-OR (XOR). Sebagai contoh, 01101100 sebagai byte yang dibangkitkan oleh pembangkit dan 11001100 adalah plainteks selanjutnya, maka hasil cipherteksnya adalah :</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"><span> </span>1001100<span> </span>plainteks</span></p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;   &amp;lt;![endif]--><!--[if !vml]--><span style="position:absolute;z-index:2;left:0;margin-left:-1px;margin-top:3px;width:14px;height:14px;"><img src="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif" alt="" width="14" height="14" /></span><!--[endif]--><!--[if gte vml 1]&amp;gt;&amp;lt;![endif]--><!--[if !vml]--><span style="position:absolute;z-index:1;left:0;margin-left:-1px;margin-top:15px;width:74px;height:2px;"><img src="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif" alt="" width="74" height="2" /></span><!--[endif]--><span style="font-size:10pt;font-family:'Courier New';"><span> </span>1101100<span> </span>keystream</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"><span> </span><span> </span>0100000<span> </span>cipherteks</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">kita ketahui bahwa operasi dari XOR adalah jika inputannya sama maka outputnya bernilai 0.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Dan dalam pendeskripsiannya stream cipher juga menggunakan rangkaian kunci yang sama,</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"><span> </span>0100000<span> </span>cipherteks</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"><span> </span></span><span style="position:relative;z-index:2;"><span style="position:absolute;left:-1px;top:-12px;width:14px;height:14px;"><img src="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif" alt="" width="14" height="14" /></span></span><span style="font-size:10pt;font-family:'Courier New';"><span> </span>1101100<span> </span>key stream</span></p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;&amp;lt;![endif]--><!--[if !vml]--><span style="position:absolute;z-index:1;left:0;margin-left:-1px;margin-top:2px;width:74px;height:2px;"><img src="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif" alt="" width="74" height="2" /></span><!--[endif]--><!--[if gte vml 1]&amp;gt;   &amp;lt;![endif]--><!--[if !vml]--><span style="position:relative;z-index:2;"></span><!--[endif]--><span style="position:relative;z-index:2;"></span><span style="position:relative;z-index:2;"></span><span style="font-size:10pt;font-family:'Courier New';"><span> </span></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"><span> </span>1001100<span> </span>plainteks</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">dalam menggunakan stream, ada hal &#8211; hal yang harus diperhatikan, diantaranya….</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">penyandian harus mempunyai periode yang besar, sebuah rangkaian kunci pembangkit menggunakan sebuah fungsi yang menghasilkan bit stream yang akan diulang kembali. Penggunaan periode yang panjang akan sangat sulit dilakukan oleh seorang kriptanalis,, berarti sulit dibuka kan?</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Nah.. pada dasarnya perhatian yang sama ini juga ada pada sistem Vigenere , kripanalisis akan sangat sulit dilakukan pada penggunaan kunci yang panjang… yang kedua, kunci yang digunakan dari bilangan random tertutup sebisa mungkin. Contohnya, diperkirakan menggunakan bilangan antara 0 dan 1, jika <em>keys stream</em> digunakan sebagai satu<span> </span>byte pada stream, maka ada 256 byte <span> </span>yang mungkin sering muncul. Kriptanalisis akan kesulitan dengan penggunaan<em> key stream</em> yang acak. Dan satu lagi adalah output dari pembangkit rangkaian kunci dikondisikan menjadi kunci input.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Dengan pembangkit rangkaian kunci, stream cipher dapat seaman blok cipher jika dilihat dari perbandingan<span> </span>kunci yang panjang. pada dasarnya, keuntungan stream cipher yaitu stream cipher lebih cepat dan penggunaan code jauh lebih sedikit dari pada blok cipher. Contohnya pada RC-4, yang dapat diimplementasikan hanya dengan code yang sedikit.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;font-family:'Courier New';">Di bawah ini kita bisa melihat perbandingan kecepatan dari penyandian simetrik pada pentium II.</span></p>
<p class="MsoNormal" style="text-align:justify;"><a title="tabel.jpg" href="http://4mie.files.wordpress.com/2007/11/tabel.jpg"><img src="http://4mie.files.wordpress.com/2007/11/tabel.jpg?w=331&amp;h=89&#038;h=89" alt="tabel.jpg" width="331" height="89" /></a></p>
</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=26&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/kriptogarfi-modern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>

		<media:content url="http://4mie.files.wordpress.com/2007/11/stream.jpg?w=444&#38;h=157" medium="image">
			<media:title type="html">stream.jpg</media:title>
		</media:content>

		<media:content url="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif" medium="image" />

		<media:content url="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif" medium="image" />

		<media:content url="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif" medium="image" />

		<media:content url="http://c/DOCUME%7E1/User/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif" medium="image" />

		<media:content url="http://4mie.files.wordpress.com/2007/11/tabel.jpg?w=331&#38;h=89" medium="image">
			<media:title type="html">tabel.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Matematika Diskrit (Pendahuluan)</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/matematika-diskrit-pendahuluan/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/matematika-diskrit-pendahuluan/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:49:14 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Ilmu Pendukung Kriptografi]]></category>
		<category><![CDATA[Matematika]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=25</guid>
		<description><![CDATA[
Apakah Matematika Diskrit Itu?


Rasa ingin tahu adalah ibu dari semua ilmu pengetahuan
Tak kenal maka tak sayang, tak sayang maka tak cinta



Matematika 	diskrit: cabang matematika yang mengkaji objek-objek diskrit. 




Apa 	yang dimaksud dengan kata diskrit (discrete)? 


Benda disebut diskrit jika:




terdiri dari sejumlah 		berhingga elemen yang berbeda 


elemen-elemennya tidak 		bersambungan 




(unconnected). 
Contoh: himpunan bilangan bulat (integer) 


Lawan [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=25&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		H1 { margin-top: 0in; margin-bottom: 0in; text-align: center } 		H1.western { font-family: "Nimbus Roman No9 L", serif; font-size: 14pt; font-weight: medium } 		H1.cjk { font-family: "DejaVuSans"; font-size: 14pt; font-weight: medium } 		H1.ctl { font-family: "Lucidasans"; font-size: 12pt; font-weight: medium } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-bottom:0;" align="center"><span style="font-size:x-large;"><strong>Apakah Matematika Diskrit Itu?</strong></span></p>
<p style="margin-bottom:0;" align="center">
</h2>
<h1 class="western"><span style="font-size:x-small;"><em>Rasa ingin tahu adalah ibu dari semua ilmu pengetahuan</em></span></h1>
<p style="margin-bottom:0;" align="center"><span style="font-size:x-small;"><em>Tak kenal maka tak sayang, tak sayang maka tak cinta</em></span></p>
<p style="margin-bottom:0;" align="center">
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Matematika 	diskrit: cabang matematika yang mengkaji objek-objek diskrit. </span></p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Apa 	yang dimaksud dengan kata <strong>diskrit</strong> (<em>discrete</em>)? </span></p>
</li>
</ul>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Benda disebut diskrit jika:</span></p>
<ul>
<li>
<ul>
<li>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">terdiri dari sejumlah 		berhingga elemen yang berbeda </span></p>
</li>
<li>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">elemen-elemennya tidak 		bersambungan </span></p>
</li>
</ul>
</li>
</ul>
<p style="margin-left:.75in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">(<em>unconnected</em>). </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Contoh: himpunan bilangan bulat (<em>integer</em>) </span></p>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Lawan 	kata diskrit: <strong>kontinyu</strong> atau <strong>menerus</strong> (<em>continuous</em>). </span></p>
</li>
</ul>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">Contoh: himpunan bilangan riil (<em>real</em>) </span></p>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Komputer 	digital bekerja secara diskrit. Informasi  yang disimpan dan 	dimanipulasi oleh komputer adalah dalam bentuk diskrit. </span></p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Matematika 	diskrit merupakan ilmu dasar dalam pendidikan informatika atau ilmu 	komputer. </span></p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Matematika 	diskrit memberikan landasan matematis untuk kuliah-kuliah lain di 	informatika. </span></p>
</li>
</ul>
<p style="margin-left:.5in;margin-bottom:0;" align="justify"> <span style="font-size:x-small;">algoritma, struktur data, basis data, otomata dan teori bahasa formal, jaringan komputer, keamanan komputer, sistem operasi, teknik kompilasi, dsb. </span></p>
<p style="margin-left:.5in;margin-bottom:0;" align="justify">
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Matematika 	diskrit adalah matematika yang khas informatika </span><span style="font-family:Wingdings;"></span> <strong>Matematika Informatika</strong>.</p>
</li>
</ul>
<p style="margin-left:.38in;text-indent:-.38in;margin-bottom:0;" align="justify">
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Materi-materi 	dalam matematika diskrit:</span></p>
</li>
</ul>
<ol>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Logika 	(<em>logic</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Teori 	Himpunan (<em>set</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Matriks 	(<em>matrice</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Relasi 	dan Fungsi (<em>relation and function</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Induksi 	Matematik (<em>mathematical induction</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Algoritma 	(<em>algorithms</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Teori 	Bilangan Bulat (<em>integers</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Barisan 	dan Deret (<em>sequences and series</em>)</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Teori 	Grup dan <em>Ring</em> (<em>group and ring</em>)</span></p>
</li>
</ol>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">10.  Aljabar Boolean (<em>Boolean algebra</em>)</span></p>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">11.  Kombinatorial (<em>combinatorics</em>)</span></p>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">12.  Teori Peluang Diskrit (<em>discrete probability</em>)</span></p>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">13.  Fungsi Pembangkit dan Analisis Rekurens</span></p>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">14.  Teori Graf (<em>graph – included tree</em>)</span></p>
<p style="margin-left:.25in;margin-bottom:0;" align="justify"><span style="font-size:x-small;">15.  Kompleksitas Algoritma (<em>algorithm complexity</em>)</span></p>
<ol>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Otomata 	&amp; Teori Bahasa Formal (<em>automata and formal language theory</em>)</span></p>
</li>
</ol>
<p style="margin-bottom:0;" align="center">
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Contoh-contoh 	persoalan matematika diskrit:</span></p>
</li>
</ul>
<ul>
<li>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">berapa 		banyak kemungkinan jumlah <em>password</em> yang dapat dibuat dari 8 		karakter?</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">bagaimana 		nomor ISBN sebuah buku divalidasi?</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">berapa 		banyak <em>string</em> biner yang panjangnya 8 bit yang mempunyai bit 		1 sejumlah ganjil?</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">bagaimana 		menentukan lintasan terpendek dari satu kota <em>a</em> ke kota <em>b</em>?</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">buktikan 		bahwa perangko senilai <em>n</em> (<em>n</em> </span><span style="font-family:Symbol,serif;"></span> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> rupiah dapat menggunakan hanya pernagko 3 rupiah dan 5 rupiah 		saja</p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">diberikan 		dua buah algoritma untuk menyelesaian sebuah persoalan, algoritma 		mana yang terbaik?</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">bagaimana 		rangkaian logika untuk membuat peraga digital yang disusun oleh 7 		buah batang (<em>bar</em>)? </span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">dapatkah 		kita melalui semua jalan di sebuah kompleks perubahan tepat hanya 		sekali dan kembali lagi ke tempat semula?</span></p>
</li>
<li>
<p style="margin-bottom:0;" align="justify">“<span style="font-size:x-small;">Makanan 		murah tidak enak”, “makanan enak tidak murah”. Apakah kedua 		pernyataan tersebut menyatakan hal yang sama?</span></p>
</li>
</ul>
</li>
</ul>
<p style="margin-bottom:0;" align="justify">
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Moral 	dari cerita di atas: mahasiswa informatika harus memiliki pemahaman 	yang kuat dalam matematika diskrit, agar tidak mendapat kesulitan 	dalam memahami kuliah-kuliah lainnya di informatika. </span></p>
</li>
</ul>
<p style="margin-bottom:0;" align="justify">
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><span style="font-size:x-small;">Perjalanan 	satu mil dimulai dari satu langkah.</span></p>
</li>
</ul>
<p style="margin-bottom:0;" align="justify">
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=25&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/matematika-diskrit-pendahuluan/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>Mengoptimalkan Kinerja / Kerja LINUX</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/mengoptimalkan-kinerja-kerja-linux/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/mengoptimalkan-kinerja-kerja-linux/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:48:12 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Ilmu Pendukung Kriptografi]]></category>
		<category><![CDATA[Komputer]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=22</guid>
		<description><![CDATA[
Archive for the &#8216;linux&#8217; 
Transparent proxy dengan squid di LTSP
January 16th, 2008 
Suatu hari, saya perhatikan trafik downstream di warnet mengalami spike/peak yang tinggi dan cukup lama, mengindikasikan kalau ada user yang sedang download, tetapi pola dari download tersebut kelihatan seperti multiple/concurrent download menggunakan download manager, setelah saya periksa, ternyata user ini menggunakan Multiget yang [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=22&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0in; color: #000000 } 		P.ctl { font-size: 10pt } 		H2 { margin-bottom: 0.08in } 		H3 { margin-bottom: 0.08in } 		H4 { margin-bottom: 0.08in } 		A:link { color: #0000ff } 	--></p>
<h2><span style="color:#0000ff;"><span style="text-decoration:underline;"><span style="font-size:medium;">Archive for the &#8216;linux&#8217; </span></span></span></h2>
<h3><a href="http://hahaha.rootbox.or.id/2008/01/16/transparent-proxy-dengan-squid-di-ltsp/"><span style="font-size:x-small;">Transparent proxy dengan squid di LTSP</span></a></h3>
<h4><span style="font-size:x-small;">January 16th, 2008<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Suatu hari, saya perhatikan trafik downstream di warnet mengalami spike/peak yang tinggi dan cukup lama, mengindikasikan kalau ada user yang sedang download, tetapi pola dari download tersebut kelihatan seperti multiple/concurrent download menggunakan download manager, setelah saya periksa, ternyata user ini menggunakan Multiget yang dia bawa dari USB.</span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2008/01/16/transparent-proxy-dengan-squid-di-ltsp/">7:24 am</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a>, <a href="http://hahaha.rootbox.or.id/category/proxy/">proxy</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2008/01/16/transparent-proxy-dengan-squid-di-ltsp/#respond">No Comments »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2008/01/15/menghilangkan-virus-di-usb-stickflashdisk/"><span style="font-size:x-small;">Menghilangkan virus di USB stick/flashdisk</span></a></h3>
<h4><span style="font-size:x-small;">January 15th, 2008<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Apabila saya amati, beberapa flashdisk yang dibawa oleh user ke warnet berisi virus, ini dapat dengan mudah dikenali apabila ada file Autorun.inf atau Desktop.ini di folder paling atas USB stick/flashdisk tersebut, salahsatu contoh isi dari file Autorun.inf (yang notabene akan dibaca dan dijalankan pertama kali USB stick/flashdisk ditancapkan di OS MS Windows) sbb:</span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2008/01/15/menghilangkan-virus-di-usb-stickflashdisk/">8:52 pm</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a>, <a href="http://hahaha.rootbox.or.id/category/tips/">tips</a>, <a href="http://hahaha.rootbox.or.id/category/warnet/">warnet</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2008/01/15/menghilangkan-virus-di-usb-stickflashdisk/#respond">No Comments »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2008/01/14/session-shadowing-initscript-di-ltsp/"><span style="font-size:x-small;">Session shadowing initscript di LTSP</span></a></h3>
<h4><span style="font-size:x-small;">January 14th, 2008<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Session shadowing atau remote desktop (di windows) merupakan fitur yang memungkinkan operator mengakses sesi X Window user dengan tujuan untuk membantu user apabila user mengalami masalah tanpa harus berada didepan komputer user, supaya program ini dijalankan tiap kali komputer user bootup, kita dapat menambahkan program x11vnc ke system startup files,</span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2008/01/14/session-shadowing-initscript-di-ltsp/">7:44 am</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a>, <a href="http://hahaha.rootbox.or.id/category/ltsp/">ltsp</a>, <a href="http://hahaha.rootbox.or.id/category/tips/">tips</a>, <a href="http://hahaha.rootbox.or.id/category/warnet/">warnet</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2008/01/14/session-shadowing-initscript-di-ltsp/#respond">No Comments »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2008/01/14/membatasi-kecepatan-upload-dengan-req_mime_type-di-squid/"><span style="font-size:x-small;">Membatasi kecepatan upload dengan req_mime_type di Squid</span></a></h3>
<h4><span style="font-size:x-small;">January 14th, 2008<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Oopss! sepertinya setup dibawah ini tidak berjalan sebagaimana mestinya, walaupun sudah mencoba menggunakan acl method POST. Work In Progress.<br />
Untuk membatasi kecepatan upload, saya sedang mencoba menggunakan req_mime_type melalui delay_pool di squid, seperti yang kita ketahui, apabila ada user yang melakukan upload, akan cukup mempengaruhi kecepatan akses download, karena pipa upload untuk koneksi ISP yang digunakan […]</span>
</p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2008/01/14/membatasi-kecepatan-upload-dengan-req_mime_type-di-squid/">1:52 am</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a>, <a href="http://hahaha.rootbox.or.id/category/ltsp/">ltsp</a>, <a href="http://hahaha.rootbox.or.id/category/tips/">tips</a>, <a href="http://hahaha.rootbox.or.id/category/warnet/">warnet</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2008/01/14/membatasi-kecepatan-upload-dengan-req_mime_type-di-squid/#comments">1 Comment »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2008/01/08/indikator-led-numlock-berkedip-kedip-waktu-kernel-panic/"><span style="font-size:x-small;">Indikator LED numlock berkedip-kedip waktu kernel panic</span></a></h3>
<h4><span style="font-size:x-small;">January 8th, 2008<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Pagi ini ada kesempatan untuk mencoba menginstall PCLinuxOS Gnome Edition, sewaktu bootup LED numlock terlihat berkedip-kedip, dari thread yang pernah tak baca, ini mengindikasikan terjadi lockup (kernel panic) di sistem. Dari hasil bootup live CD, ketika memilih menu Console dilayar juga tidak banyak membantu karena tidak menampilkan pesan lockup.<br />
Akhirnya bootup berhasil dengan memilih […]</span>
</p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2008/01/08/indikator-led-numlock-berkedip-kedip-waktu-kernel-panic/">6:42 am</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a>, <a href="http://hahaha.rootbox.or.id/category/tips/">tips</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2008/01/08/indikator-led-numlock-berkedip-kedip-waktu-kernel-panic/#respond">No Comments »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2007/12/30/manajemen-profile-firefox-atau-bagaimana-menjalankan-2-profile-firefox-sekaligus-bersamaan/"><span style="font-size:x-small;">Manajemen profile Firefox atau bagaimana menjalankan 2 profile firefox sekaligus bersamaan</span></a></h3>
<h4><span style="font-size:x-small;">December 30th, 2007<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">LifeHacker.com mengulas bagaimana melakukan manajemen beberapa profile Firefox dan menjalankan Firefox dengan profile yang berbeda secara bersamaan, silahkan baca di sini</span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2007/12/30/manajemen-profile-firefox-atau-bagaimana-menjalankan-2-profile-firefox-sekaligus-bersamaan/">2:39 pm</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2007/12/30/manajemen-profile-firefox-atau-bagaimana-menjalankan-2-profile-firefox-sekaligus-bersamaan/#respond">No Comments »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2007/12/30/optimalisasi-firefox-untuk-lingkungan-warnet/"><span style="font-size:x-small;">Optimalisasi firefox untuk lingkungan warnet</span></a></h3>
<h4><span style="font-size:x-small;">December 30th, 2007<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Beberapa tips berikut dapat diaplikasikan untuk mengoptimalkan kinerja firefox di lingkungan warnet.<br />
1. install AdBlock, subscribe setidaknya satu provider.2. install FasterFox, set profil nya menjadi “Courteous”, kalau anda mempunyai memori lebih, set juga “Enable Fastback”3. install Aardvark, untuk menyunting halaman web sebelum di cetak ke printer.4. install TabMixPlus, untuk menggunakan fitur Session (dan manfaatkan fitur “Recover […]</span>
</p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2007/12/30/optimalisasi-firefox-untuk-lingkungan-warnet/">2:37 pm</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2007/12/30/optimalisasi-firefox-untuk-lingkungan-warnet/#respond">No Comments »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2007/12/30/wake-on-lan/"><span style="font-size:x-small;">Wake-on LAN</span></a></h3>
<h4><span style="font-size:x-small;">December 30th, 2007<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Fitur WakeOn LAN memungkinkan kita untuk menghidupkan komputer melalui fitur WOL yang ada di ethernet card dan motherboard yang sudah mendukung fitur WOL, yang perlu kita lakukan adalah mengirim beberapa paket jaringan yang akan ditangkap oleh ethernet card dan diterjemahkan sebagai instruksi untuk menghidupkan komputer.<br />
Untuk memanfaatkan fitur WakeOn LAN dari motherboard dan ethernet card, silahkan […]</span>
</p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">posted by slashdotfx at <a href="http://hahaha.rootbox.or.id/2007/12/30/wake-on-lan/">9:31 am</a> &amp; filed under <a href="http://hahaha.rootbox.or.id/category/bsd/">bsd</a>, <a href="http://hahaha.rootbox.or.id/category/linux/">linux</a>, <a href="http://hahaha.rootbox.or.id/category/ltsp/">ltsp</a>, <a href="http://hahaha.rootbox.or.id/category/tips/">tips</a>, <a href="http://hahaha.rootbox.or.id/category/warnet/">warnet</a> </span><span style="font-size:x-small;"><strong>|</strong></span><span style="font-size:x-small;"> <a href="http://hahaha.rootbox.or.id/2007/12/30/wake-on-lan/#comments">1 Comment »</a></span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">&lt;!&#8211; &#8211;&gt;</span></p>
<h3><a href="http://hahaha.rootbox.or.id/2007/12/26/menambah-shortcut-di-side-pane-thunar/"><span style="font-size:x-small;">Menambah shortcut di side-pane Thunar</span></a></h3>
<h4><span style="font-size:x-small;">December 26th, 2007<!-- by slashdotfx --> </span></h4>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;">Shortcut di side-pane filemanager Thunar digunakan untuk membantu akses ke folder yang sering diakses oleh user (contoh: download, usb dll), untuk menambahkan entri shortcut di side-pane, edit file $HOME/.gtk-bookmarks,</span></p>
<p class="western" style="margin-bottom:.2in;"><span style="font-size:x-small;"># cd /home &amp;&amp; for i in `echo *`<br />
do /bin/echo -n “file:///media/$i usb flashdisk\nfile:///download/$i download folder” &gt; $i/.gtk-bookmarks<br />
done</span>
</p>
<p class="western" align="center">
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=22&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/mengoptimalkan-kinerja-kerja-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>Steganografi Sebagai Salah Satu Teknik Penyandian Data</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/steganografi-sebagai-salah-satu-teknik-penyandian-data/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/steganografi-sebagai-salah-satu-teknik-penyandian-data/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:46:48 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Steganografi]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=24</guid>
		<description><![CDATA[Steganografi Sebagai Salah Satu Teknik Penyandian Data
 
 Steganografi adalah teknik penyembunyian data rahasia ke dalam sebuah wadah (media) sehingga data yang disembunyikan sulit dikenali oleh indera manusia.
Steganografi membutuhkan dua properti: wadah penampung dan data rahasia yang akan disembunyikan.
Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia yang [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=24&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h3 class="entry-title"><strong><a rel="bookmark" href="http://agcrypt.wordpress.com/2007/11/30/steganografi-sebagai-salah-satu-teknik-penyandian-data/">Steganografi Sebagai Salah Satu Teknik Penyandian Data</a></strong></h3>
<p><!-- .entry-head --> <!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;"> Steganografi adalah teknik penyembunyian data rahasia ke dalam sebuah wadah (media) sehingga data yang disembunyikan sulit dikenali oleh indera manusia.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Steganografi membutuhkan dua properti: wadah penampung dan data rahasia yang akan disembunyikan.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, suara, teks, dan video. Data rahasia yang disembunyikan juga dapat berupa citra, suara, teks, atau video.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Penggunaan steganografi antara lain bertujuan untuk menyamarkan eksistensi (keberadaan) data rahasia sehingga sulit dideteksi, dan melindungi hak cipta suatu produk.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Steganografi dapat dipandang sebagai kelanjutan kriptografi. Jika pada kriptografi, data yang telah disandikan (<em>ciphertext</em>) tetap tersedia, maka dengan steganografi ciphereteks dapat disembunyikan sehingga pihak ketiga tidak mengetahui keberadaannya.</span></p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"><strong>Sejarah Steganografi</strong></span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">Steganografi sudah dikenal oleh bangsa Yunani. Penguasa Yunani dalam mengirimkan pesan rahasia menggunakan kepala budak atau prajurit sebagai media. Dalam hal ini, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Ketika rambut budak tumbuh, budak tersebut diutus untuk membawa pesan rahasia di kepalanya.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Bangsa Romawi mengenal steganografi dengan menggunakan tinta tak-tampak (<em>invisible ink</em>) untuk menuliskan pesan. Tinta tersebut dibuat dari campuran sari buah, susu, dan cuka. Jika tinta digunakan untuk menulis maka tulisannya tidak tampak. Tulisan di atas kertas dapat dibaca dengan cara memanaskan kertas tersebut. </span></p>
<p align="justify">
<p align="justify"><span style="font-size:small;"><strong>Kriteria Steganografi yang Bagus</strong></span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Steganografi yang dibahas di sini adalah penyembunyian data di dalam citra digital. Meskipun demikian, penyembunyian data dapat juga dilakukan pada wadah berupa suara digital, teks, ataupun video.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Penyembunyian data rahasia ke dalam citra digital akan mengubah kualitas citra tersebut. Kriteria yang harus diperhatikan dalam penyembunyian data adalah:</span></p>
<p style="margin-left:.5in;text-indent:-.25in;margin-bottom:0;" align="justify"><span style="font-size:xx-small;"><em><span style="font-size:medium;">1.</span><span style="font-size:medium;"> </span><span style="font-size:medium;">Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia.</span></em></span></p>
<p style="margin-left:.5in;text-indent:-.25in;margin-bottom:0;" align="justify"><span style="font-size:xx-small;"><em><span style="font-size:medium;">2.</span><span style="font-size:medium;"> </span><span style="font-size:medium;">Data yang disembunyikan harus tahan terhadap manipulasi yang dilakukan pada citra penampung. Bila pada citra dilakukan operasi pengolahan citra, maka data yang disembunyikan tidak rusak.</span></em></span></p>
<p style="margin-left:.5in;text-indent:-.25in;margin-bottom:0;" align="justify"><span style="font-size:xx-small;"><em><span style="font-size:medium;">3.</span><span style="font-size:medium;"> </span><span style="font-size:medium;">Data yang disembunyikan harus dapat diungkapkan kembali (recovery).</span></em></span></p>
<p style="margin-left:.5in;text-indent:-.25in;margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"><strong>Teknik Penyembunyian Data</strong> </span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">Penyembunyian data dilakukan dengan mengganti bit-bit data di dalam segmen citra dengan bit-bit data rahasia. Salah satu metode penyembunyian data yang sederhana adalah <em>LSB Modification</em>.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Perhatikan contoh sebuah susunan bit pada sebuah <em>byte</em>:</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"> &amp; nbsp; &amp;n bsp; &amp;nb sp; <span style="text-decoration:underline;">1</span>101001</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:medium;"> &amp; nbsp; &amp;n bsp; &amp;nb sp;| &amp;nb sp; &amp;nbs p; |&amp;nbs p; ; &amp; nbsp; &amp;n bsp; &amp;nb 	sp; &amp;nbs p; ; </span><em>LSB = Least Significant Bit</em></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:medium;"> &amp; nbsp; &amp;n bsp; &amp;nb sp;| &amp;nb sp; &amp;nbs p; |&amp;nbs p; ; &amp; nbsp; &amp;n bsp; &amp;nb 	sp; &amp;nbs p; ; </span><em>MSB = Most Siginificant Bit</em></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"> &amp; nbsp; &amp;n bsp; &amp;nb sp; <em>MSB</em> <em>LSB</em></span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Bit yang cocok untuk diganti adalah bit <em>LSB</em>, sebab perubahan tersebut hanya mengubah nilai <em>byte</em> satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Misalkan <em>byte</em> tersebut menyatakan warna keabuan tertentu, maka perubahan satu bit LSB tidak mengubah warna keabuan tersebut secara berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan yang kecil.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Misalkan segmen data citra sebelum perubahan:</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"> 0 0 1 1 0 0 1 1 &amp; nbsp; 1 0 1 0 0 0 1 0 &amp; nbsp; 1 1 1 0 0 0 1 0 &amp; nbsp; 0 1 1 0 1 1 1 1</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"> Segmen data citra setelah â€˜0 1 1 1 â€˜ disembunyikan:</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"> 0 0 1 1 0 0 1 0 &amp; nbsp; 1 0 1 0 0 0 1 1 &amp; nbsp; 1 1 1 0 0 0 1 1 &amp; nbsp; 0 1 1 0 1 1 1 1</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Untuk memperkuat teknik penyembunyian data, bit-bit data rahasia tidak digunakan mengganti <em>byte-byte</em> yang berurutan, namun dipilih susunan <em>byte</em> secara acak. Misalnya jika terdapat 50 <em>byte</em> dan 6 bit data yang akan disembunyikan, maka maka <em>byte</em> yang diganti bit <em>LSB</em>-nya dipilih secara acak, misalkan <em>byte</em> nomor 36, 5, 21, 10, 18, 49. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Bilangan acak dibangkitkan dengan <em>pseudo-random-number-gene rator</em> (<em>PRNG</em>) kriptografi. <em>PRNG</em> kriptografi sebenarnya adalah algoritma kriptografi yang digunakan untuk enkripsi. <em>PRNG</em> dibangun dengan algoritma <em>DES </em>(<em>Data Encryption Standard</em>), algoritma <em>hash</em> <em>MD5</em>, dan mode kriptografi <em>CFB</em> (<em>Chiper-Feedback Mode</em>). Tujuan dari enkripsi adalah menghasilkan sekumpulan bilangan acak yang sama untuk setiap kunci enkripsi yang sama. Bilangan acak dihasilkan dengan cara memilih bit-bit dari sebuah blok data hasil enkripsi</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Teknik penyembunyian data untuk citra 8-bit berbeda dengan citra 24-bit. Seperti diketahui berkas citra <em>bitmap</em> terdiri atas bagian <em>header</em>, palet <em>RGB</em>, dan data <em>bitmap</em>. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Pada citra 8-bit, setiap elemen data <em>bitmap</em> menyatakan indeks dari peta warnanya di palet <em>RGB</em>. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">&amp; nbsp; &amp;n bsp; Format citra 8-bit (256 warna)</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">&lt;<em>header</em>&gt; </span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:medium;"><br />
</span><span style="font-size:small;">RGB&gt;</span>
</p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">&amp; nbsp; &amp;n bsp; &amp;nb sp; &amp;nbs p; <em>R &amp; nbsp; G &amp; nbsp; B</em></span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">1 &amp; nbsp; 20 &amp; nbsp; 45 &amp; nbsp; 24</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">2 &amp; nbsp; 14 &amp; nbsp; 13 &amp; nbsp; 16</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">3 &amp; nbsp; 12 &amp; nbsp; 17 &amp; nbsp; 15</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">â€¦</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">256 46 &amp; nbsp; 78 &amp; nbsp; 25</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">&amp; nbsp; &amp;n bsp; bitmap&gt;</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">&amp; nbsp; &amp;n bsp; 2 2 1 1 1 3 5 â€¦</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Pada citra 24-bit, tidak terdapat palet <em>RGB</em>, karena nilai <em>RGB</em> langsung diuraikan dalam data <em>bitmap</em>. Setiap elemen data <em>bitmap</em> panjangnya 3 <em>byte</em>, masing-masing <em>byte</em> menyatakan komponen <em>R</em>, <em>G</em>, dan <em>B</em>.</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">Format citra 24-bit (16 juta warna)</span></p>
<p style="text-indent:.5in;margin-bottom:0;" align="justify"><span style="font-size:small;">&lt;<em>header</em>&gt; </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">&amp; nbsp; &amp;n bsp; bitmap&gt;</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">&amp; nbsp; &amp;n bsp; 2 2 1 1 1 3 5 â€¦ &amp; nbsp; &amp;n bsp; &amp;nb sp; &amp;nbs p; ; &amp; nbsp; &amp;n bsp; &amp;nb sp; &amp;nbs p; ; &amp; nbsp; &amp;n bsp; &amp;nb sp; </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Pada contoh format citra 24-bit di atas, <em>pixel</em> pertama mempunyai <em>R</em> = 2, <em>G</em> = 2, <em>B</em> = 1.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"><em>Teknik penggantian bit pada citra bukan 24-bit.</em></span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">Sebelum melakukan penggantian bit <em>LSB</em>, semua data citra yang bukan tipe 24-bit diubah menjadi format 24-bit. Jadi, setiap data <em>pixel</em> sudah mengandung komponen <em>RGB</em>. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Setiap <em>byte</em> di dalam data <em>bitmap</em> diganti satu bit <em>LSB</em>-nya dengan bit data yang akan disembunyikan. Jika <em>byte</em> tersebut merupakan komponen hijau (G), maka penggantian 1 bit LSB-nya hanya mengubah sedikit kadar warna hijau, dan perubahan ini tidak terdeteksi oleh mata manusia. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"><em>Teknik penggantian bit pada citra 24-bit.</em></span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">Karena data bitmap pada citra 24-bit sudah tersusun atas komponen <em>RGB</em>, maka tidak perlu dilakukan perubahan format. </span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">Setiap <em>byte</em> di dalam data bitmap diganti satu bit <em>LSB</em>-nya dengan bit data yang akan disembunyikan.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"><em>Perubahan Jumlah Warna</em></span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-family:Times New Roman;">Pada citra 8-bit, jumlah warna terbatas, hanya 256 warna. Pengubahan format citra 8-bit menjadi 24-bit akan menghasilkan warna baru (yang semula tidak terdapat di dalam palet RGB). Setiap elemen </span><span style="font-family:Times New Roman;"><em>RGB</em></span><span style="font-family:Times New Roman;"> pada tabel palet berpotensi menjadi 8 warna berbeda setekah proses penggantian bit </span><span style="font-family:Times New Roman;"><em>LSB</em></span><span style="font-family:Times New Roman;">. Hal ini karena setiap data </span><span style="font-family:Times New Roman;"><em>bitmap</em></span><span style="font-family:Times New Roman;"> terdiri atas 3 </span><span style="font-family:Times New Roman;"><em>byte</em></span><span style="font-family:Times New Roman;">, maka tersedia 3 bit </span><span style="font-family:Times New Roman;"><em>LSB</em></span><span style="font-family:Times New Roman;"> untuk penggantian. Penggantian 3 bit </span><span style="font-family:Times New Roman;"><em>LSB</em></span><span style="font-family:Times New Roman;"> menghasilkan 2</span><span style="color:#000000;"><sup><span style="font-family:Times New Roman;">3</span></sup></span><span style="font-family:Times New Roman;"> = 8 kombinasi warna. Dengan demikian, steganografi pada citra 256 warna berpotensi menghasilkan 256 </span><span style="font-family:Symbol;">Â´</span><span style="color:#000000;"> </span><span style="font-family:Times New Roman;">8 = 2048 warna. </span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-family:Times New Roman;">Untuk menghindari kelebihan warna dari 256, maka sebelum proses penyembunyian data, warna citra 8-bit diturunkan terlebih dahulu menjadi 32 warna (jika jumlah warnanya kurang dari 32, tidak perlu dilakukan penurunan warna). Dengan demikian, jika setiap warna menghasilkan 8 warna baru, jumlah warna seluruhnya maksimum 32 </span><span style="font-family:Symbol;">Â´</span><span style="color:#000000;"> </span><span style="font-family:Times New Roman;">8 = 256 warna. </span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Penurunan jumlah warna dilakukan dengan cara kuantisasi warna (<em>color quantization</em>). Penurunan jumlah warna harus tetap menghasilkan citra yang tampak persis seperti citra semula. Algoritma kuantisasi warna ada beberapa buah, antara lain algoritma <em>diversity</em>. Prinsip algoritma <em>diversity</em> adalah memaksimumkan perbedaan warna.</span></p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Algoritma <em>Diversity</em></span></p>
<p style="margin-left:.52in;text-indent:-.25in;margin-bottom:0;" align="justify"><span style="font-size:small;">1. 	Buat histogram citra. Warna yang frekuensi kemunculannya 0 dibuang karena tidak akan digunakan.</span></p>
<p style="margin-left:.52in;text-indent:-.25in;margin-bottom:0;" align="justify"><span style="font-size:small;">2.	Pilih warna dengan frekuensi kemunculan tertinggi sebagai warna patokan. Masukkan warna ini ke dalam senarai warna terpilih.</span></p>
<p style="margin-left:.52in;text-indent:-.25in;margin-bottom:0;" align="justify"><span style="font-size:small;">3. Cari warna yang mempunyai perbedaan terjauh dengan warna patokan. Masukkan warna tersebut ke dalam senarai warna terpilih. Perbedaan dua buah warna dihitung dengan rumus jarak Euclidean:</span></p>
<p style="margin-left:.52in;text-indent:.5in;margin-bottom:0;" align="justify"><span style="color:#000000;"><em>d</em></span><span style="color:#000000;"> = { (</span><span style="color:#000000;"><em>r</em></span><span style="color:#000000;"><sub>1</sub></span><span style="color:#000000;"> â€“ </span><span style="color:#000000;"><em>r</em></span><span style="color:#000000;"><sub>2</sub></span><span style="color:#000000;">)</span><span style="color:#000000;"><sup>2</sup></span><span style="color:#000000;"> + (</span><span style="color:#000000;"><em>g</em></span><span style="color:#000000;"><sub>1</sub></span><span style="color:#000000;"> â€“ </span><span style="color:#000000;"><em>g</em></span><span style="color:#000000;"><sub>2</sub></span><span style="color:#000000;">)</span><span style="color:#000000;"><sup>2</sup></span><span style="color:#000000;"> + (</span><span style="color:#000000;"><em>b</em></span><span style="color:#000000;"><sub>1</sub></span><span style="color:#000000;"> â€“ </span><span style="color:#000000;"><em>b</em></span><span style="color:#000000;"><sub>2</sub></span><span style="color:#000000;">)</span><span style="color:#000000;"><sup>2</sup></span><span style="color:#000000;"> }</span><span style="color:#000000;"><sup>1/2</sup></span></p>
<p style="margin-left:.51in;text-indent:-.49in;margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;"> &amp; nbsp; &amp;n bsp; yang dalam hal ini, <em>r</em><sub>1</sub>, <em>g</em><sub>1</sub>, dan <em>b</em><sub>1</sub> adalah komponen <em>RGB</em> dari warna pertama, dan <em>r</em><sub>2</sub>, <em>g</em><sub>2</sub>, dan <em>b</em><sub>2</sub> adalah komponen <em>RGB</em> dari warna kedua. </span></p>
<p style="margin-left:.52in;text-indent:-.25in;margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">4. 	Untuk setiap warna yang tersisa di dalam <em>list</em>, hitung jaraknya dari masing-masing warna di dalam senarai warna terpilih. Ambil warna yang paling jauh berbeda dengan warna yang sudah dipilih. Lakukan langkah 4 ini berulang kali sampai <em>k</em> warna sudah terpilih.</span></p>
<p style="margin-left:.52in;text-indent:-.25in;margin-top:.08in;margin-bottom:0;" align="justify">
<p style="margin-top:.08in;" align="justify"><span style="font-size:small;"><strong>Ukuran Data Yang Disembunyikan</strong></span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-family:Times New Roman;">Ukuran data yang akan disembunyikan bergantung pada ukuran citra penampung. Pada citra 8-bit yang berukuran 256 </span><span style="font-family:Symbol;">Â´</span><span style="color:#000000;"> </span><span style="font-family:Times New Roman;">256 </span><span style="font-family:Times New Roman;"><em>pixel</em></span><span style="font-family:Times New Roman;"> terdapat 65536 </span><span style="font-family:Times New Roman;"><em>pixel</em></span><span style="font-family:Times New Roman;">, setiap </span><span style="font-family:Times New Roman;"><em>pixel</em></span><span style="font-family:Times New Roman;"> berukuran 1 </span><span style="font-family:Times New Roman;"><em>byte</em></span><span style="font-family:Times New Roman;">. Setelah diubah menajdi citra 24-bit, ukuran data bitmap menjadi 65536 </span><span style="font-family:Symbol;">Â´</span><span style="color:#000000;"> </span><span style="font-family:Times New Roman;">3 = 196608 </span><span style="font-family:Times New Roman;"><em>byte</em></span><span style="font-family:Times New Roman;">. Karena setiap </span><span style="font-family:Times New Roman;"><em>byte</em></span><span style="font-family:Times New Roman;"> hanya bisa menyembunyikan satu bit di </span><span style="font-family:Times New Roman;"><em>LSB</em></span><span style="font-family:Times New Roman;">-nya, maka ukuran data yang akan disembunyikan di dalam citra maksimum 196608/8 = 24576 </span><span style="font-family:Times New Roman;"><em>byte</em></span><span style="font-family:Times New Roman;">. Ukuran data ini harus dikurangi dengan panjang nama berkas, karena penyembunyian data rahasia tidak hanya menyembunyikan isi data tersebut, tetapi juga nama berkasnya.</span></p>
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;">Semakin besar data disembunyikan di dalam citra, semakin besar pula kemungkinan data tersebut rusak akibat manipulasi pada citra penampung. </span></p>
<p style="margin-bottom:0;" align="justify">
<p style="margin-bottom:0;" align="justify"><span style="font-size:small;"><strong>Teknik Pengungkapan Data</strong> </span></p>
<p style="margin-top:.08in;margin-bottom:0;" align="justify"><span style="font-size:small;">Data yang disembunyikan di dalam citra dapat dibaca kembali dengan cara pengungkapan (<em>reveal </em>atau <em>extraction</em>). Posisi <em>byte</em> yang menyimpan bit data dapat diketahui dari bilangan acak yang dibangkitkan oleh <em>PRNG</em>. Karena algoritma kriptografi yang digunakan menggunakan kunci pada proses enkripsi, maka kunci yang sama digunakan untuk membangkitkan bilangan acak. Bilangan acak yang dihasilkan sama dengan bilangan acak yang dipakai pada waktu penyembunyian data. Dengan demikian, bit-bit data rahasia yang bertaburan di dalam citra dapat dikumpulkan kembali. </span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=24&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/steganografi-sebagai-salah-satu-teknik-penyandian-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>Algoritma Enkripsi Rivest Code 5 (RC-5)</title>
		<link>http://kriptologi.wordpress.com/2008/10/03/algoritma-enkripsi-rivest-code-5-rc-5/</link>
		<comments>http://kriptologi.wordpress.com/2008/10/03/algoritma-enkripsi-rivest-code-5-rc-5/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:42:53 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Block Cipher]]></category>
		<category><![CDATA[Kriptografi]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/?p=23</guid>
		<description><![CDATA[ Algoritma Enkripsi Rivest Code 5 (RC-5)
Abstrak :
RC-5 (Rivest Code-5) merupakan enkripsi stream simetrik yang dibuat oleh RSA Data Security, Inc (RSADSI). Metode enkripsi ini pada awalnya dirancang untuk enkripsi yang menggunakan mikroprosesor (perangkat keras), tetapi pada tahap pengembangannya algoritma ini cocok diterapkan dengan menggunakan perangkat keras maupun perangkat lunak. Secara ringkas algoritma ini bekerja [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=23&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong> Algoritma Enkripsi Rivest Code 5 (RC-5)</strong></p>
<p>Abstrak :</p>
<div>RC-5 (Rivest Code-5) merupakan enkripsi stream simetrik yang dibuat oleh RSA Data Security, Inc (RSADSI). Metode enkripsi ini pada awalnya dirancang untuk enkripsi yang menggunakan mikroprosesor (perangkat keras), tetapi pada tahap pengembangannya algoritma ini cocok diterapkan dengan menggunakan perangkat keras maupun perangkat lunak. Secara ringkas algoritma ini bekerja dengan penambahan modulus 2w,melakukan EX-OR dan melakukan rotasi x kekiri dengan jumlah y bit. RC-5 memiliki kelebihan dalam menentukan jumlah kata kunci yang digunakan, hal ini berarti akan memilih tingkat keamanan yang digunakan sesuai dengan aplikasinya. Tulisan ini membahas tentang algoritma enkripsi RC-5 yang dikemukakan oleh Ronald L.Rivest dari MIT Laboratory for Computer Science. Metode penulisan dilakukan dengan studi literartur terhadap buku dan bahasan-bahasan di internet yang berhubungan dengan algoritma enkripsi terutama algoritma RC-5.</div>
<p>1. Pendahuluan<br />
Saat ini sistem komputer yang terpasang makin mudah diakses. Sistem time sharing dan akses jarak jauh menyebabkan masalah keamanan menjadi salah satu kelemahan komuniksi data seperti internet. Disamping itu kecendrungan lain saat ini adalah memberikan tanggung-jawab sepenuhnya ke komputer untuk mengelola aktifitas pridadi dan bisnis seperti sistem transfer dana elekronis yang melewatkan uang sebagai aliran bit dan lain sebagainya. Untuk itu diperlukan sistem computer yang memiliki tingkat keamanan yang dapat terjamin, walaupun pada akhirnya akan terjadi trade off  antara tingkat keamanan dan kemudahan akses.<br />
Keamanan komputer adalah menjamin data atau informasi tidak dibaca, tidak dimodifikasi oleh orang lain yang tidak diberi otorisasi. Keamanan sistem dibagi menjadi tiga bagian [4] :</p>
<p>1.Keamanan eksternal<br />
Keamanan eksternal berkaitan dengan fasilitas komputer dari penyusup dan bencana seperti kebakaran atau bencana alam.<br />
2.Keamanan interface pamakai<br />
Keamanan interface pemakai yang berkaitan dengan identifikasi pemakai sebelum pemakai diizinkan mengakses data atau program.<br />
3.Keamanan internal<br />
Keamanan internal berkaitan dengan beragam kendali yang dibangun pada perangkat keras dan perangkat lunak yang menjamin operasi yang handal dan tidak terganngu untuk menjaga integritas data.<br />
Sementara itu kebutuhan keamanan sistem komputer dapat dikategorikan menjadi aspek-aspek sebagai berikut [3] :<br />
1.    Privacy / Confidentiality<br />
Inti utama aspek privacy atau confidentiality adalah usaha untuk menjaga informasi dari orang yang tidak berhak mengakses. Privacy lebih kearah data-data yang sifatnya privat sedangkan confidentiality biasanya berhubungan dengan data yang diberikan ke pihak lain untuk keperluantertentu (misalnya sebagai bagian dari pendaftaran sebuah servis) dan hanya diperbolehkan untuk keperluan tertentu tersebut.<br />
2.  Integrity<br />
Aspek ini menekankan bahwa informasi tidak boleh diubah tanpa seijin pemilik informasi. Adanya virus, trojan horse, atau pemakai lain yang mengubah informasi tanpa ijin merupakan contoh masalah yang harus dihadapi. Sebuah e-mail dapat saja “ditangkap” (intercept) di tengah jalan, diubah isinya (altered, tampered, modified), kemudian diteruskan ke alamat yang dituju. Dengan kata lain, integritas dari informasi sudah tidak terjaga. Penggunaan encryption dan digital signature, misalnya, dapat mengatasi  masalah ini.<br />
3.Authentication<br />
Aspek ini berhubungan dengan metoda untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli.<br />
4.  Availability<br />
Aspek availability atau ketersediaan berhubungan dengan ketersediaan informasi ketika dibutuhkan. Sistem informasi yang diserang atau dijebol dapat menghambat atau meniadakan akses ke informasi.<br />
Enkripsi merupakan salah satu cara yang dilakukan untuk mengamankan sistem atau informasi dari hal yang akan menyebabkan aspek-aspek diatas tidak terpenuhi, seperti untuk menjaga integritas data atau informasi. Ada beberapa algoritma enkripsi yang sudah terbuka untuk dipelajari, seperti Data Encryption Standard (DES), RC-4, Two Fish, RC-5 dan lain-lain. Tulisan ini membahas algoritma RC-5 yang dikemukakan oleh Ronald L.Rivest dari MIT Laboratory for Computer Science. Metode penulisan dilakukan dengan studi literatur terhadap buku dan bahasan-bahasan di internet yang berhubungan dengan algoritma enkripsi terutama algoritma RC-5.</p>
<p>2. Tinjauan Pustaka<br />
Bagian ini membahas tinjaun pustaka yang erkaiatan dengan masalah enkripsi. Diharapakan dengan adanya tinjauan pustaka ini akan memudahkan kita dalam memahami masalha enkripsi terutama enkripsi RC-5.<br />
Salah satu mekanisme untuk meningkatkan keamanan adalah dengan menggunakan teknologi enkripsi. Data-data yang kirimkan diubah sedemikian rupa sehingga tidak mudah disadap. Jadi enkripsi adalah proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext) adalah enkripsi (encryption). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah. Menurut ISO 7498-2, terminologi yang lebih tepat digunakan adalah “encipher”. Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption). Menurut ISO 7498-2, terminologi yang lebih tepat untuk proses ini adalah “decipher” [3].<br />
Berdasarkan cara memproses teks (plaintext), cipher dapat dikategorikan menjadi dua jenis: block cipher and stream cipher[3]. Block cipher bekerja dengan memproses data secara blok, dimana beberapa karakter / data digabungkan menjadi satu blok. Setiap proses satu blok menghasilkan keluaran satu blok juga. Sementara itu stream cipher bekerja memproses masukan (karakter atau data) secara terus menerus dan menghasilkan data pada saat yang bersamaan.<br />
Banyak servis di Internet yang masih menggunakan “plain text” untuk authentication, seperti penggunaan pasangan userid dan password. Informasi ini dapat dilihat dengan mudah oleh program penyadap atau pengendus (sniffer) [3].<br />
Contoh servis yang menggunakan plaintext antara lain [3]:<br />
• akses jarak jauh dengan menggunakan telnet dan rlogin<br />
• transfer file dengan menggunakan FTP<br />
• akses email melalui POP3 dan IMAP4<br />
• pengiriman email melalui SMTP<br />
• akses web melalui HTTP<br />
Kelompok enkripsi<br />
Kelompok enkripsi itu sendiri dibagi menjadi 3 kelompok yaitu :<br />
1.Symmetric encryption<br />
Menggunakan kunci (key) yang sama untuk proses enkripsi dan dekripsi, masalah yang muncul adalah kesulitan dalam manajemen key. Misalnya dilakukan pengirim data yang telah di enkripsi ke seorang penerima melalui email, orang yang diberi data ini hanya dapat merubah data kedalam bentuk aslinya dengan menggunakan key yang sama. Jadi sipengirim harus memberitahukan ke sipenerima data key key yang digunakan, disini masalahnya bagaimana mengirim key ke penerima tersebut. Bentuk blok diagram metode simetrik diperlihatkan pada gambar 1.</p>
<p>Gambar 1. Enkripsi simetrik<br />
Algoritma enkripsi yang menggunakan metode ini adalah :<br />
Data Encryption Standard (DES)<br />
AES, CAST, IDE, RC-4, RC-5<br />
2.Asymmetric encryption<br />
Menggunakan kunci (key) yang berbeda untuk proses enkripsi dan dekripsi. Pada sistem asimetrik dikenal adanya  private key dan public key. Jika melakukan pengiriman data yang di enkripsi ke penerima, sipengrim melakukan enkripsi dengan menggunakan public key  dari sipenerima dan data hanya dapat dirobah kembali dalam bentuk plaintext dengan menggunakan private key yang dimiliki sipenerima. Bentuk blok diagram metode asimetrik diperlihatkan pada gambar 2.</p>
<p>Gambar 2. Enkripsi asimetrik<br />
Algoritma enkripsi yang menggunakan metode ini adalah :<br />
RSA<br />
Dife-Hillman<br />
3.Hybrid encryption<br />
Metode ini menggabungkan konsep simetri dan asimetrik, dengan menggunakan key random data dienkripsi dengan metode simetrik. Tahap berikutnya key random yang dipakai untuk proses enkripsi data juga dienkripsi, tetapi menggunakan metode asimetrik dengan menggunakan public key dari sipenerima. Ciphertext yang dihasilkan masing-masing metode digabungkan dan dikirimkan ke penerima. Sipenerima akan membuka Ciphertext untuk key word dengan menggunakan private key yang dimilikinya. Bentuk blok diagram metode ini diperlihatkan pada gambar 3.</p>
<p>Gambar 3.a Proses enkripsi</p>
<p>Gambar 3.b Proses enkripsi<br />
Fungsi Hash Satu Arah</p>
<p>Fungsi hash satu arah (one-way hash function) digunakan untuk membuktikan keaslian dari suatu dokumen atau pesan. Pesan (yang besarnya dapat bervariasi) yang akan di-hash disebut pre-image, sedangkan outputnya yang memiliki ukuran tetap, disebut hash-value (nilai hash). Untuk mengetahui keaslian pesan ada tiga cara yang dapat dilakukan yaitu dengan menggunkan enkripsi dan dekripsi simetrik enkripasi, enkripasi dengan anti simetrik enkripsi dan dengan menggunakan sistem tanda tangan digital. Contoh algoritma fungsi hash satu arah adalah MD-5 dan SHA. Message Authentication Code (MAC) adalah salah satu variasi dari fungsi hash satu arah, hanya saja selain pre-image, sebuah kunci rahasia juga menjadi input bagi fungsi MAC.<br />
Tanda Tangan Digital<br />
Selama ini, masalah tanda tangan digital (digital signature) masih sering di permasalahkan keabsahannya, hal ini terjadi karena pengertian dan konsep dasarnya belum dipahami.  Penandatanganan digital terhadap suatu dokumen adalah sidik jari dari dokumen tersebut beserta timestamp-nya di enkripsi dengan menggunakan kunci privat pihak yang menandatangani. Tanda tangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku untuk dokumen yang bersangkutan saja. Keabsahan tanda tangan digital itu dapat diperiksa oleh pihak yang menerima pesan.<br />
Sertifikat Digital<br />
Sertifikat digital adalah kunci publik dan informasi penting mengenai jati diri pemilik kunci publik, seperti misalnya nama, alamat, pekerjaan, jabatan, perusahaan dan bahkan hash dari suatu informasi rahasia yang ditandatangani oleh suatu pihak terpercaya. Sertifikat digital tersebut ditandatangani oleh sebuah pihak yang dipercaya yaitu Certificate Authority (CA).<br />
Secure Socket Layer (SSL)<br />
SSL dapat menjaga kerahasiaan (confidentiality) dari informasi yang dikirim karena menggunakan teknologi enkripsi yang maju dan dapat di-update jika ada teknologi baru yang lebih bagus. Dengan penggunaan sertifikat digital, SSL menyediakan otentikasi yang transparan antara client dengan server. SSL menggunakan algoritma RSA untuk membuat tanda tangan digital (digital signature) dan amplop digital (digital envelope). Selain itu, untuk melakukan enkripsi dan dekripsi data setelah koneksi dilakukan, SSL menggunakan RC-4 sebagai algoritma standar untuk enkripsi kunci simetri. Saat aplikasi menggunakan SSL, sebenarnya terjadi dua kondisi, yakni handshake dan pertukaran informasi.<br />
Konsep Dasar RC-5<br />
Seperti dijelaskan diatas, algoritma RC-5 merupakan metode enkripsi menggunakan metode simetrik dan pengolahan dalam bentuk blok chiper, jadi kata kunci yang sama digunakan untuk proses enkripsi dan dekripsi. Parameter-parameter yang digunakan dalam RC-5 adalah sebagai berikut :<br />
Jumlah putaran ini disimbolkan dengan r  yang merupakan parameter untuk rotasi dengan nilai 0, 1, 2, …… 255.<br />
Jumlah word dalam bit disimbolkan dengan w. Nilai bit yang di support adalah 16 bit, 32 bit, dan 64 bit.<br />
Kata kunci (key word) Variable ini disimbolkan dengan b dengan range 0, 1, 2, …. 255. Key word ini dikembangkan menjadi array S yang digunakan sebagai key pada proses untuk enkripsi dan dekripsi.<br />
Untuk memahami cara kerja RC-5, dapat dimulai dengan melihat konsep dasar bagaimana RC-5 ini bekerja. Hal ini dilakukan untuk memahami cara kerja algoritma ini lebih lanjut. RC-5 Menggunakan operasi dasar untuk proses enkripsi sebagai berikut :<br />
1.Data yang akan dienkripsi dikembangkan menjadi 2 bagian bagian kiri dan bagian kanan dan dilakukan penjumlahan dengan key word yang yang telah diekspansi sebelumnya. Pemjulahan ditunjukan dengan tanda &#8220;+&#8220;, dan disimpan di dua register A dan register B.<br />
2.Kemudian dilakukan operasi EX-OR, yang ditandai dengan tanda &#8220;&#8220;.<br />
3.Melakukan rotasi kekiri (shift left) sepanjang y terhadap x word yang ditandai dengan x&lt;&lt;&lt; y. y  merupakan interpretasi modulo w atau jumlah kata w dibagi 2. Dengan lg[w] ditentukan jumlah putaran yang dilakukan.<br />
4.Tahap akhir dilakukan penggabungan untuk mendapatkan data yang telah dienkripsi.<br />
Prose dekripsi dilakukan dengan konsep dasar sebagai berikut :<br />
1.Data yang telah dienkripsi dikembangkan kembali menjadi 2 bagian dan disimpan di dua register A dan register B.<br />
2.Kemudian dilakukan rotasi ke kanan sejumlah r .<br />
3.Selanjutnya dilakukan operasi EX-OR yang ditandai dengan &#8220;&#8220;.<br />
4.Tahap akhir dilakukan pengurangan terhadap masing-masing register dengan key word yang ditunjukan dengan tanda &#8220;-&#8220;, untuk mendapatkan plaintext.</p>
<p>3. Algoritma RC-5<br />
Pada bagian ini kita menjelaskan algoritma RC5, yang terdiri dari tiga komponen: algoritma key expansion, algoritma enkripsi, dan algoritma dekripsi.<br />
Input plaintext ke RC5 terdiri dari dua word w-bit, yang ditandai dengan A dan B. RC5 menggunakan expanded key table (key table yang diperluas), S[0…t – 1], terdiri dari t = 2(r + 1) word w-bit. Algoritma key expansion menginisialisasi S dari parameter key rahasia dari (yang diberikan oleh) user. (Sebagai catatan tabel S dalam enkripsi RC5 bukan “S-box” seperti yang yang digunakan di DES; RC5 menggunakan entry dalam S secara sekuensial, satu pada satu waktu).<br />
Diasumsikan konvensi standard &#8220;little-endian&#8220; untuk mem-packing byte menjadi blok input/output: byte yang pertama menempati posisi bit low order pada register A, dan seterusnya, sehingga byte keempat menempati posisi bit high-order, byte kelima menempati posisi bit low-order pada B, dan byte kedelapan (terakhir) menempati posisi bit high order di B.<br />
Proses enkripsi<br />
Kita asumsikan bahwa blok input diberikan dalam dua register w-bit A dan B. Kita juga mengasumsikan bahwa key expansion telah dijalankan, sehingga array S[0…t – 1] telah dihitung. Berikut ini adalah algoritma enkripsi dalam pseudo-code.<br />
A=A+S[0];<br />
B=B+S[1];<br />
for i=1 to r do<br />
A=((A  B) &lt;&lt;&lt; B) + S[2 * i];<br />
B=((B A) &lt;&lt;&lt; A) + S[2 * I + 1];<br />
Outputnya berada di dalam register A dan B.    Kita mencatat (atau memperhatikan) exceptional simplity dari 5 baris algoritma ini.<br />
Kita juga mencatat bahwa setiap round (putaran) RC5 meng-update kedua register A dan B, dimana satu “round” dalam DES hanya meng-update setengah dari registernya. Suatu “half-round” RC5 (satu dari pernyataan penugasan meng-update A atau B dalam body dari loop diatas) mungkin lebih dapat dianalogi terhadap satu round DES).</p>
<p>Gambar 3. Algoritma enkripsi RC-5<br />
Dari flow chart diatas, A merupakan plaintext  yang diproses disebelah kiri setelah ditambahkan dengan dengan hasil key  ekspansi dan B merupakan bagian plaintext  yang diproses disebelah kanan yang juga ditambahkan dengan hasil key  ekspansi.  Tahap berikutnya dilakukan proses EX-OR terhadap masing-masing plantext dan dilakukan rotasi (putaran). Setelah dilakukan putaran sebanyak r  kali, data-data  ini digabungkan kembali membentuk ciphertext yang telah siap dikirimkan ke penerima atau diproses selanjutnya.<br />
Proses dekripsi<br />
Proses dekripsi dilakukan penerima terhadap data yang sudah dalam bentuk  ciphertext. Proses ini dapat dilakukan dengan algoritma sebagai berikut :<br />
for i= r downto 1 do<br />
B=((B – S [2 * i + 1]) &gt;&gt;&gt; A)  A;<br />
A=((A – S [2 * i]) &gt;&gt;&gt; B)   B;<br />
B= B- S[1];<br />
A= A – S[0];<br />
Data-data dari ciphertext dikembangkan menjadi dua bagian A dan B selanjutnya di lakukan pengurangan dengan hasil key ekspansi dan dirotasi sebanyak r sambil dilakukan operasi EX-OR terhadap data tersebut. Tahap akhir untuk mendapatkan plaintext adalah dengan melakukan kembali proses pengurangan ke masing-masing bagian dengan hasil key  ekspansi. Data-data ini kemudian digabungkan kembali membentuk plaintext sesuai dengan yang dikirimkan pengirim atau data awal sebelum proses enkripsi.<br />
Key Expansion<br />
Rutin key expansion memperluas kunci rahasia user K untuk mengisi array key yang diperluas S, sehingga S menyerupai suatu array t = 2(r + 1) word biner random yang ditentukan oleh K. Algoritma key expansion menggunakan dua “magic constants”, dan terdiri dari tiga bagian algoritmik sederhana.<br />
Definisi dari Magic Constants. Algoritma key-expansion menggunakan dua konstanta biner berukuran word Pw dan Qw. Konstanta biner tersebut didefinisikan untuk sembarang w sebagai berikut :</p>
<p>Dimana :<br />
e = 2.718281828459  Nilai logaritma dasar<br />
 = 1.6180333988749  golden ratio<br />
Dimana Odd(x) (bilangan ganjil (x))adalah integer ganjil (odd) terdekat terhadap x (dibulatkan keatas jika x adalah integer genap, meskipun hal ini tidak terjadi disini). Untuk w = 16, 32, dan 64, konstanta ini diberikan berikut ini dalam biner dan dalam heksadesimal.<br />
P16= 1011011111100001 = b7e1.<br />
Q16= 1001111000110111= 9e37.<br />
P32= 10110111111000010101000101100011 = b7e15163.<br />
Q32=10011110001101110111100110111001 = 9e3779b9.<br />
P62= 1011011111100001010100010110001010001010111011010010101001101011<br />
= b7e151628aed2a6b.<br />
Q64= 1001111000110111011110011011100101111111010010100111110000010101<br />
= 9e3779b97f4a7c15.</p>
<p>Merubah Kunci Dari Bit Ke Word<br />
Langkah algoritmik pertama dari key expansion adalah untuk meng-copy kunci rahasia K[0…b – 1] ke array L[0…e – 1] dari word c = [b/u], dimana u = w/8 adalah jumlah byte/word. Operasi ini dilakukan dalam cara yang alami, menggunakan kunci byte konsekutif (berulang) u dari K untuk memenuhi setiap word dalam L, byte low order sampai byte high order. Posisi byte yang tidak terisi dari L dibuat 0. pada kasus ini b = c = 0 kita me-reset c ke 1 dan me-set L[0] menjadi 0.<br />
Pada mesin “little-endian” seperti pada Intel 486, task diatas dapat diselesaikan hanya dengan membuat array L menjadi 0, dan kemudian meng-copy string K secara langsung ke posisi memori yang merepresentasikan L. Pseudocode berikut ini mencapai efek yang sama, diasumsikan semua byte adalah “unsigned” dan semula array L dibuat 0.<br />
C=[max(b,1)/u]<br />
for i=b-1 downto 0 do<br />
L[i/u]=(L[i/u] &lt;&lt;&lt;8) +K[i];<br />
Menginisialisasi Array S<br />
Langkah algoritmik kedua dari key expansion adalah untuk menginisialisasi array S menjadi pola bit pseudo-random tertentu yang tetap (key-independent), menggunakan deret aritmetika modulo 2w ditentukan oleh “magic constant” Pw dan Qw. Karena Qw ganjil, deret  aritmetik memiliki periode 2w.<br />
S[0] = Pw;<br />
for i=1 to t-1 do<br />
S[i] = S[i-1]+Qw;<br />
Dari algoritma diatas terlihat bahwa pada kondisi 0 S[0] berisi Pw dan pada itersi i=1 dan seterusnya, S[i]  akan berisi S[i-1] + Qw.<br />
Penggabungan Kunci<br />
Langkah algoritmik ketiga dari key expansion adalah untuk menggabungkan kunci rahasia user dalam tiga cara pada array S dan L. Lebih  tepatnya, dikarenakan ukuran yang berbeda secara potensial pada S dan L, array yang lebih besar akan diproses tiga kali, dan yang lainnya dapat ditangani lebih dari tiga kali. Bentuk algoritma proses dapat dilihat berikut ini :<br />
i=j=0;<br />
A=B=0;<br />
do 3 * max(t,c) times<br />
A=S[i]=(S[i]+A+B) &lt;&lt; 3;<br />
B=L[j]=(L[j]+A+B) &lt;&lt; (A+B);<br />
i=(i+1) mod (t);<br />
j=(j+1) mod(c);</p>
<p>Bentuk Implementasi Dalam Bahasa C<br />
Implementasi ini dilakukan terhadap format RC-5 32bit, 12 putaran dengan 16 byte kata kunci [7].<br />
# include &lt;stdio.h&gt;<br />
typedef unsigned long int WORD; /* Panjang word 32bit=4 byte*/<br />
#define w    32 /* Ukuran word dalam bit*/<br />
#define r        12 /* Jumlah putaran*/<br />
#define b    16 /* Jumlah kata kunci*/<br />
#define c    4  /* Jumlah word*/</p>
<p>#define t    26      /* Ukuran tabel S=2*(r+1)*/</p>
<p>WORD S[t];    /* Tabel pengembangan key*/<br />
WORD P = 0xb7e15163, Q=0&#215;9e3779b9; /* Konstanta magic*/</p>
<p>/* Operasi putaran*/<br />
#define ROTL (x,y) (((x)&lt;&lt;(y&amp;(w-1)))|((x)&gt;&gt;(w-(y&amp;(w-1)))))<br />
#define ROTR (x,y) (((x)&gt;&gt;(y&amp;(w-1)))|((x)&lt;&lt;(w-(y&amp;(w-1)))))</p>
<p>void RC5_ENCRYPT (WORD *pt, WORD *ct) /* proses enkripsi*/<br />
{<br />
WORD i, A=pt[0]+S[0], B=pt[1]+S[1];<br />
for (i=1;i&lt;=r;i++)<br />
{<br />
A=ROTL (A^B,B)+S[2*i];<br />
B=ROTL (B^A,A)+S[2*i+1];<br />
}<br />
ct[0]=A; ct[1]=B;<br />
}</p>
<p>void RC5_DECRYPT (WORD *ct, WORD *pt) /* Proses dekripsi*/<br />
{<br />
WORD i, B=ct[1], A=ct[0];<br />
for (i=r;i&gt;0;i&#8211;)<br />
{<br />
B=ROTR (B-S[2*i+1],A)^A;<br />
A=ROTR (A-S[2*i],B)^B;<br />
}<br />
pt[1]=B-S[1]; pt[0]=A-S[0];<br />
}<br />
void RC5_SETUP (unsigned char *k) /* Proses input kunci rahasia*/<br />
{<br />
WORD i, j,k, u=w/8, A, B, L[c];<br />
for (i=b-1,L[c-1]=0;i!=-1;i&#8211;)<br />
L[i/u]= (L[i/u]&lt;&lt;8) +K[i];<br />
for (S[0]=P,i=1; i&lt;t; i++)<br />
S[i] = S[i-1]+Q;<br />
for (A=B=i=j=k=0;k&lt;3*t;k++,i=(i+1)%t,j=(j+1)%c)<br />
{<br />
A=S[i]=ROTL (S[i]+(A+B),3);<br />
B=L[j]=ROTL (L[j]+(A+B),(A+B));<br />
}<br />
}<br />
void printword(WORD A) /* Proses input plaintext acak*/<br />
{<br />
WORD k;<br />
for (k=0;k&lt;w;k+=8)<br />
printf (&#8220;%02.21X&#8221;,(A&gt;&gt;k)&amp;0xFF);<br />
}<br />
void main()/* Program utama*/<br />
{<br />
WORD i,j,k,pt1[2],pt2[2],ct[2]={0,0};<br />
unsigned char key[b];<br />
if (sizeof(WORD) !=4)<br />
printf (&#8220;RC5 ERROR : WORD has %d bytes.\n&#8221;,sizeof(WORD));<br />
printf (&#8220;RC5-32/12/16 examples : \n&#8221;);<br />
for (i=1;i&lt;6;i++)<br />
{<br />
pt1[0]=ct[0];pt[1]=ct[1];<br />
for (j=0;j&lt;b;j++)key[j]=ct[0]%(255-j);<br />
RC5_SETUP(key);<br />
RC5_ENCRYPT (pt1,ct);<br />
RC5_DECRYPT(ct,pt2);<br />
printf(&#8220;\n%d. key= &#8220;,i);<br />
for (j=0;j&lt;b;j++)<br />
printf (&#8220;02.2X&#8221;,key[j]);<br />
printf (&#8220;\n Plaintext &#8220;);<br />
printword(pt1[0]);<br />
printword(pt1[1]);<br />
printf(&#8220;&#8212;-&gt; ciphertext &#8220;);<br />
printf word(ct[0]);<br />
print word(ct[1]);<br />
printf(&#8220;\n&#8221;);<br />
if (pt1[0] !=pt2[0] || pt1[1] !=pt2[1])<br />
printf (&#8220;Decryption Error&#8221;);<br />
}<br />
}</p>
<p>Hasil simulasi program adalah :<br />
Key = 91 5F 46 19 BE 41 B2 51 63 55 A5 01 10 A9 CE 91<br />
Plaintext     = 21A5DBEE154B8F6D<br />
chipertext     = F7C013AC5B2B8952</p>
<p>4. Analisis Tingkat Keamanan RC-5<br />
Suatu putaran mengandung dua persamaan yang disimpan dalam buffer A dan B atau dalam bentuk lain. Pada setengah putaran, dapat dijelaskan dengan mengacu kepada persamaan yang dikemukakan oleh Feistel ciphers sebagai berikut;<br />
L1=L0 +S0<br />
R1=R0+S1<br />
For  i = 2 to n do<br />
Li= Ri-1<br />
Ri=((Li-1  Ri-1) &lt;&lt; Ri-1)+Si<br />
Dari persamaan diatas L1 dan R1  bagian dari plaintext yang dikembangkan menjadi dua bagian kiri dan kanan yang merupakan input dan Li dan Ri  adalah merupakan output chipertext. Pada setengah putaran pertama input blok RC-5 (plaintext) adalah L0, R0 dan blok output chipertext adalah Ln, Rn.<br />
Konsep dasar untuk menganalisa cara memecahkan RC-5 dilakukan dengan dengan meganalisa struktur rutin enkripsi, dimana konsep ini berusaha menemukan kunci rahasia dan tabel pengembangan key S.  Proses iterasi yang dilakukan untuk mendapatkan kunci rahasia dan tabel pengembangannya didekati dengan perhitungan Ln-1 (b)  pada range 0≤ b≤w-1. Pada setengah putaran yang terakhir, Ln dan Rn akan didapat dengan persamaan berikut ini :<br />
Ln  = Rn-1;<br />
Rn  = (( Ln-1 Rn-1) &lt;&lt;&lt; Rn-1)+Sn<br />
Terdapat 4 variable dalam persamaan kedua diantaranya Rn dan Rn-1, hal ini dapat diketahui dari chipertext. Jika kita mengetahui informasi tentang Ln-1 akan membantu bagaimana mengetahui subkey Sn yang digunakan untuk proses chipertext. Untuk mendapatkan hubungan persamaan dari keempat variable diatas terhadap proses rotasi Rn-1 mod w. Pertama, kita asumsikan kasus khusus dimana (b+Rn-1) mod w = 0.  Pada kasus ini bit Ln-1[b])  Rn-1 [b] pindah keposisi bot 0 setelah rotasi. Dengan demikian didapat persamaannya sebagai berikut :<br />
Rn[0]=(Ln-1[b]  Rn-1[b] Sn[0].<br />
Pada awalnya, Rn[0] dan Rn-1[b] diketahui, jika kita dapat menghitung Ln-1[b], selanjutnya dapat diperoleh Sn[0], bit yang kurang penting dari subkey Sn.<br />
Kekuatan dari penyandian bergantung kepada jumlah kunci yang digunakan [3]. Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang digunakan. Untuk itu, kunci yang lemah tersebut tidak boleh digunakan. Selain itu, panjangnya kunci, yang biasanya dalam ukuran bit, juga menentukan kekuatan dari enkripsi. Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek. Jadi enkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan dengan algoritma enkripsi yang sama tetapi dengan kunci 56-bit. Semakin panjang sebuah kunci, semakin besar keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack atau coba-coba karena keys pace yang harus dilihat merupakan pangkat dari bilangan 2. Jadi kunci 128-bit memiliki keyspace 2128, sedangkan kunci 56-bit memiliki key space 256. Artinya semakin lama kunci baru bisa ketahuan.<br />
Beberapa cara telah dikembangkan oleh seorang pemecah enkripsi untuk menganalisa keamanan block cipher  dalam memecahkan chipertext. Jika sebuah key memiliki n bit,kemudian terdapat 2n kemungkinan key yang akan diuji. Ketika ukuran key lebih besar dari ukuran blok, akan terdapat peningkatan kemungkinan pemecahan enkripsi. Test statisktik bisa digunakan untuk menganalisa prilakuk blok chipertext. Blok chipertext  yang memiliki tingkat keamanan yang tinggi akan berprilaku seperti suatu permutasi yang random  (acak) dari  sebuah key yang random juga. Jadi dari informasi dengan statistik diatas sangat sulit untuk memecahkan sebuah enkripsi dengan key dan permutasi yang acak, kecuali dengan analis yang sangat mendalam.<br />
RC-5 menggunakan konsep seperti yang diuraikan diatas, yaitu memiliki jumlah key yang dapat divariasikan dan jumlah rotasi yang dapat ditentukan untuk mendapatkan tingkat keamanan yang diinginkan. Disamping itu proses pengembangan key (key expansion) dilakukan secara acak, yang akan menghasilkan key hasil pengembangan yang juga acak, key hasil pengembangan inilah yang akan digabungkan dengan plaintext. Jadi secara statistik sangat sulit memecahkan kode enkripsi RC-5 yang menggunakan jumlah key  yang semakin banyak walapun banyak pihak yang sudah berusaha memecahkan algoritma ini.<br />
Pada tahun 1995 Kaliski dan Yin [7] berhasil memecahkan RC-5 hanya satu tahun setelah dipublikasikan. Mereka melakukan pemecahan dengan menanalisa struktur dasar rutin, yaitu rotasi data idependent, Pada tahun 96` Knudsen dan Meier melakukan perbaikan pemecahan yang dilakukan oleh Kaliski dan Yin dengan menganalisa secara hati-hati hubungan antara input dan subkey. Kemudian pada tahun 1998 Biryukov dan Kushilevitz melakukan perbaikan konsep pemecahan yang dikemukakan oleh Knudsen dan Meier. Mereka  mempelajari lebih komplek dan melakukan suatu perkiraan yang umum rotasi data dependent dari enkripsi dan pemecahannya. Mereka memperkirakan untuk memecahkan RC-5  dengan 12 putaran dengan data 64 bit dibutuhkan waktu penyelesaian 255 dan dibuatnya dalam bentuk tabel berikut ini untuk data 64 bit:<br />
Jumlah Putaran<br />
4<br />
6<br />
8<br />
10<br />
12<br />
14<br />
16<br />
18<br />
Iterasi proses plaintext<br />
(chosen plaintext)<br />
27<br />
216<br />
228<br />
236<br />
244<br />
252<br />
261<br />
&gt;<br />
Iterasi pemecahan plaintext<br />
(known plaintext)<br />
236<br />
241<br />
247<br />
251<br />
255<br />
259<br />
263<br />
&gt;</p>
<p>Dari uraian dan tabel diatas dapat disimpulkan, bahwa RC-5 dapat dipecahkan dan membutuhkan waktu iterasi pemecahan yang cukup lama tergantung jumlah putaran yang digunakan seperti yang terlihat pada tabel diatas berdasarkan syarat dibaris kedua dan ketiga. Semakin tinggi jumlah putaran yang dilakukan semakin lama proses pemecahan, dimana jumlah putaran ditentukan saat prose enkripsi. Jumlah putaran juga menentukan tabel pengambangan key yang digunakan. Jadi semakin banyak jumlah kata kunci dan putaran yang digunakan, maka semakin lama waktu yang dibutuhkan untuk memecahkan enkripsinya dan tingkat keamanan semakin tinggi.</p>
<p>5. Feature-Feature RC-5<br />
Algoritma memiliki keuntungan-keuntungan dalam implementasinya. Hal ini dapat digunakan oleh pemakai untuk memilih atau sebagai pertimbangan dalam memilih menggunakan RC-5 [5].<br />
Keuntungan-keuntungan yang dimiliki RC-5 adalah sebagai berikut:<br />
RC-5 menggunakan metode enkripsi simetrik, sehingga key yang sama digunakan untuk proses enkripsi dan dekripsi.<br />
RC-5 dapat diimplentasikan dengan hard ware ataupun soft ware, dimana RC-5 menggunakan dasar operasi komputasi yang biasa digunakan pada konsep dasar mikroprosesor.<br />
RC-5 mempunyai kemampuan proses enkripsi dan dekripsi yang cepat, besar nya kemampuan ini diperlihatkan dengan cara kerja beroreantasi pada kata  (word).<br />
RC-5 dapat disesuaikan untuk bermacam-macam prosesor yang memiliki panjang bit data yang berbeda. Contohnya untuk prosesor 64 bit dapat dipakai untuk RC-5 dengan panjang kata yang diolah lebih panjang atau disesuaikan dengan kemampuan prosesor tersebut.<br />
RC-5 memiliki struktur yang iterative dengan variabel jumlah rotasi (putaran), sehingga pengguna secara eksplisit dapat memanipulasi trade off antara kecepatan dan tingkat keamanan.<br />
RC-5 mempunyai variabel panjang key word yang dapat divariasikan, sehingga pengguna dapat memilih tingkat keamanan yang dikehendaki sesuai dengan aplikasi yang digunakan.<br />
RC-5 sangat sedehana sehingga mudah untuk diimplementasikan.<br />
RC-5 membutuhkan memori yang kecil.</p>
<p>6. Pengembangan RC-5<br />
Pengembangan RC-5 didasari kepada keinginan untuk mendapatkan tingkat keamanan yang tinggi agar sulit dipecahkan. Ada beberapa pengembangan yang sudah dilakukan diantaranya [7]:<br />
A. RC5XOR<br />
Konsep pengembangan ini didasari kepada proses pertukaran penjumlahan dengan operasi EX-OR. Jadi semua operasi dasar penjumlahan digantikan dengan operasi EX-OR seperti pada algoritma berikut ini :<br />
Ri=((Li-1 Ri-1) &lt;&lt;&lt; Ri-1)  Si<br />
B. RC5P<br />
Konsep pengembangan ini berlawanan dengan proses diatas, yaitu dengan melakukan pertukaran operasi EX-OR dengan operasi penjumlahan. Jadi operasi yang dilakukan terhadap plaintext  hanya dilakukan operasi penjumlahan.<br />
Ri=((Li-1+ Ri-1) &lt;&lt;&lt; Ri-1) + Si<br />
C. RC5PFR<br />
Konsep pengembangan ini memasukan jumlah putaran ri dengan jumlah yang tetap. Proses putaran diberikan dengan nilai yang tetap dan tidak tergantung pada pengembangan sisi kanan dari plaintext.<br />
Ri=((Li-1 Ri-1) &lt;&lt;&lt; ri) + Si<br />
D. RC5KFR<br />
Konsep pengembangan ini memasukan jumlah putaran ri (K) yang didapat dari kunci rahasia K. Konsep putaran yang digunakan tergantung kepada jumlah key  yang digunakan. Jadi semakin banyak jumlah key yang digunakan semakin banyak jumlah putaran yang dilakukan.<br />
Ri=((Li-1 Ri-1) &lt;&lt;&lt; ri(K)) + Si<br />
F. RC5RA<br />
Konsep pengembangan ini memasukan jumlah putaran f (Ri-1) yang teragnatung pada jumlah bit Ri-1.<br />
Ri=((Li-1 Ri-1) &lt;&lt;&lt; f(Ri-1)) + Si<br />
G. RC6<br />
Pengembangan yang terbaru dari RC-5 disebut dengan RC-6. Konsep dasar pengembangan ini menggunakan putaran fungsi kuadratik berikut ini terhadap 5 bit bagian atas. f(x)=x(2x+1) mod 223.</p>
<p>7. Penutup<br />
Pada kondisi nyata, semua algoritma enkripsi data yang ada masih dapat dipecahkan kuncinya oleh para kritoanalis, hal ini menunjukan bahwa tidak ada algoritma enkripsi data yang sempurna, termasuk juga disini algoritma RC-5. Untuk enkripsi model RC-5 masih terdapat beberapa kelebiha dan kelemahan yaitu diantaranya;.<br />
A.Kelebihan<br />
Kesulitan mengetahui sebuah nilai dalam table pengembangan key karena prose pengembangan key  dilakukan secara random.<br />
Algoritma enkripsi ini dapat diimplementasikan dalam bentuk hard ware, karena pada dasarnya algoritm in menggunakan operasi yang dapat dilakukan oleh perangkat keras seperti prosesor. Hal ini telah dibuktikan oleh E. Chitalwala1, T. El-Ghazawi1, N.Alexandridis1 dan K.Gaj2.<br />
1 The George Washington University, Washington DC.<br />
2 George Mason University, Fairfax.</p>
<p>Tingkat keamanan dari enkripsi yang dilakukan dapat dipilih dengan<br />
menggunakan jumlah kata kunci yang digunakan, hal ini terlihat bahwa jumlah kata kunci akan menentukan jumlah pembagian plaintext yang akan dienkripsi.<br />
B.Kekurangan<br />
Algoritma RC-5 dapat diserang dengan menggunakan analisa dari bagian table pengembangan kunci rahasia.<br />
Salah satu kelemahan umum dari metode enkripsi simetrik adalah masalah manajemen kunci. Hal ini juga terdapat pada RC-5, dimana penerima harus memiliki kunci yang sama untuk membuka chipertext yang dikirimkan kepadanya. Hal ini juga merupakan suatu kelemahan yang dapat dimanfaatkan oleh penyerang.<br />
Daftar Pustaka<br />
1.Bruce Schneier, Applied Cryptography : Protocols, Algorithms, and Source Code in C, 2nd Edition<br />
2.Wahana Komputer &amp; Andi Yogyakarta,” Penanganan Jaringan Komputer”, Semarang, Yogyakarta,2002.<br />
3.Budi Rahardjo,” Keamanan Sistem informasi Berbasis Internet”, PT Insan Komunikasi Indonesia, Bandung, 2002.<br />
4.Bambang Hariyanto,”Sistem Operasi”,Jilid I, Informatika Bandung,1997.<br />
5.Kristianto, Andi, KEAMANAN DATA pada JARINGAN KOMPUTER, Gava Media, Yogyakarta, 2003<br />
6.Wahana Komputer Semarang, Memahami MODEL ENKRIPSI &amp; SECURITY DATA, Andi Offset, Yogyakarta, 2003<br />
7.http://grc.com/r&amp;d/rc5-report.pdf<br />
8.ftp://ftp.auscert.org.au/pub/coast/COAST/Tripwire/*</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=23&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/10/03/algoritma-enkripsi-rivest-code-5-rc-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>Mengoptimalkan Kinerja / Kerja Windows XP</title>
		<link>http://kriptologi.wordpress.com/2008/01/22/mengoptimalkan-kinerja-kerja-windows-xp/</link>
		<comments>http://kriptologi.wordpress.com/2008/01/22/mengoptimalkan-kinerja-kerja-windows-xp/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 03:30:07 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Ilmu Pendukung Kriptografi]]></category>
		<category><![CDATA[Komputer]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/2008/01/22/mengoptimalkan-kinerja-kerja-windows-xp/</guid>
		<description><![CDATA[Menarik nich kan sekarang jamannya teknologi, nah ini adalah Tips and Trick untuk pengguna Windows XP sejati, Enjoy your Read&#8230;
Memindahkan Pagefile 
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session  Manager/Memory Management 
Klik ganda PagingFiles  kemudian ganti path ke lokasi baru yang diinginkan. 
Misalnya: D:\pagefile.sys 1024 1024 
Mengembalikan Fungsi Search Kedalam Tampilan Lama 
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/CabinetState 
Pilih menu Edit &#62; New &#62; String [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=21&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Menarik nich kan sekarang jamannya teknologi, nah ini adalah Tips and Trick untuk pengguna Windows XP sejati, Enjoy your Read&#8230;</p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Memindahkan Pagefile </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session  Manager/Memory Management </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda PagingFiles  kemudian ganti path ke lokasi baru yang diinginkan. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Misalnya: D:\pagefile.sys 1024 1024 </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Mengembalikan Fungsi Search Kedalam Tampilan Lama </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/CabinetState </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Pilih menu Edit &gt; New &gt; String Value dan  beri nama UseSearchAsst. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda  UseSearchAsst dan masukkan angka 1 pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menyembunyikan Device Manager </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Pilih menu Edit &gt; New &gt; Key dan beri nama  System. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Di subkey System buatlah sebuah DWORD  Value baru dan beri nama NoDevMgrPage. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik  ganda NoDevMgrPage dan masukkan angka 1 pada Value  Data. </span></span><br />
<span style="font-size:10pt;"></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;"><span style="font-weight:bold;">Mengoptimalkan Hard Disk Disaat  Komputer Dalam Keadaan Idle </span></span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr  entVersion\OptimalLayout </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah sebuah DWORD  Value Baru dan beri nama EnableAutoLayout. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik  ganda EnableAutoLayout dan masukkan angka 1 pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menghilangkan Opsi Run As Pada Menu  Konteks </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre  ntVersion\Policies\Explorer </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr  entVersion\Policies\Explorer </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah sebuah  DWORD Value baru dan beri nama HideRunAsVerb. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda HideRunAsVerb dan masukkan angka 0 pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menonaktifkan Windows XP Tour </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre  ntVersion\Applets\Tour </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr  entVersion\Applets\Tour </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah sebuah DWORD  Value baru jika belum ada dan beri nama RunCount. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda RunCount dan masukkan angka 0 pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menyimpan Perubahan Pada Konfigurasi  Notepad </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER\Software\Microsoft\Notepad </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah masing-masing DWORD Value baru dan beri nama  fSavePageSettings dan fSaveWindowPositions. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik  ganda pada fSavePageSettings dan fSaveWindowPositions dan masukkan angka 1 pada  masing-masing Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Informasi  Terperinci Di Device Manager </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session  Manager\Environment </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah sebuah String Value  baru atau ubah String Value yang telah ada yang bernama DEVMGR_SHOW_DETAILS. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda DEVMGR_SHOW_DETAILS dan masukkan  angka 1 pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menunjukkan  Semua Hidden Devices Pada Device Manager </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session  Manager\Environment </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah sebuah String Value  baru dan beri nama DEVMGR_SHOW_NONPRESENT_DEVICES. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda DEVMGR_SHOW_NONPRESENT_DEVICES dan masukkan angka 1  pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menonaktifkan Task  Manager </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre  ntVersion\Policies\System </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr  entVersion\Policies\System </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Buatlah DWORD Value  baru dan beri nama DisableTaskMgr. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda  DisableTaskMgr dan masukkan 1 pada Value Data. </span></span></p>
<p><span style="font-size:10pt;"><span style="font-weight:bold;font-size:85%;font-family:Georgia;">Menggunakan Smooth Scrolling Di Internet Explorer </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">HKEY_CURRENT_USER\Software\Microsoft\Internet  Explorer\Main </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Jika belum ada, buatlah sebuah  DWORD Value baru dan beri nama SmoothScroll. </span></span><br />
<span style="font-size:10pt;"><span style="font-size:85%;font-family:Georgia;">Klik ganda SmoothScroll dan masukkan angka 1 pada Value Data. </span></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kriptologi.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kriptologi.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=21&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2008/01/22/mengoptimalkan-kinerja-kerja-windows-xp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>SCOP &#8221; THE FAST STREAM CIPHER &#8220;</title>
		<link>http://kriptologi.wordpress.com/2007/11/27/scop-the-fast-stream-cipher/</link>
		<comments>http://kriptologi.wordpress.com/2007/11/27/scop-the-fast-stream-cipher/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 04:57:04 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Kriptografi]]></category>
		<category><![CDATA[Stream Cipher]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/2007/11/27/scop-the-fast-stream-cipher/</guid>
		<description><![CDATA[ 	 	 	 	
SCOP “THE FAST STREAM CIPHER”
&#160;
A.Abstraksi
SCOP 	merupakan salah satu contoh dari kriptografi kunci simetrik, dalam 	hal ini stream 	cipher. 	SCOP diciptakan oleh Simeon V. Maltchev dan Peter T. Antonov, 	kemudian dikembangkan secara khusus, sehingga terciptalah SCOP yang 	lebih efisien kinerjanya pada prosesor Intel Pentium. Secara 	teoritis SCOP dapat mengerjakan 1,5 clock 	cycles [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=15&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> 	 	 	 	<!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 		H1 { margin-bottom: 0.08in } 		H1.western { font-family: "DejaVu Sans", serif } 		H1.cjk { font-family: "DejaVu Sans" } 		H1.ctl { font-family: "DejaVu Sans" } 		H2 { margin-bottom: 0.08in } 		H2.western { font-family: "DejaVu Sans", serif } 		H2.cjk { font-family: "DejaVu Sans" } 		H2.ctl { font-family: "DejaVu Sans" } 	--></p>
<p align="center"><font color="#000080"><u><a href="http://kriptologi.wordpress.com/2007/10/20/scop-%E2%80%9Cthe-fast-stream-cipher"><font size="5"><span><strong>SCOP “THE FAST STREAM CIPHER”</strong></span></font></a></u></font></p>
<p dir="ltr">&nbsp;</p>
<p align="center"><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span><u>A.Abstraksi</u></span></font></strong></p>
<p style="margin-left:.97in;margin-right:.93in;" align="center"><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>SCOP</span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	merupakan salah satu contoh dari kriptografi kunci simetrik, dalam 	hal ini </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>stream 	cipher</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>. 	SCOP diciptakan oleh Simeon V. Maltchev dan Peter T. Antonov, 	kemudian dikembangkan secara khusus, sehingga terciptalah SCOP yang 	lebih efisien kinerjanya pada prosesor Intel Pentium. Secara 	teoritis SCOP dapat mengerjakan 1,5 </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>clock 	cycles</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	per byte. Skema cipher ini didisain dengan sebuah S-box yang </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>key 	dependent</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 	dengan bagian pertama berubah secara dinamis pada proses enkripsi 	dan sebagian lagi merupakan bagian statik. Cipher ini bekerja dalam 	</span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>internal-feedback 	mode</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	(IFB). </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Keystream</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	terdiri dari 32-bit </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>word</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dan dihasilkan secara independen dari pesan enkripsi. Algoritma 	enkripsi SCOP tidak dipatenkan oleh penciptanya, sehingga </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>source 	code</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>nya 	dapat digunakan oleh siapa saja dengan acara mendownloadnya lewat 	internet, tanpa harus membayarkan royalti kepada penciptanya.</span></font></p>
<h1 class="western"></h1>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><u><strong>B.Pendahuluan</strong></u></font></p>
<p align="justify"><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    Kriptografi</span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 	secara umum adalah </span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Ilmu"><font face="Arial, sans-serif"></font><font size="3"><span>ilmu</span></font></a></u></font><font color="#000000"></font><font size="3"><span> 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>dan 	</span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Seni"><font face="Arial, sans-serif"></font><font size="3"><span>seni</span></font></a></u></font><font color="#000000"></font><font size="3"><span> 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>untuk 	menjaga kerahasiaan </span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Berita"><font face="Arial, sans-serif"></font><font size="3"><span><span>berita</span></span></font></a></u></font><font color="#000000"></font><font size="3"><span> 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>[bruce 	Schneier - </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Applied 	Cryptography</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>]. 	Selain pengertian tersebut terdapat pula pengertian ilmu yang 	mempelajari teknik-teknik </span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Matematika"><font face="Arial, sans-serif"></font><font size="3"><span><span>matematika</span></span></font></a></u></font><font color="#000000"></font><font size="3"><span> 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>yang 	berhubungan dengan </span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Aspek_keamanan_informasi"><font face="Arial, sans-serif"></font><font size="3"><span>aspek 	keamanan informasi</span></font></a></u></font><strong><font color="#000000"></font><font size="3"><span> 	</span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>seperti 	</span></font><font color="#000080"><u><a href="http://id.wikipedia.org/w/index.php?title=Kerahasiaan_data&amp;action=edit"><font face="Arial, sans-serif"></font><font size="3"><span>kerahasiaan 	data</span></font></a></u></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 	</span></font></strong><font color="#000080"><u><a href="http://id.wikipedia.org/w/index.php?title=Keabsahan_data&amp;action=edit"><font face="Arial, sans-serif"></font><font size="3"><span>keabsahan 	data</span></font></a></u></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 	</span></font></strong><font color="#000080"><u><a href="http://id.wikipedia.org/w/index.php?title=Integritas_data&amp;action=edit"><font face="Arial, sans-serif"></font><font size="3"><span>integritas 	data</span></font></a></u></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 	</span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>serta 	</span></font><font color="#000080"><u><a href="http://id.wikipedia.org/w/index.php?title=Autentikasi_data&amp;action=edit"><font face="Arial, sans-serif"></font><font size="3"><span><span>autentikasi 	data</span></span></font></a></u></font><font color="#000000"></font><font size="3"><span> 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>[A. 	Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied 	Cryptography]. Namun tidak semua aspek keamanan</span></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	</span></font></strong><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Informasi"><font face="Arial, sans-serif"></font><font size="3"><span><span>informasi</span></span></font></a></u></font><font color="#000000"></font><font size="3"><span> 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>ditangani 	dengan menggunakan teori-teori kriptografi.Pada dasarnya terdapat 	4(empat) tujuan mendasar dari ilmu kriptografi. Hal tersebut juga 	merupakan bagian dari aspek-aspek keamanan informasi yaitu :</span></font></p>
<ul>
<li>
<p align="justify"><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Kerahasiaan"><font face="Arial, sans-serif"></font><font size="3"><span>Kerahasiaan</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		adalah layanan yang digunakan untuk menjaga isi dari informasi dari 		siapapun kecuali yang memiliki otoritas atau </span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Kunci_%28kriptografi%29"><font face="Arial, sans-serif"></font><font size="3"><span>kunci 		rahasia</span></font></a></u></font><font color="#000000"></font><font size="3"><span> 		</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>untuk 		membuka/mengupas informasi yang telah </span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Enkripsi"><font face="Arial, sans-serif"></font><font size="3"><span>disandi</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>.</span></font><font color="#000000"></font><font size="3"><span> 		</span></font></p>
</li>
</ul>
<ul>
<li>
<p align="justify"><a href="http://id.wikipedia.org/w/index.php?title=Integritas&amp;action=edit"><font color="#000080"><u><font face="Arial, sans-serif"></font><font size="3"><span>Integri</span></font></u></font><font color="#000080"><u><font face="Arial, sans-serif"></font><font size="3"><span>tas 		Data</span></font></u></font></a><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		adalah berhubungan dengan penjagaan dari perubahan data secara 		tidak sah. Untuk menjaga integritas data, sistem harus memiliki 		kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang 		tidak berhak, antara lain penyisipan, penghapusan, dan 		pensubsitusian data lain kedalam data yang sebenarnya.</span></font><font color="#000000"></font><font size="3"><span> 		</span></font></p>
</li>
</ul>
<ul>
<li>
<p align="justify"><font color="#000080"><u><a href="http://id.wikipedia.org/w/index.php?title=Autentikasi&amp;action=edit"><font face="Arial, sans-serif"></font><font size="3"><span>Autentikasi</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		adalah berhubungan dengan identifikasi/pengenalan, baik secara 		kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling 		berkomunikasi harus saling memperkenalkan diri. Informasi yang 		dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, 		waktu pengiriman, dan lain-lain. </span></font></p>
</li>
</ul>
<ul>
<li>
<p align="justify"><font color="#000080"><u><a href="http://id.wikipedia.org/w/index.php?title=Non-repudiasi.&amp;action=edit"><font face="Arial, sans-serif"></font><font size="3"><span>Non-repudiasi</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		atau penyangkalan adalah usaha untuk mencegah terjadinya 		penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh 		yang mengirimkan/membuat. </span></font></p>
</li>
</ul>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>  Dalam 	kriptografi terdapat 2(dua) proses utama yaitu menyandi(enkripsi) 	dan membuka sandi(dekripsi).</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	Proses menyandi/enkripsi dapat diartikan juga sebagai kode atau 	</span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>cipher.</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	Sebuah sistem pengkodean menggunakan suatu tabel atau kamus yang 	telah didefinisikan untuk kata dari informasi atau yang merupakan 	bagian dari pesan, data, atau informasi yang akan dikirimkan. Sebuah 	</span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>cipher</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	menggunakan suatu algoritma yang dapat mengkodekan semua aliran 	data(</span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>stream</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>) 	yang berbentuk bit dari suatu pesan asli(</span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>plaintext</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>) 	menjadi sebuah </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>cryptogram</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	yang tidak dapat dimengerti, kecuali jika dibuka/didekripsikan 	kembali menjadi </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>plaintext</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>.</span></font></p>
<p style="text-indent:.25in;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> Pengamanan 	pesan, data, atau informasi tersebut selain bertujuan untuk 	meningkatkan keamanan, juga berfungsi untuk:</span></font><font color="#000000"></font><font size="3"><span></span></font></p>
<ul>
<li>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Melindungi 		pesan, data, atau informasi agar tidak dapat di baca oleh 		orang-orang yang tidak berhak.</span></font><font color="#000000"></font><font size="3"><span> 		</span></font></p>
</li>
</ul>
<ul>
<li><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">Mencegah 		agar orang-orang yang tidak berhak, menyisipkan atau menghapus 		pesan, data, atau informasi. </font></li>
</ul>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">    Sistem 	kriptografi sendiri terbagi menjadi tiga macam, yaitu sistem 	kriptografi kunci simetrik, sistem kriptografi kunci 	publik(asimetrik), dan sistem kriptogafi fungsi hash. Sistem 	kriptografi kunci simetrik merupakan sistem kriptografi yang 	menggunakan satu macam kunci dalam melakukan proses enkripsi dan 	dekripsi. Pada sistem ini keamanan dalam proses transmisi dan berita 	tergantung pada tingkat kerahasiaan kunci dan kompleksitasan 	algoritma yang digunakan. Kunci memegang peranan yang sangat penting 	sehingga harus dirahasiakan dan diamankan oleh penggunanya. Karena 	kunci yang digunakan harus dirahasikan dan diamankan, maka kunci 	yang digunakan pada sistem kriptografi kunci simetrik, biasanya 	disebut dengan sebutan kunci rahasia(secret key).</font></p>
<p align="justify"><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>	</span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>   Skema 	</span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>kriptografi 	kunci simetrik yang di</span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>dasarkan 	kepada jumlah data perproses dan alur pengolahan data didalamnya 	dapat dibedakan menjadi dua kelas, yaitu block-cipher dan 	stream-cipher. </span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><strong>Block-cipher</strong></span></font><font color="#000000"></font><font size="3"><span><strong> 	</strong></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>adalah 	skema algoritma sandi yang akan memilah-milah teks terang yang akan 	dikirimkan dengan ukuran tertentu (disebut juga dengan </span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><u><span>blok</span></u></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>) 	dengan panjang t, dan setiap blok dienkripsi dengan menggunakan 	kunci yang sama. Pada umumnya, block-cipher memproses teks terang 	dengan blok yang relatif panjang lebih dari 64 </span></span></font><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Bit"><font face="Arial, sans-serif"></font><font size="3"><span><span>bit</span></span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>, 	hal ini dilakukan untuk mempersulit penggunaan pola-pola serangan 	yang ada dalam usaha pembongkaran kunci. Selain itu untuk menambah 	ketangguhan model algoritma block cipher, dikembangkanlah beberapa 	tipe proses enkripsi, yaitu(ECB, CBC, OFB dan CFB).</span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span> 	</span></span></font></p>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>      Sedangkan 	</span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><strong>s</strong></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><strong>tream-cipher</strong></span></font><font color="#000000"></font><font size="3"><span><strong> 	</strong></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>adalah 	algoritma sandi yang mengenkripsi data persatuan data, seperti bit, 	byte, nible atau per lima bit(saat data yang akan enkripsi data 	tersebut berupa data Boudout). Setiap mengenkripsi satu satuan data 	di gunakan kunci yang merupakan hasil pembangkitan dari kunci 	sebelum.</span></span></font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span><u><strong>C.Deskripsi 	Algoritma SCOP</strong></u></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span><span style="text-decoration:none;"></span></span></font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">     Seperti 	diterangkan pada bagian sebelumnya, SCOP didisain khusus untuk 	digunakan pada prosesor Intel Pentium, namun penggunaan SCOP tetap 	dapat berjalan dengan cepat pada prosesor 32-bit lainnya. Selain itu 	SCOP juga didisain untuk memenuhi kriteria sebagai berikut:</font></p>
<ul>
<li>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Bekerja 		pada mode IFB, </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>keystream</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 		dihasilkan secara independen dari pesan enkripsi. </span></font></p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">Kompak, 		SCOP dapat berjalan pada memori kurang dari 2,5 Kbyte. </font></p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom:0;" align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Implementasi 		software yang simpel, SCOP menggunakan operasi sederhana seperti 		penambahan dan pengurangan modulus 2</span></font><font color="#000000"><sup><font face="Times New Roman, serif"></font><font size="3"><span>32</span></font></sup></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 		dan tabel </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>lookup</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>. 		</span></font></p>
</li>
</ul>
<ul>
<li><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">Keamanan 		variabel, SCOP merupakan algoritma ukuran kunci variabel, dengan 		ukuran kunci sampai dengan 384 bit. </font></li>
</ul>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    Algoritma 	ini mempunyai dua bagian yaitu </span></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>key 	expansion</span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dan </span></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>enkripsi 	data</span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>. 	Bagian pertama merubah kunci, yang bisa sampai dengan panjang 48 	byte menjadi array 1540 bytes. </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Key 	expansion</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	ini berdasarkan pada fungsi </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>hash</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	satu arah yang dinamakan GP8. Operasi utama yang digunakan dalam 	proses cipher adalah penambahan aritmetis dari 32-bit </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>words</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>. 	Operasi tambahan adalah 4 tabel </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>lookup</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 	yang dilakukan untuk setiap </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>word</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	yang akan dienkripsi. </span></font></p>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    SCOP 	menggunakan sebuah 32-bit S-box (dinamai V) dengan 384 entri, dua 	8-bit indek i dan j, dan tiga buah variabel sementara T1, T2, T3. 	S-box dibagi dua: pertama merupakan 128 32-bit </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>word</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dari V membentuk bagian bagian pertama yang statis, dan kemudian 256 	32-bit </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>word</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dari V membentuk bagian kedua yang berubah-ubah selama proses 	enkripsi. Indek j menunjuk hanya bagian yang dinamis, sedangkan 	indek i menunjuk bagian statis dan setengah bagian dinamis.</span></font></p>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    S-box 	V diinisialisasi dengan 1536 byte pertama dari </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>expanded 	key</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>. 	Tiga byte berikutnya dari </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>epanded 	key</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	digunakan untuk menginisialisasi indek i dan j, dan variabel 	sementara T3 (24 </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>high 	bit</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dari T3 dinisialisasi dengan 0). Penggunaan sebuah byte terakhir 	dari </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>expanded 	key</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	sedikit spesial: hanya 7 bit darinya yang digunakan. Byte ini 	digunakan sebagai index array dari bagian statis dari S-box V, 	kemudian isi dari array yang diindek oleh byte spesial ini dibuat 	ganjil tanpa memperhatikan apakah isinya ganjil atau genap. 	</span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Keystream</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	K 32-bit dihasilkan dengan langkah-langkah sebagai berikut: 1. T1 = 	V[128 + j] 2. j = (j + T3) mod 256 3. T2 = V[128 + j] 4. T3 = V[128 	+ j] + V[i] 5. V[128 + j] = T3 6. i = (i + 1) mod 256 7. j = (j + 	T2) mod 256 8. K = T1 + T2 K kemudian ditambahkan pada plainteks 	untuk menghasilkan cipherteks atau dikurangkan dari cipherteks untuk 	menghasilkan plainteks. </span></font></p>
<h1 class="western"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><u><strong>D.Cara 	Kerja</strong></u></font></h1>
<p align="justify"><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    Main 	instructions</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>/Instruksi 	utama dari SCOP dapat dikodekan dengan 15 instruksi assembler pada 	setiap prosesor 32 bit, yang mempunyai paling tidak 6 buah register 	dan mempunyai instruksi untuk: memindah data dari memori ke register 	dan dari register ke memori; penambahan dan pengurangan dua buah 	register; penambahan register dengan nilai </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>immediate</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dan pengurangan nilai </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>immediate</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	dari register; mask register dengan nilai </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>immediate</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	(instruksi AND). Bila prosesor mampunyai register (paling tidak 4) 	yang memberikan akses langsung pada bagian 8 bit, seperti AL untuk 	EAX, ketiga instruksi mask tidak dibutuhkan dan algoritma dapat 	dikodekan dengan 12 instruksi. Ke-12 instruksi ini termasuk dua 	instruksi untuk membaca dan menulis dari/ke plainteks/cipherteks 	yang sedang diproses dan satu instruksi untuk mengkombinasikan 	dengan </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>keystream</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>. 	</span></font></p>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    Ke-12 	instruksi ini secara teoritis dapat dieksekusi dengan 6 clock cycle 	pada Pentium. Dengan demikian berarti SCOP dapat mengenkrip data 	pada 1,5 Pentium clock cycle per byte, karena seperti kita ketahui 	algoritma ini bekerja pada 32-bit </span></font><em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>word</span></font></em><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	(4 byte) sekaligus. Berdasarkan kinerja pada prosesor Pentium dari 	SEAL dan RC4 [3], maka SCOP 2,5 kali lebih cepat dari SEAL dan 4,5 	kali lebih cepat dari RC4. </span></font></p>
<h2 class="western" align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><u><strong>E.Implementasi 	Algoritma SCOP</strong></u></font></h2>
<p><strong><font color="#000000"> </font></strong><font face="Helvetica, sans-serif"></font><font size="2"><strong></strong><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>	</span></font></strong></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span>    Implementasi 	dari algoritma enkripsi data yang merupakan salah satu bagian dari 	SCOP(fungsi enkripsi/dekripsi) pada aslinya ditulis dalam bahasa 	Assembler Intel. Namun aplikasi(fungsi enkripsi/dekripsi) yang 	tertera dibawah ini sudah berupa bahasa berasas menengah, yaitu 	bahasa C.</span></span></font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	Demo program SCOP(The Fast Stream Cipher) */</font><br />
<font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	SCOP is tested with MSVC 4.1 and 5.0, and with gcc 2.7.x.</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">Please 	be careful with Borland’s 32-bit C compiler. Read the</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">comment 	in the encrypt/decrypt functions. */</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">#include 	&lt;stdio.h&gt;</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">#include 	&lt;assert.h&gt;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">#define 	MESSAGE_WORDS 1024</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">typedef 	struct </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long v[384];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char i;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char j;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char t3;</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">} 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">st_key;</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">typedef 	struct {</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char coef[8][4];</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long x[4];}</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">st_gp8;</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">st_key 	kt;st_gp8 int_state;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long buf[MESSAGE_WORDS];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">static 	void gp8 (unsigned long *out);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">static 	voidexpand_key (unsigned char *in, unsigned in_size)</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	i;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char *p;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char counter;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">assert 	(in_size &gt;= 2 &amp;&amp; in_size &lt;= 48);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">p 	= (unsigned char *) &amp;int_state;</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; in_size; i++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">p[i] 	= in[i];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = in_size; i &lt; 48; i++)</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">p[i] 	=(unsigned char) (p[i - in_size] + p[i - in_size + 1]);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">counter 	= 1;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; 32; i++)</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">if 	(p[i] == 0)</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">p[i] 	= counter++;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}}</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">voidinit_key 	(unsigned char *in, unsigned in_size)</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long odd;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long t[4];</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int 	i, j;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">expand_key 	(in, in_size);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; 8; i++)</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(t);</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; 12; i++)</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(j = 0; j &lt; 8; j++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(kt.v + i * 32 + j * 4);</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(t);</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(t);</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.i 	= (unsigned char) (t[3] &gt;&gt; 24);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.j 	= (unsigned char) (t[3] &gt;&gt; 16);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.t3 	= (unsigned char) (t[3] &gt;&gt; 8);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">odd 	= t[3] &amp; 0×7f;</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.v[odd] 	|= 1; }</font></p>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	partially optimized version */</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">static 	voidgp8 (unsigned long *out)</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long y1, y2, x_1, x_2, x_3, x_4;</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long newx[4];</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int 	i, i2;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; 8; i += 2)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i2 	= i &gt;&gt; 1;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_1 	= int_state.x[i2] &gt;&gt; 16;</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_2 	= x_1 * x_1;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_3 	= x_2 * x_1;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_4 	= x_3 * x_1;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">y1 	= int_state.coef[i][0] * x_4 +</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.coef[i][1] 	* x_3 +</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.coef[i][2] 	* x_2 +</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.coef[i][3] 	* x_1 + 1;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_1 	= int_state.x[i2] &amp; 0xffffL;</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_2 	= x_1 * x_1;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_3 	= x_2 * x_1;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">x_4 	= x_3 * x_1;voidinit_key (unsigned char *in, unsigned in_size)</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long odd;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long t[4];</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int 	i, j;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">expand_key 	(in, in_size);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; 8; i++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(t);</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; 12; i++)</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(j = 0; j &lt; 8; j++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(kt.v + i * 32 + j * 4);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(t);</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">gp8 	(t);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.i 	= (unsigned char) (t[3] &gt;&gt; 24);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.j 	= (unsigned char) (t[3] &gt;&gt; 16);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.t3 	= (unsigned char) (t[3] &gt;&gt; 8);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">odd 	= t[3] &amp; 0×7f;</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">kt.v[odd] 	|= 1;}</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">y2 	= int_state.coef[i + 1][0] * x_4 +</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.coef[i 	+ 1][1] * x_3 +</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.coef[i 	+ 1][2] * x_2 +</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.coef[i 	+ 1][3] * x_1 + 1;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">out[i2] 	= (y1 &lt;&lt; 16) | (y2 &amp; 0xffffL);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">newx[i2] 	= (y1 &amp; 0xffff0000L) | (y2 &gt;&gt; 16);</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.x[0] 	= (newx[0] &gt;&gt; 16) | (newx[3] &lt;&lt; 16);</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.x[1] 	= (newx[0] &lt;&lt; 16) | (newx[1] &gt;&gt; 16);</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.x[2] 	= (newx[1] &lt;&lt; 16) | (newx[2] &gt;&gt; 16);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int_state.x[3] 	= (newx[2] &lt;&lt; 16) | (newx[3] &gt;&gt; 16);}</font><font color="#000000"> 	</font></p>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	partially optimized version */</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">voidencrypt 	(unsigned long *buf, int buflen, st_key *skey)</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char i, j;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long t1, t2, t3;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long k, t;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long *word, *v;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i 	= skey-&gt;i;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">j 	= skey-&gt;j;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t3 	= skey-&gt;t3;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">v 	= skey-&gt;v;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">word 	= buf;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">while 	(word &lt; buf + buflen)</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t1 	= v[128 + j];</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">j 	+= t3;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t 	= v[i];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t2 	= v[128 + j];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	If you want to compile with Borland’s 32-bit C compiler using</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">optimizations, 	change the line below to:</font></p>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i 	= (i + 1) &amp; 255; */</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i++;</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t3 	= t2 + t;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">v[128 	+ j] = t3;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">j 	+= t2;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">k 	= t1 + t2;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">*word++ 	+= k;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}}</font></p>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	partially optimized version */</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">voiddecrypt 	(unsigned long *buf, int buflen, st_key *skey)</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char i, j;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long t1, t2, t3;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long k, t;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long *word, *v;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i 	= skey-&gt;i;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">j 	= skey-&gt;j;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t3 	= skey-&gt;t3;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">v 	= skey-&gt;v;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">word 	= buf;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">while 	(word &lt; buf + buflen)</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t1 	= v[128 + j];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">j 	+= t3;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t 	= v[i];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t2 	= v[128 + j];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">/* 	If you want to compile with Borland’s 32-bit C compiler using</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">optimizations, 	change the line below to:</font></p>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i 	= (i + 1) &amp; 255; */</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">i++;</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t3 	= t2 + t;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">v[128 	+ j] = t3;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">j 	+= t2;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">k 	= t1 + t2;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">voidmain 	(void){</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	char key[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14, 15};</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">unsigned 	long t;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">int 	i, flag;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”1\n”);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">init_key 	(key, sizeof (key));</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”2\n”);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; MESSAGE_WORDS; i++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">buf[i] 	= 0L;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”3\n”);</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">encrypt 	(buf, MESSAGE_WORDS, &amp;kt);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”4\n”);</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t 	= 0L;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for(i 	= 0; i &lt; MESSAGE_WORDS; i++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">t 	^= buf[i];</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”XOR of buf is %08lx.\n”,t);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">init_key 	(key, sizeof (key));</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">decrypt 	(buf, MESSAGE_WORDS, &amp;kt);</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">flag 	= 0;</font><font color="#000000"> </font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">for 	(i = 0; i &lt; MESSAGE_WORDS; i++)</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">{</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">if 	(buf[i] != 0L)</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">flag 	= 1;</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">if 	(flag)</font><font color="#000000"> </font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”Decrypt failed.\n”);</font><font color="#000000"> 	</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">else</font><font color="#000000"> 	</font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">printf 	(”Decrypt succeeded.\n”);</font></p>
<p><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">}</font></p>
<h2 class="western"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><u><strong>F.Penutup</strong></u></font></h2>
<p align="justify"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>    Demikianlah 	isi dari blog saya di awal pagi hari yang selalu cerah akhir-akhir 	ini, meskipun pusing, harus tetap semangat, ngomong-ngomong tolong 	</span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span><u><strong>BANGET</strong></u></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span> 	tinggalkan </span></font><strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span><u>komentar/comment</u></span></font></strong><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span><span style="text-decoration:none;"> 	 p</span></span></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>ada 	blog saya ini karena hal tersebut merupakan suatu penghargaan bagi 	saya, karena hasil pekerjaan saya telah anda baca dan anda nilai,  selain itu hal tersebut juga akan dinilai oleh dosen saya. Semoga isi dari blog ini berguna bagi anda, komunitas, telebih untuk 	Negara dan Bangsa, amin.</span></font></p>
<p style="text-indent:.38in;margin-bottom:0;" align="justify"> 	<font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">Kata-kata 	terakhir sebelum saya tutup blog ini mungkin adalah permohonan maaf 	kepada para pembaca jikalau terdapat kata-kata pada blog ini yang 	dirasa menyinggung perasaan anda baik yang disengaja maupun yang 	tidak disengaja, karena kesalahan datangnya dari saya, dan kebenaran 	datangnya dari Allah S.W.T.</font></p>
<p style="text-indent:.38in;margin-bottom:0;" align="justify"> 	<font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">Dan 	Selamat Hari Raya Idul Fitri 1428 H, bagi yang merayakannya, Minal 	Aizin Wal Faizin, Mohon maaf Lahir, dan Batin. Sekian Wass. Wr. Wb.</font></p>
<p style="text-indent:.38in;margin-bottom:0;" align="justify">&nbsp;</p>
<p align="center"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3">HIDUP 	MAHASISWA…!!!!!</font></p>
<h2 class="western"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><u><strong>G.Daftar 	Pustaka</strong></u></font></h2>
<ol>
<li>
<p style="margin-bottom:0;"><font color="#000080"><u><a href="http://id.wikipedia.org/wiki/Kriptografi"><font face="Arial, sans-serif"></font><font size="3"><span>http://id.wikipedia.org/wiki/Kriptografi</span></font></a></u></font><font color="#0000ff"></font><font size="3"><span> 		</span></font></p>
</li>
<li>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Simeon 		V. Maltchev and Peter T. Antonov, “The SCOP Stream Cipher” , 		</span></font><font color="#000080"><u><a href="ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/scop/scop.tar.gz"><font face="Arial, sans-serif"></font><font size="3"><span>ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/scop/scop.tar.gz</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		Dec. 1997. </span></font></p>
</li>
<li>
<p style="margin-bottom:0;"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Agner 		Fog, “How to optimize for the Pentium family of microprocessors”, 		</span></font><font color="#000080"><u><a href="http://agner.org/assem/pentopt1.zip"><font face="Arial, sans-serif"></font><font size="3"><span>http://agner.org/assem/pentopt1.zip</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		1999. </span></font></p>
</li>
<li><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>Bruce 		Schneier and Doug Whiting,“Fast software encryption: Designing 		encryption algorithms for optimal software speed on the Intel 		Pentium processor”, 		</span></font><font color="#000080"><u><a href="http://www.counterpane.com/fast_software_encryption.pdf"><font face="Arial, sans-serif"></font><font size="3"><span>http://www.counterpane.com/fast_software_encryption.pdf</span></font></a></u></font><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="3"><span>, 		1977 </span></font></li>
</ol>
<p align="right">&nbsp;</p>
<p align="right"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span>Oleh : Sandromedo C.N.</span></font></p>
<p align="right"><font color="#000000"></font><font face="Times New Roman, serif"></font><font size="4"><span>NPM : 0605100703</span></font><font color="#000000"></font><font size="3"><span> </span></font></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kriptologi.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kriptologi.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=15&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2007/11/27/scop-the-fast-stream-cipher/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
		<item>
		<title>Awal dan Arti Kata &#8221; Persandian &#8220;</title>
		<link>http://kriptologi.wordpress.com/2007/11/27/awal-dan-arti-kata-persandian/</link>
		<comments>http://kriptologi.wordpress.com/2007/11/27/awal-dan-arti-kata-persandian/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 04:54:36 +0000</pubDate>
		<dc:creator>Sandromedo</dc:creator>
				<category><![CDATA[Kriptografi]]></category>

		<guid isPermaLink="false">http://kriptologi.wordpress.com/2007/11/27/awal-dan-arti-kata-persandian/</guid>
		<description><![CDATA[
Persandian di Republik Indonesia
Dalam kamus besar bahasa Indonesia kata persandian yang berasal dari kata dasar sandi adalah rahasia atau kode; definisi sinonimnya dalam bahasa Inggris cryptography, yang berarti pengetahuan, studi, atau merupakan seni tentang tulisan yang bersifat rahasia.
Pada era perkembangan teknologi informasi dan komunikasi saat ini, pengertian umum persandian adalah semua kegiatan pengamanan informasi rahasia [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=14&subd=kriptologi&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-bottom:0;" align="center"><span style="color:#000080;"><span style="text-decoration:underline;"><a href="http://zaki.web.ugm.ac.id/web/mod.php?mod=publisher&amp;op=viewarticle&amp;artid=200"><span style="font-size:medium;"><strong>Persandian di Republik Indonesia</strong></span></a></span></span></p>
<p style="margin-bottom:0;" align="justify">Dalam kamus besar bahasa Indonesia kata persandian yang berasal dari kata dasar sandi adalah rahasia atau kode; definisi sinonimnya dalam bahasa Inggris cryptography, yang berarti pengetahuan, studi, atau merupakan seni tentang tulisan yang bersifat rahasia.</p>
<p>Pada era perkembangan teknologi informasi dan komunikasi saat ini, pengertian umum persandian adalah semua kegiatan pengamanan informasi rahasia yang dilaksanakan berdasarkan konsep, teori dari teknik-teknik penyandian (enkripsi), serta ilmu pendukung lain secara metodologis, konsisten, dansistematis.</p>
<p style="margin-bottom:0;" align="justify"><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-bottom:0;" align="center"><span style="color:#000080;"><span style="text-decoration:underline;"><a href="http://zaki.web.ugm.ac.id/web/mod.php?mod=publisher&amp;op=viewarticle&amp;artid=197"><span style="font-size:medium;"><strong>dr Roebiono Kertopati, Bapak Persandian Indonesia</strong></span></a></span></span></p>
<p style="margin-bottom:0;" align="justify">Persandian Negara Indonesia didirikan pada tanggal 4 April 1946 oleh Mayor Jenderal dr. Roebiono Kertopati. Beliau adalah seorang dokter kepresidenan di masa Presiden RI Pertama Soekarno. Persandian negara Indonesia tersebut sekarang dikenal dengan nama Lembaga Sandi Negara dan dr Roebiono Kertopati sebagai Kepala Lembaga Sandi Negara yang pertama.</p>
<p style="margin-bottom:0;" align="justify"><!-- 		@page { size: 8.5in 11in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--></p>
<p style="margin-bottom:0;" align="justify">Bapak Roebiono Kertopati yang lahir di Ciamis pada tanggal 11 Maret 1914 sebelum dan selama perang dunia II tidak pernah bekerja dalam bidang persandian / kriptografi. Suami dari Amalia Achmad Atmadja ini adalah seorang dokter yang pada waktu itu menjabat sebagai dokter (medis) di Kementerian Pertahanan RI bagian B (intelijen). Karena pada masa itu, tidak seorang pribumipun dipercaya Belanda untuk bekerja dalam bidang persandian.</p>
<p style="margin-bottom:0;" align="justify">
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kriptologi.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kriptologi.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kriptologi.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kriptologi.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kriptologi.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kriptologi.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kriptologi.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kriptologi.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kriptologi.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kriptologi.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kriptologi.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kriptologi.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kriptologi.wordpress.com&blog=1949787&post=14&subd=kriptologi&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kriptologi.wordpress.com/2007/11/27/awal-dan-arti-kata-persandian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e63c9b2cd6016a4f732cdb19afc6ec92?s=96&#38;d=identicon" medium="image">
			<media:title type="html">edo</media:title>
		</media:content>
	</item>
	</channel>
</rss>