<?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/"
	>

<channel>
	<title>Bilgisayar Kavramları &#187; Veri Güvenliği(Cryptography)</title>
	<atom:link href="http://www.bilgisayarkavramlari.com/category/veri-guvenligicryptography/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bilgisayarkavramlari.com</link>
	<description>www.bilgisayarkavramlari.com</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:38:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Giz Paylaşımı (Secret Sharing, Sır Paylaşımı)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/06/23/giz-paylasimi-secret-sharing-sir-paylasimi/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/06/23/giz-paylasimi-secret-sharing-sir-paylasimi/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 14:31:49 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/06/23/giz-paylasimi-secret-sharing-sir-paylasimi/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bilgisyar bilimlerinde özellikle veri güvenliği ve şifreleme alanlarında (cryptography) kullanılan bir terimdir. Basitçe bir sırrın birden fazla kişi tarafından paylaşılması durumudur. Diğer bir deyişle bir sır, ancak n adet kişi bir araya geldiğinde açığa çıkmaktadır. Örneğin bir banka kasasının açılması için 3 kişinin anahtarını aynı anda çevirmesi, basitçe bir yetki [...]]]></description>
			<content:encoded><![CDATA[<div>
<p style="margin-bottom: 0cm;">Yazan : Şadi Evren ŞEKER</p>
<p style="margin-bottom: 0cm;">Bilgisyar bilimlerinde özellikle veri güvenliği ve şifreleme alanlarında (cryptography) kullanılan bir terimdir. Basitçe bir sırrın birden fazla kişi tarafından paylaşılması durumudur. Diğer bir deyişle bir sır, ancak n adet kişi bir araya geldiğinde açığa çıkmaktadır. Örneğin bir banka kasasının açılması için 3 kişinin anahtarını aynı anda çevirmesi, basitçe bir yetki paylaşımıdır. Benzer şekilde bir nükleer başlığın fırlatılabilmesi için aynı anda üç kişinin kendi şifrelerini girmesi de bir sır paylaşımıdır.</p>
<p style="margin-bottom: 0cm;">Bir şifrenin parçalara bölünmesi ve ancak belirli sayıdaki kişinin katılımı ile açığa çıkması için kullanılan en ilkel ve basit yöntem basitçe şifreyi parçalara bölüp her parçayı farklı kişilere dağıtmaktır. Örneğin “kelime” gibi bir şifreyi kişilere dağıtırken:</p>
<p style="margin-bottom: 0cm;">“ke”</p>
<p style="margin-bottom: 0cm;">“li”</p>
<p style="margin-bottom: 0cm;">“me”</p>
<p style="margin-bottom: 0cm;">şeklinde 3 parça elde edip, her birini farklı kişilere dağıtıp sonuçta bu 3 kişi bir araya geldiğinde ancak gizli kelimeyi bulması beklenebilir.</p>
<p style="margin-bottom: 0cm;">Diğer ilkel bir yöntem ise  <a href="http://www.bilgisayarkavramlari.com/2008/03/08/cin-hatirlatma-teorisi-chinese-remainder-theorem/">çinli kalan teoremidir (chinese remainder theorem).</a> Buna göre bir sayının değişik modüllerdeki kalan değerleri verilir.</p>
<p>x ≡ 2 mod 3</p>
<p>x ≡ 3 mod 4</p>
<p>x ≡ 1 mod 5</p>
<p style="margin-bottom: 0cm;">Örneğin yukarıdaki şartları sağlayan x sayısını bu yöntem ile bulabiliriz. Şimdi üç kişinin her birisinin bu bilgiyi, yani mod değerini ve denklik değerini sakladığını düşünelim. X sayısını taraflardan birisi tek başına bulamaz çünkü sonsuz sayıda ihtimal vardır. İkisi de bulamaz çünkü yine denenmesi gereken çok sayıda ihtimal kalacaktır. Ancak üç kişi birden ellerindeki bilgiyi birleştirdiğinde basit matematiksel işlemlerle bir sonuca varılmaktadır.</p>
<p style="margin-bottom: 0cm;">Aslında bir sır paylaşımı sırasında ulaşılması amaçlanan başarı, bir değerin matematiksel olarak birden fazla tarafa bölünmesidir. Bu matematiksel işlem, bölünmeden sonra tarafların tek başına ulaşamayacağı bir parça almalarını sağlar.</p>
<p style="margin-bottom: 0cm;">Kaç kişinin bir araya gelerek problemi çözebileceği de ayrı bir tartışmadır. Örneğin t=n şeklinde ifade edilen eşitsizlikte, n kişilik bir gruptan t kişinin bir araya gelmesi halinde sırra ulaşması beklenir.</p>
<p style="margin-bottom: 0cm;">Diyelim ki gizli bir şifreye ulaşmak için 10 kişilik bir gruptan 3 kişinin bir araya gelmesi yeterli ise, bu durumda t = 3 ve n = 10 olarak ifade edilmiş olur.</p>
<p style="margin-bottom: 0cm;">Örneğin geometrideki 3,2 ve tek boyutlu nesneleri kullanarak benzer bir giz paylaşımı yapılabilir.</p>
<p style="margin-bottom: 0cm;">Bildiğimiz üzere 3 boyutlu bir düzlemde bir düzlemin denklemi sonsuz sayıda noktayı işaret etmektedir. İki düzlemin kesişimi ise bir doğruyu yani yine sonsuz sayıda noktayı ifade etmektedir. Son olarak üç düzlemin kesişimi tek bir noktayı ifade edebilir. (düzlemlerin paralel olmadığını kabul ediyoruz) Bu durumda üç kişinin her birine farklı birer düzlemin denklemi verilip, bu üç kişi bir araya geldiklerinde bir noktayı bulmaları sağlanabilir. Taraflardan birisinin veya ikisinin bir araya gelmesi halinde ihtimal olarak sonsuz sayıda nokta bulunacaktır.</p>
<p style="margin-bottom: 0cm;">Bu yöntem literatürde Blakley&#8217;in şeması ( Blakley&#8217;s scheme ) olarak geçmektedir ve aşağıdaki şekilde görselleştirilebilir:</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308839652_2__.gif" alt="" /></p>
<p style="margin-bottom: 0cm;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308839652_0_DrawObject_.gif" alt="DrawObject" /></p>
<p style="margin-bottom: 0cm;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1308839652_1_DrawObject_.gif" alt="DrawObject" /></p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">Yukarıdaki şekilde önce tek bir düzlem varken, ikinci düzlem eklenmiş ve kesişimi bir doğru oluşturmuştur. Son şekilde ise üç düzlem kesiştirilerek bir nokta değeri elde edilmiştir. Bu noktayı elde etmenin tek yolu üç düzlemin de denklemini bilmektir.</p>
</div>

<p class="sayac_bilgi">187 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/06/23/giz-paylasimi-secret-sharing-sir-paylasimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>İnkar Edilebilir Şifreleme (Deniable Encryption)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/05/30/inkar-edilebilir-sifreleme-deniable-encryption/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/05/30/inkar-edilebilir-sifreleme-deniable-encryption/#comments</comments>
		<pubDate>Mon, 30 May 2011 11:47:44 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/05/30/inkar-edilebilir-sifreleme-deniable-encryption/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, veri güvenliği konusunda kullanılan inkar edilebilir şifreleme yöntemini açıklamaktır. İnkar edilebilir şifreleme (deniable encryption) basitçe, şifreleme sistemi hakkında tam yetkili bir kişinin ele geçirilmesi halinde, kişinin saldırganı kandırmak için kullanabileceği bir yöntemdir. Bu yöntemde ele geçirilen kişi, şifreleme sisteminin hileli anahtarını söyler, saldırgan kişi anahtarı kullanır ve [...]]]></description>
			<content:encoded><![CDATA[<div>
<p style="margin-bottom: 0cm;">Yazan : Şadi Evren ŞEKER</p>
<p style="margin-bottom: 0cm;">Bu yazının amacı, veri güvenliği konusunda kullanılan inkar edilebilir şifreleme yöntemini açıklamaktır. İnkar edilebilir şifreleme (deniable encryption) basitçe, şifreleme sistemi hakkında tam yetkili bir kişinin ele geçirilmesi halinde, kişinin saldırganı kandırmak için kullanabileceği bir yöntemdir.</p>
<p style="margin-bottom: 0cm;">Bu yöntemde ele geçirilen kişi, şifreleme sisteminin hileli anahtarını söyler, saldırgan kişi anahtarı kullanır ve sistemdeki açık bilgiye ulaştığını zanneder ancak yine de ulaşmak istediği gerçek bilgiye ulaşamaz.</p>
<p style="margin-bottom: 0cm;">Yukarıdaki bu durumu basit bir şifreleme yöntemi olan  <a href="http://www.bilgisayarkavramlari.com/2008/02/21/sezar-sifrelemesi-ceasers-cipher-shift-cipher-kaydirma-sifrelemelesi/">kaydırma şifrelemesi (shift cipher)</a> üzerinden inşa ederek anlatalım.</p>
<p style="margin-bottom: 0cm;">Amacımız iki adet anahtar üretmek ve anahtarlardan birsini gerçek şifrelemeler diğerini ise inkar etmek için kullanmak istiyoruz. Bir şekilde anahtarı söylemek zorunda kalırsak inkar anahtarını söyleyerek saldırganı kandıracağız.</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">Açık Mesaj : Saat onda buluşalım</p>
<p style="margin-bottom: 0cm;">İnkar Mesajı: Saat beşte buluşalım</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">Anahtar : 2</p>
<p style="margin-bottom: 0cm;">İnkar Anahtarı: 3</p>
<p style="margin-bottom: 0cm;">&nbsp;</p>
<p style="margin-bottom: 0cm;">Sistemimiz öncelikle açık mesajı anahtarla ve inkar mesajını da inkar anahtarı ile şifreliyor. Ardından çıkan mesajları toplayarak şifreli mesajı üretiyor ve karşı tarafa yolluyor. Herhangi bir şekilde yakalanacak olursa, kandırmak açık mesajın anahtar ile şifrelenmiş halini ve inkar anahtarını saldırgana veriyor ve saldırgan şifreli mesajdan bu mesajı çıkararak inkar mesajını buluyor.</p>
<p style="margin-bottom: 0cm;">Bu durumu örnek bir kod üzerinden gösterelim. Örneğin yukarıdaki mesajlar için aşağıdaki kodu yazdığımızı düşünelim:</p>
<p style="margin-bottom: 0cm;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1306756140_0__.jpg" border="0" alt="" width="516" height="285" /></p>
<p style="margin-bottom: 0cm;">Yukarıdaki kodda kullanılan fonksiyonları aşağıdaki şekilde verelim:</p>
<p style="margin-bottom: 0cm;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1306756140_1__.jpg" border="0" alt="" width="503" height="466" /></p>
<p style="margin-bottom: 0cm;">Kodun yukarıdaki halinin çıktısı aşağıda verilmiştir:</p>
<p style="margin-bottom: 0cm;"><img style="text-align: left;" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/sbres_1306756140_2__.jpg" border="0" alt="" width="369" height="92" /></p>
<p>Kodun çıktısından anlaşılacağı üzere şifreli mesaj olarak toplanmış mesaj yollanacaktır. Bu mesajı alan karşı taraf mesajı açmak için aşağıdaki formülü kullanacaktır:</p>
<p style="margin-bottom: 0cm;">açık mesaj = toplanmış – şifreli inkar – anahtar</p>
<p style="margin-bottom: 0cm;">Bu formül sonucunda, “ saatikidebulusalim” mesajı bulunacaktır.</p>
<p style="margin-bottom: 0cm;">Herhangi bir şekilde saldırgan tarafın kandırılması istendiğinde ise aşağıdaki formül kullanılacaktır:</p>
<p style="margin-bottom: 0cm;">inkar mesajı = toplanmış – şifreli açık – inkar anahtarı</p>
<p style="margin-bottom: 0cm;">Bu formül sonucunda, “ saatbestebulusalim” mesajı bulunacaktır ve saldırgan taraf anahtarları girdikten sonra bulduğu bu mesajı doğru sanacaktır.</p>
<p>&nbsp;</p>
</div>

<p class="sayac_bilgi">120 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/05/30/inkar-edilebilir-sifreleme-deniable-encryption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Etraflı Arama (Tam Arama, Exhaustive Search)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/05/17/etrafli-arama-tam-arama-exhaustive-search/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/05/17/etrafli-arama-tam-arama-exhaustive-search/#comments</comments>
		<pubDate>Tue, 17 May 2011 12:34:25 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Kavramları]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>
		<category><![CDATA[veri yapıları]]></category>
		<category><![CDATA[yapay zeka (artificial intelligence)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/05/17/etrafli-arama-tam-arama-exhaustive-search/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Literatürde tam arama veya etraflı arama olarak geçmektedir. İngilizcede “exhaustive search” terimi kullanılır. Genel olarak, arama algoritmalarının performansını arttırmak için kullanılan bir yöntemdir. Bir arama algoritmasının tam arama (exhaustive search) olabilmesi için aşağıdaki şartları sağlaması gerekir: Bir değerin bulunmadığını söylemeden önce bütün değerlere bakmış veya bütün ihtimalleri değerlendirmiş olmalıdır. Arama [...]]]></description>
			<content:encoded><![CDATA[<div>
<p style="margin-bottom: 0cm;">Yazan : Şadi Evren ŞEKER</p>
<p style="margin-bottom: 0cm;">Literatürde tam arama veya etraflı arama olarak geçmektedir. İngilizcede “exhaustive search” terimi kullanılır. Genel olarak, arama algoritmalarının performansını arttırmak için kullanılan bir yöntemdir.</p>
<p style="margin-bottom: 0cm;">Bir arama algoritmasının tam arama (exhaustive search) olabilmesi için aşağıdaki şartları sağlaması gerekir:</p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Bir değerin bulunmadığını söylemeden önce bütün değerlere bakmış veya bütün ihtimalleri değerlendirmiş olmalıdır.</p>
</li>
<li>
<p style="margin-bottom: 0cm;"><a href="http://www.bilgisayarkavramlari.com/2009/11/23/arama-algoritmalari-search-algorithms/">Arama uzayında hareket edilirken (Arama işlemi sırasında)</a> sistematik bir yöntem kullanılmalıdır. Diğer bir deyişle arana değerlere tekrar tekrar bakılmamalı, ve her adımdan sonra hangi değere bakılacağı belirlenmelidir.</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">Yukarıdaki şartları sağlayan arama algoritmalarına etraflı arama veya tam arama ismi verilir. Ancak yukarıdaki ikinci maddenin bir istisnası bulunur. Bazı durumlarda arama algoritmasını hızlandırmak için rast gele bir değer ataması (randomness) kullanılabilir. Bu durum bir çelişki olarak görülmemelidir. Algoritmanın içerisinde bir rastgelelik bulunsa bile, aranan değerleri tekrar aramaması ve üretilecek olan rastgeleliğin tam kontrol altında tutulması halinde, arama algoritması etraflı arama olarak sınıflandırılabilir.</p>
<p style="margin-bottom: 0cm;">Etraflı arama algoritmalarını aynı zamanda birer  <a href="http://www.bilgisayarkavramlari.com/2009/11/01/geri-izleme-algoritmasi-backtracking-algorithm/">geri izleme algoritması (back tracking algorithm)</a> olarak isimlendirmek mümkündür. Aslında bütün etraflı arama algoritmaları (Exhaustive search algorithms) birer  <a href="http://www.bilgisayarkavramlari.com/2009/11/01/geri-izleme-algoritmasi-backtracking-algorithm/">geri izleme algoritmasıdır (back tracking algorithm)</a>. Ancak bu cümlenin tersi doğru değildir. Yani bütün geri izleme algoritmalarının etraflı arama algoritması olduğunu söyleyemeyiz. Buradaki fark, etraflı arama algoritmalarının, arama işlemi sırasında aranacak olan değerlerin bir kısmını budamasından kaynaklanır (prunning). Yani bazı değerlerin bakılmasına gerek kalmayacak şekilde arama işlemini hızlandırırlar.</p>
<p style="margin-bottom: 0cm;">Bu anlamda  <a href="http://www.bilgisayarkavramlari.com/2008/11/09/dogrusal-arama-linear-search/">doğrusal arama (linear search)</a>,  <a href="http://www.bilgisayarkavramlari.com/2009/11/24/kaba-kuvvet-metin-arama-algoritmasi-bruteforce-text-search-algorithm/">kaba kuvvet araması (brute force algorithm)</a> gibi temel arama algoritmaları birer etraflı arama kabul edilebilir.</p>
<p>&nbsp;</p>
</div>

<p class="sayac_bilgi">294 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/05/17/etrafli-arama-tam-arama-exhaustive-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crypttool</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/29/crypttool/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/29/crypttool/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 02:17:02 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Son Kullanıcı]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/29/crypttool/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı, veri güvenliği ve şifreleme konusunda kullanılan ve temel şifreleme algoritmalarını öğrenmek için geliştirilmiş olan Crypttool programında basit bir uygulamanın geliştirilmesidir. Programda, ilkel şifrelemelerden, kaydırma şifrelemesi (shift cipher) uygulamasını açıklayalım. Diğer algoritmalar da burada yapılan açıklamaya benzer şekilde denenebilir. Öncelikle sistemde kullanacağımız şifreleme için bir girdi belirlememiz gerekiyor. [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>Bu yazının amacı, veri güvenliği ve şifreleme konusunda kullanılan ve temel şifreleme algoritmalarını öğrenmek için geliştirilmiş olan Crypttool programında basit bir uygulamanın geliştirilmesidir.
</p>
<p>Programda, ilkel şifrelemelerden, <a href="http://www.bilgisayarkavramlari.com/2008/02/21/sezar-sifrelemesi-ceasers-cipher-shift-cipher-kaydirma-sifrelemelesi/">kaydırma şifrelemesi (shift cipher)</a> uygulamasını açıklayalım. Diğer algoritmalar da burada yapılan açıklamaya benzer şekilde denenebilir.
</p>
<p>Öncelikle sistemde kullanacağımız şifreleme için bir girdi belirlememiz gerekiyor. Bu girdiyi, dosya, clipboard gibi çeşitli kaynaklardan belirleyebiliriz ancak biz elle yazacağımız bir girdiyi kullanacağız. Bunun için text input öğesini sisteme ekliyoruz.
</p>
<p>Tool grubu tıklanarak açılır:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool1.png" alt=""/>
	</p>
<p>Ardından, Input altında bulunan, TextInput seçilir.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool2.png" alt=""/>
	</p>
<p>Seçtiğimiz öğe, çizim alanına taşınır:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool3.png" alt=""/>
	</p>
<p>Yerleştirme işleminden sonra öğeye sağ tuş ile tıklanıldığında, yukarıdaki şekilde bir menü açılır.
</p>
<p>Bu menüde, kodlama (encoding) seçenekleri değiştirilebilir. Şayet kullandığınız işletim sisteminde kodlama ile ilgili bir probleminiz bulunmuyorsa (örneğin Türkçe karakterler için) default seçili bırakılabilir veya daha az problem yaşanması için UTF-8 seçilmesi tavsiye edilir.
</p>
<p>TextInput nesnemize sağ tuşla tıklayarak open diyoruz ve aşağıdaki şekilde metin girebileceğimiz bir editör açılıyor:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool4.png" alt=""/>
	</p>
<p>Ekranda görüldüğü şekilde kodlanmasını istediğimiz verileri giriyoruz.
</p>
<p>Sırada şifreleme algoritmamızı ve çıktı için gerekli olan araçları eklemek var. Bunun için önce, Classic Ciphers altında bulunan Ceaser, ardından da Tools altında bulunan TextOutput seçerek çalışma alanımıza ekliyoruz.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool5.png" alt=""/>
	</p>
<p>Eklenen bu blok diyagramlarını bağlamak için diyagramların kenarlarında olan üçgenlerden tutup bağlamak gerekiyor.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool6.png" alt=""/>
	</p>
<p>Artık şifreleme sistemimiz hazır. Denemek için herhangi bir ayarı değiştirmeden çalıştıralım.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool7.png" alt=""/>
	</p>
<p>Home sekmesi altında bulunan play tuşuna basıyoruz ve ekrandaki diyagram yeşil renk alıyor. Bu şu anda çalışıyor olduğunu gösteriyor. TextOutput nesnesine tıklayarak açarsak mesajımızın şifrelenmiş halini görebiliriz. Çalışmayı durdurarak değişiklik yapmaya devam etmek için stop düğmesine basalım.
</p>
<p>Şifreleme algoritmasını doğru çalıştığını görmek için aşağıdaki şekilde bir ceasar şifreleme bloğu ve bir TextOutput daha sisteme ekliyoruz.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool8.png" alt=""/>
	</p>
<p>İkinci eklediğimiz Ceaser kutusunun şifreli mesajı açabilmesi için özelliğini decrypt olarak ayarlıyoruz.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042911_0217_Crypttool9.png" alt=""/>
	</p>
<p>Sistemi çalıştırıp, yeni eklediğimiz TextOutput değerini okuduğumuzda, giriş için verdiğimiz mesajın aynısını aldığımızı görebiliriz.
</p>
<p>Bunun sebebi, mesajın önce şifrelenip sonra açılmış olmasıdır.
</p>
<p>
 </p>
<p>
 </p>

<p class="sayac_bilgi">132 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/29/crypttool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>McEliece Şifrelemesi</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/20/mceliece-sifrelemesi/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/20/mceliece-sifrelemesi/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 19:15:28 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/20/mceliece-sifrelemesi/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER McEliece şifrelemesi (McEliece cryptosystem), veri güvenliğinde kullanılan asimetrik şifreleme (asymmetric encryption) yöntemlerinden birisidir. Algoritma, veri güvenliği açısından çok kullanışlı olmasa da gelişmekte olan kuvantum hesaplama (quantum computing) çalışmaları ile birlikte önem kazanmaya başlamıştır. Bilindiği üzere Shor&#8217;un çarpanlara ayırma yöntemi, klasik şifreleme algoritmalarının çoğu için bir tehdit oluşturmaktadır. Dolayısıyla McEliece yöntemi [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>McEliece şifrelemesi (McEliece cryptosystem), veri güvenliğinde kullanılan <a href="http://www.bilgisayarkavramlari.com/2008/03/19/acik-anahtarli-sifreleme-public-key-cryptography/">asimetrik şifreleme (asymmetric encryption</a>) yöntemlerinden birisidir.
</p>
<p>Algoritma, veri güvenliği açısından çok kullanışlı olmasa da gelişmekte olan <a href="http://www.bilgisayarkavramlari.com/2008/10/02/kuantum-isleme-quantum-computing/">kuvantum hesaplama (quantum computing)</a> çalışmaları ile birlikte önem kazanmaya başlamıştır. Bilindiği üzere Shor&#8217;un çarpanlara ayırma yöntemi, klasik şifreleme algoritmalarının çoğu için bir tehdit oluşturmaktadır. Dolayısıyla McEliece yöntemi içerisinde rast gele üretilmiş değerler taşıyan şifreleme sistemleri önem kazanmıştır.
</p>
<p>Algoritmanın üzerine kurulu olduğu matematiksel zorluk, doğrusal kod&#8217;un parçalanması (decoding of linear code) olarak özetlenebilir. Bu problem, karmaşıklık sınıfı olarak NP-Zor (NP-Hard) sınıfına karşılık gelir.
</p>
<p>Algoritma, anahtar üretimi ve mesaj şifreleme olarak iki aşamadan oluşur.
</p>
<ol>
<li>Alice ikilik tabanda bir C = (n,k) doğrusal kodu seçer. Bu koddan k x n boyutunda bir G, <a href="http://www.bilgisayarkavramlari.com/2011/04/20/uretec-matris-generator-matrix/">üreteç matrisi (generator matrix)</a> üretilebilir. Bu matrisin t hatayı düzeltme kabiliyeti olduğunu kabul edelim.
</li>
<li>Alice rast gele içerikte S= k x k boyutlarında tersi alınamaz matris seçer (kare matrisler için tersi alınamama şartının, determinantın 0 olması gerektiğini hatırlayınız)
</li>
<li>Alice rast gele içerikte P = n x n boyutlarında bir <a href="http://www.bilgisayarkavramlari.com/2011/04/20/permutasyon-matrisi-permutation-matrix/">permütasyon matrisi (permutation matrix)</a> üretir.
</li>
<li>Alice, k x n boyutlarında G&#8217; matrisini şu şekilde hesaplar G&#8217; = SGP
</li>
<li>Alice G&#8217; ve t değerlerini açık anahtar olarak yayınlar, S,G ve P değerlerini ise gizli anahtar olarak tutar.
</li>
</ol>
<p>Bob m mesajını göndermek istiyor olsun ve Alice&#8217;in (G&#8217;,t) bilgilerini görebiliyor olsun.
</p>
<ol>
<li>Bob&#8217;un mesajının k uzunluğunda olduğunu kabul edelim.
</li>
<li>Bob, c&#8217; = m G&#8217; değerini hesaplar ( bu bir kod kelimesidir).
</li>
<li>Bob rast gele içerikli bir z vektörü üretir ve bu vektör n boyutundadır ve t adet 1 içerir.
</li>
<li>Bob şifreli mesajı c = c&#8217;+z olarak hesaplar ve Alice&#8217;e yollar
</li>
</ol>
<p>Alice c mesajını açmak için aşağıdaki yolu izler.
</p>
<ol>
<li>Öncelikle P matrisinin tersini alır, buna P<sup>-1</sup> diyelim.
</li>
<li>c&#8217; değerini c&#8217; = c P<sup>-1</sup> işlemiyle bulur.
</li>
<li>Alice, C doğrusal kodunu c&#8217; ve m&#8217; değerlerine parçalar
</li>
<li>m = m&#8217;S<sup>-1 </sup>hesaplaması ile mesajı açar.
</li>
</ol>
<p>Algoritmanın yukarıdaki adımları, aşağıdaki şekilde görsel olarak ifade edilebilir:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042011_1915_McElieceifr11.png" alt=""/>
	</p>
<p><strong>Sayısal Örnek<br />
</strong></p>
<p>Algoritmanın çalışmasını bir örnek üzerinden inceleyelim. Öncelikle anahtarlarımızı üretmek için gerekli olan matrisleri (masfuf) seçiyoruz:
</p>
<p>Aşağıda verilen G, S ve P matrislerini ele alalım:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042011_1915_McElieceifr2.png" alt=""/>
	</p>
<p>Yukarıdaki bu matrisleri kullanarak G&#8217; = SGP matrisini aşağıdaki şekilde hesaplayabiliriz.
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042011_1915_McElieceifr3.png" alt=""/>
	</p>
<p>Yukarıdaki hesaplamalardan sonra, G ve G&#8217; anahtarları bulunmuş olunuyor. Buna göre, G ile şifrelenen bir mesaj G&#8217; ile açılabilir veya tam tersi şeklinde G&#8217; ile şifrelenen mesaj da G ile açılabilmektedir.
</p>
<p>Örneğin şifrelemek için G&#8217; anahtarını kullanacağımızı kabul edelim.
</p>
<p>Alice göndermek üzere mesaj olarak m = (1101) seçmiş olsun.
</p>
<p>e=|0 0 0 0 1 0 0 | şeklinde seçtiğimiz matris ile
</p>
<p>c= mG&#8217; + e hesabını yapıyoruz.
</p>
<p>|0 1 1 0 0 1 0 | + | 0 0 0 0 1 0 0 | = | 0 1 1 0 1 1 0 |
</p>
<p>Yukarıdaki hesaplama sonucunda şifreli mesaj olarak 0110110 sonucu bulunmuştur.
</p>
<p>Şimdi bu şifreleme işleminin sonucunda çıkan şifreli mesajın nasıl açıldığına bakalım:
</p>
<p>Öncelikle açma işlemi için gerekli olan matrislerin tersini alalım:
</p>
<p><img align="left" src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042011_1915_McElieceifr4.png" alt=""/><br/>
	</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/042011_1915_McElieceifr5.png" alt=""/>
	</p>
<p>Öncelikle c&#8217; = c P<sup>-1</sup> değerini, yukarıdaki tersi alınmış matris ile hesaplayalım:
</p>
<p>c&#8217; = | 1 0 0 0 1 1 1 |
</p>
<p>Bu aşamada hamming decode yapılarak mS dğeerinin |1 0 0 0 | olduğunu buluyor.
</p>
<p>Geriye bulunan bu değerin S matrisinin tersi olan S<sup>-1 </sup>matrisi ile çarpıyoruz.
</p>
<p>m = | 1 0 0 0 | S<sup>-1 </sup>= | 1 1 0 1 | olarak açık mesaj bulunuyor. </p>

<p class="sayac_bilgi">173 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/20/mceliece-sifrelemesi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kod Kelimesi</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/19/kod-kelimesi/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/19/kod-kelimesi/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 10:50:56 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Derleyiciler]]></category>
		<category><![CDATA[Network(Ağ)]]></category>
		<category><![CDATA[Programlama Dilleri]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>
		<category><![CDATA[Veri Sıkıştırma (Data Compression)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/19/kod-kelimesi/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Haberleşmede kullanılan bir terimdir. Bir kod kelimesi (code word), belirli bir teşrifatın (protocol, protokol) anlamlı en küçük parçasıdır. Her kod kendi başına tek bir anlam ifade eder ve bu anlam yeganedir (unique). Aynı yaklaşım programlama dilleri için de geçerlidir. Her programlama dilinde bulunan her kelime tek bir anlam ifade eder. [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>Haberleşmede kullanılan bir terimdir. Bir kod kelimesi (code word), belirli bir <a href="http://www.bilgisayarkavramlari.com/2009/08/22/3317/">teşrifatın (protocol, protokol)</a> anlamlı en küçük parçasıdır. Her kod kendi başına tek bir anlam ifade eder ve bu anlam yeganedir (unique).
</p>
<p>Aynı yaklaşım programlama dilleri için de geçerlidir. Her programlama dilinde bulunan her kelime tek bir anlam ifade eder.
</p>
<p>Örneğin bir programlama dilindeki &#8220;if&#8221; kelimesi, bu dildeki <a href="http://www.bilgisayarkavramlari.com/2008/01/03/derleyici-compiler/">kaynak kodda bulunan (source code)</a> kod kelimesidir (code word).
</p>
<p>Benzer durum herhangi bir haberleşme teşrifatında da olabilir.
</p>
<p>Kod kelimeleri kullanıldıkları yere göre kanal kelimeleri (channel code words) veya kaynak kelimeleri (source code words) olarak isimlendirilebilir. İlki haberleşme ikincisi ise programlama tabiridir.
</p>
<p>Ancak kavramsal olarak kaynak kelimelerinin veri sıkıştırma (data compression) veya veri güvenliği (cryptography) gibi alanlarda kullanılması da mümkündür. Örneğin uzun bir kelimeyi, daha kısa bir kelime ile ifade etmenin anlamı, bu kelimenin yerine geçen bir kaynak kod kullanılmasıdır.
</p>
<p>Benzer şekilde kanal kodları, gürültülü ortamlarda veri iletişimini güvenli hale getirmek için gereksiz ilave bilgiler içerebilir. Yani kod kelimeleri, yerine kullanıldıkları anlamdan uzun veya kısa olabilmektedirler.
</p>
<p>Veri güvenliği açısından da bir kod kelimesi, yerine kullanıldığı kelimeye dönüşü sadece belirli kişiler tarafından yapılabilen şifreli metindir. </p>

<p class="sayac_bilgi">197 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/19/kod-kelimesi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sayı Alan Kalburu (Number Field Sieve)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/15/sayi-alan-kalburu-number-field-sieve/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/15/sayi-alan-kalburu-number-field-sieve/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 08:53:16 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Matematiği]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/15/sayi-alan-kalburu-number-field-sieve/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bir sayının asal çarpanlarına ayrılması için kullanılan yöntemlerden birsidir. Yöntemin ismi kalbur probleminden (sieving problem) gelmektedir. Sayı alan kalburu (NFS), yapı olarak bir Ferma&#8217;nın çarpanlara ayırma sistemine dayanan (Fermat&#8217;s Factorization) bir denklik elde etmek ister. Buna göre amacımız a2 = b2 mod n şeklinde bir denklik yakalamaktır. Bu denklik elde [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER
</p>
<p>Bir sayının asal çarpanlarına ayrılması için kullanılan yöntemlerden birsidir. Yöntemin ismi <a href="http://www.bilgisayarkavramlari.com/2011/03/31/kalbur-problemi-sieving-problem-elek-problemi/">kalbur probleminden (sieving problem)</a> gelmektedir.
</p>
<p>Sayı alan kalburu (NFS), yapı olarak bir <a href="http://www.bilgisayarkavramlari.com/2008/12/24/fermatin-carpanlara-ayirma-yontemi-fermats-factorization-method/">Ferma&#8217;nın çarpanlara ayırma sistemine dayanan (Fermat&#8217;s Factorization)</a> bir denklik elde etmek ister. Buna göre amacımız a<sup>2</sup> = b<sup>2</sup> mod n şeklinde bir denklik yakalamaktır. Bu denklik elde edilebilirse obeb(x-y, n) şeklinde bir çarpan bulunabilir.
</p>
<p>NFS sisteminin çalışmasını bir örnek üzerinden anlamaya çalışalım. Örneğin çarpanlarına ayıracağımız sayı n = 20437 olsun.
</p>
<p>Öncelikle bu sayıyı veren <a href="http://www.bilgisayarkavramlari.com/2009/08/10/polynomials-cokterimliler/">bir çok terimli (polinom)</a> üretmeye çalışıyoruz. Çok terimlinin özelliği bir m E Z için p(m) = 0 mod n vermesi olacaktır. Bu polinom aynı zamanda mod n için bir halka oluşturacaktır. Polinomu üretmeye m-taban yöntemi ile başlayabiliriz (base-m method).
</p>
<p>Öncelikle sayımızın küp kökünü alarak başlayalım. Bu kök alma işlemleri sırasında sürekli olarak taban (Floor) fonksiyonu kullanacağız çünkü kalan değerlere ihtiyacımız var. Sayımızın küp kökünün tabanı 27 yapmaktadır. M-taban yöntemi gereği bu sayının bir eksiğini alarak başlıyoruz:
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/041511_0853_SayAlanKalb11.png" alt=""/>
	</p>
<p>Elde edeceğimiz polinomun ilk terimini bulduk. Bu terimin çarpanı bulunmayacaktır. Diğer terimleri ise daha düşük üstlerden çarpanlar ile yazacağız.
</p>
<p>Buna göre ( 20437 &#8211; 26<sup>3</sup> ) / 26<sup>2</sup> = 4 bulunur.
</p>
<p>Ardından (20437 &#8211; 26<sup>3</sup>  &#8211; 4. 26<sup>2</sup> ) / 26 = 6 bulunur.
</p>
<p>Son olarak 20437 &#8211; 26<sup>3</sup>  &#8211; 4. 26<sup>2</sup> – 6 . 26 = 1 bulunur. Bu durumda aşağıdaki eşitliği yazabiliriz:
</p>
<p>20437 =   26<sup>3</sup>  + 4. 26<sup>2</sup> + 6 . 26 + 1
</p>
<p>Bu eşitliği bir polinom şekline getirirsek:
</p>
<p>x<sup>3</sup>  + 4 x<sup>2</sup> + 6 x + 1
</p>
<p>polinomunu elde etmiş oluruz.
</p>
<p>Buradaki önemli bir nokta:
</p>
<p>x<sup>3</sup>  = -( 4 x<sup>2</sup> + 6 x + 1) olarak yazılabildiğidir. Bu denklemi ileride kullanacağız.
</p>
<p>Artık problemimiz, 20437 sayısını çarpanlarına ayırmaktan, yukarıdaki polinomu çarpanlarına ayırmaya dönüşmüştür. Problemin bundan sonraki kısmında bir polinomu kalansız bölen farklı polinomlar olup olmadığına bakacağız.
</p>
<p>Öncelikle polinomumuz 3. dereceden olduğu için, çarpanı varsa, bu çarpanların birisinin 1. dereceden olduğunu söyleyebiliriz. O halde polinomumuzun bir çarpanının ax + b yapısında olmasını bekliyoruz.
</p>
<p>Tam bu noktada durup bir polinomun çarpanlara ayrılmasının, sayıları nasıl çarpanlara ayırdığını anlamaya çalışalım. Öncelikle asal sayı kümesinden belirli bir miktarda eleman alalım. Örneğin ilk 6 asal sayıyı alarak başlayalım :
</p>
<p>P = {2,3,5,7,11,13 }
</p>
<p>Yukarıdaki kümeye -1 değerini ekliyoruz. Bunun sebebi, polinomu çarpanlara ayırdığımızda eksi değerlerinde çıkabilmesidir.
</p>
<p>Q= {-1,2,3,5,7,11,13}
</p>
<p>Kümesini elde ettikten sonra rast gele polinomlardan oluşan (ve derecesi 2&#8242;den küçük olan) bir küme daha oluşturuyoruz:
</p>
<p>A = {-x , -1 –x , 2-x + x<sup>2</sup> , -2 + 3x + x<sup>2</sup> , 3 + x , -5  -3x –x<sup>2</sup> }
</p>
<p>Şimdi yukarıdaki kümeleri kullanarak bir polinomu ve dolayısıyla bir sayıyı çarpanlarına ayıralım. Örneğin çarpanlarına ayırmak istediğimiz polinom 4+2x olsun.
</p>
<p>4 + 2x = (-1 –x) (-5 -3x –x<sup>2</sup>) şeklinde yazılabilir. Bu gösterimde kullanılan iki polinom ise A kümesinin 2. ve 6. elemanlarıdır.
</p>
<p>Yukarıdaki denklemin eşitlenmesi sırasında, basit bir soru nasıl olup 3. dereceden bir polinomun (eşitliğin sağ tarafı), 1. dereceden bir polinoma dönüştüğü şeklinde sorulabilir. Bunun sebebi, daha önce belirttiğimiz ve ileride kullanacağız dediğimiz x<sup>3</sup>  = -( 4 x<sup>2</sup> + 6 x + 1) denklemini kullanarak polinomun sağ tarafını basitleştirmiş olmamızdır.
</p>
<p>4 + 2x = (-1 –x ) (-5 -3x –x<sup>2</sup>) = A<sub>2</sub>A<sub>6</sub>
	</p>
<p>Şimdi m = 26 için yukarıdaki denklemi çözelim:
</p>
<p> A<sub>2</sub>A<sub>6</sub> (m) = 4+2m = 4+2.26 = 56 = 2<sup>3</sup>. 7
</p>
<p>Yukarıdaki denklemde görüldüğü üzere, sayının asal çarpanları bulunmaktadır (2 ve 7 asal sayılardır).
</p>
<p>Bu durumda sayımızı kabul ediyoruz. Yani bizim için A<sub>2</sub>A<sub>6</sub> (26) kabul edilen bir sayıdır çünkü 26 sayısının polinom gösteriminde çıkan değerleri yine Q kümesinin elemanları cinsinden yazılabilir. Burada dikkat edilecek bir husus, çıkan değerin sadece asal olmasının yetmediğidir.
</p>
<p>Çıkan sayı kesin olarak Q kümesinin üyesi olmalıdır. Örneğin A<sub>5</sub>(m) polinomunu 26 sayısı için test edelim.
</p>
<p>A<sub>5</sub>(m)=3+m = 3 + 26 = 29
</p>
<p>Yukarıdaki sonuca göre, 29 sayısı asal bir sayıdır ancak bu sayıyı kabul etmiyoruz. Çünkü, başta tanımladığımız Q kümesinin elemanı değildir.
</p>
<p>Neticede, inşa ettiğimiz Q ve A kümelerinden (asal sayılar kümesi ve polinomlar kümesinden) aşağıdaki gibi bir matris oluşturuyoruz :
</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/041511_0853_SayAlanKalb21.png" alt=""/>
	</p>
<p>Yukaırdaki matriste her satır, ilgili A ve Q kümesi açılımına işaret etmektedir.
</p>
<p>Örneğin 3. satırı ele alalım.
</p>
<p>1010100 020020
</p>
<p>Bu satırın, sağ tarafının anlamı A<sub>2 </sub>ve A<sub>5</sub> elemanlarının karelerinden oluşan polinomdur.
</p>
<p>A<sub>2</sub><sup>2</sup>A<sub>5</sub><sup>2</sup>
	</p>
<p>(-1-x)<sup>2</sup> (3+x)<sup>2</sup> = 5-x olarak bulunur.
</p>
<p>Sol tarafı ise Q kümesinin elemanlarıdır. Buna göre küme elemanlarından -1, 3 , 7 seçilmiştir. Bu değerlerin çarpımı ise -21 yapar.
</p>
<p>Gerçekten A<sub>2</sub><sup>2</sup>A<sub>5</sub><sup>2</sup>(m)= 5-m denklemi m = 26 için A<sub>2</sub><sup>2</sup>A<sub>5</sub><sup>2</sup>(26)= 5-26 = -21 değeri Q matrisindeki değerlere eşit olarak bulunur.
</p>
<p>Yukarıdaki matrisin ve denklemlerin tek amacı, a<sup>2</sup>=b<sup>2</sup> mod n şeklinde bir denklem elde ederek Ferma&#8217;nın çarpanlara ayırma yöntemini kullanmak olduğunu hatırlarsak.  Yukarıdaki matris ile elde etmek istediğimiz yapı, denklemin her iki tarafında da ikinin katları şeklinde bir denklik elde etmektir. Bu
</p>
<p>Örneğin yukarıdaki matriste, 2. 3. 4. ve 6. satırların toplamıyla elde edilen sonuca bakalım:
</p>
<p>1030000 010000
</p>
<p>1010100 020020
</p>
<p>0300100 010001
</p>
<p>0100002 000201
</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
</p>
<p>2440202 040222
</p>
<p>Yukarıdaki toplam, görüldüğü üzere çift sayılardan oluşmaktadır. O halde bu sayıların yarılarını elde ederek fermanın çarpma yöntemini uygulayabiliriz.
</p>
<p>1220101 denkleminin açılımı (Q kümesindeki ilgili elemanların ilgili üstleri)
</p>
<p>-1 . 2<sup>2</sup> . 3<sup>2</sup> . 7 . 13 = -3276
</p>
<p>020111 gösteriminin açılımı (A kümesindeki ilgili elemanların ilgili üstleri alınarak)
</p>
<p>B = (-1-x)<sup>2</sup> (-2+3x+x<sup>2</sup>) (3+x) (-5-3x-x<sup>2</sup>) =26 + 30x + 16x<sup>2</sup>
	</p>
<p>B(m) = 26 + 30m + 16m<sup>2</sup> olarak bulunur.
</p>
<p>Bu denklemi m = 26 için çözersek :
</p>
<p>26 + 30. 26 + 16.26<sup>2</sup> = 11622 olarak bulunur.
</p>
<p>Kısacası ulaştığımız sonuç aşağıdaki şekilde özetlenebilir:
</p>
<p>-3276<sup>2</sup> = 11622<sup>2</sup> mod 20437
</p>
<p>Buradan sonra gcd(3276+11622, 20437) işlemi yapılarak çarpanlardan birisi bulunabilir. Bu değer 107 olarak bulunur.
</p>
<p>20437 = 107 . 191 olarak bulunmuş olunur.</p>

<p class="sayac_bilgi">164 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/15/sayi-alan-kalburu-number-field-sieve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AKS Asallık Testi (AKS Primality Test)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/13/aks-asallik-testi-aks-primality-test/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/13/aks-asallik-testi-aks-primality-test/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 20:57:32 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Matematiği]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/13/aks-asallik-testi-aks-primality-test/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Verilen bir sayının asal sayı olup olmadığının bulunması, bilgisayar bilimlerinde, özellikle veri güvenliği (kriptoloji) konusunda oldukça önemlidir. AKS asallık testinin ismi, yöntemi geliştiren üç kişinin isimlerinden türetilmiştir. ( Agrawal, Kayal, Saxena) Yöntemin dayandığı matematiksel yapı aşağıdaki denklemdir : (x &#8211; a)n ≡ (xn – a) mod n Aslında bu denklem, [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Verilen bir sayının asal sayı olup olmadığının bulunması, bilgisayar bilimlerinde, özellikle veri güvenliği (kriptoloji) konusunda oldukça önemlidir. AKS asallık testinin ismi, yöntemi geliştiren üç kişinin isimlerinden türetilmiştir. ( Agrawal, Kayal, Saxena)</p>
<p>Yöntemin dayandığı matematiksel yapı aşağıdaki denklemdir :</p>
<p>(x &#8211; a)<sup>n</sup> ≡ <span style="font-family: Symbol;"> </span>(x<sup>n</sup> – a) mod n</p>
<p>Aslında bu denklem, <a href="http://www.bilgisayarkavramlari.com/2008/03/08/fermat-kucuk-teoremi/">Fermat&#8217;ın küçük teoreminin</a> genişletilmiş halidir ve n ile aralarında asal olan (coprime) a değerlerini bulmaya yarar.</p>
<p>Algoritmanın çalışması aşağıda verilmiştir:</p>
<ul>
<li>Şayet a&gt;0 ve b&gt;1 için n = a<sup>b</sup> eşitliği sağlanıyorsa, n sayısı asal değildir.</li>
<li><em>o<sub>r</sub></em>(<em>n</em>) &gt; log<sub>2</sub>(<em>n</em>) denklemini sağlayan en küçük r değeri bulunur.</li>
<li>Şayet 1 &lt; <a title="Greatest common divisor" href="http://www.bilgisayarkavramlari.com/2009/10/26/obeb-gcd/">gcd</a>(<em>a</em>,<em>n</em>) &lt; <em>n</em> denklemini sağlayan bir <em>a</em> ≤ <em>r değeri bulunabiliyorsa sayı asal değildir.<br />
</em></li>
<li><em>Şayet n</em> ≤ <em>r ise n asal sayıdır.<br />
</em></li>
<li><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/041311_2057_AKSAsallkTe1.png" alt="" />değerine kadar olan değerler için</li>
<li>Şayet (<em>X</em>+<em>a</em>)<em><sup>n</sup></em>≠ <em>X<sup>n</sup></em>+<em>a</em> (mod <em>X<sup>r</sup></em> − 1,<em>n</em>) eşitsizliği sağlanıyorsa sayı asal değildir.</li>
<li>Yukarıdaki şartlardan geçerse, sayı asaldır.</li>
</ul>
<p>Yukarıdaki algoritmada kullanılan <img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/041311_2057_AKSAsallkTe2.png" alt="" /> sembolü, <a href="http://www.bilgisayarkavramlari.com/2008/03/08/euler-totient-fonksiyonu/">Öyler&#8217;in Totem fonksiyonudur (Euler&#8217;s totient function)</a>. Aynı zamanda <em>o<sub>r</sub></em>(<em>n</em>)  fonksiyonu da <a href="http://www.bilgisayarkavramlari.com/2011/04/13/carpim-derecesi-multiplicative-order/">çarpım derecesini (multiplicative order)</a> belirtmektedir.</p>
<p>Yukarıdaki algoritmanın çalışmasını bir örnek sayı üzerinden anlatalım.</p>
<p>Örneğin asal olup olmadığını merak ettiğimiz sayı 119 olsun.</p>
<p>Sayımızın asal olup olmadığını kontrol etmek için öncelikle ihtiyaç duyduğumuz değişkenlere atama yapıyoruz.</p>
<p>r= 2&#8242;den başlayarak işlem yapacağız. Öncelikle log<sub>2</sub>(<em>n</em>) değerini hesaplayalım.</p>
<p>log<sub>2</sub>(<em>119</em>) = 6,89 olarak bulunur.</p>
<p>obeb(n,r) yani obeb(119,2) değeri 1&#8242;dir. Yani 119 ile 2&#8242;nin en büyük ortak böleni 1 olduğu için bu iki sayı aralarında asaldır (coprime).</p>
<p>r sayısının asal olup olmadığına bakıyoruz. Sayı asal olduğu için çarpım derecesi olan <em>o<sub>n</sub></em>(<em>r</em>)  hesaplanıyor. <em>o<sub>119</sub></em>(<em>2</em>) =24 olarak bulunur.</p>
<p>Bulunan bu değer için en küçük r değeri hesaplanmak istenir ve <em>o<sub>n</sub></em>(<em>n</em>) &gt; log<sub>2</sub>(<em>n</em>) büyüklüğündeki en küçük derece bulunana kadar işlem devam eder.</p>
<p>derece değeri önce 20 ardından 16&#8242;ya düşebilmektedir. Bunun için r değeri önce 3 ardından 5 olmaktadır. Diğer bir deyişle r = 3 için derece 20 ve r = 5 için derece 25 olmaktadır. r=4 değeri denenmemiştir çünkü yukarıda da belirtildiği üzere r asal sayı olmak zorundadır.</p>
<p>Bir sonraki adımda r = 7 için hesaplama yapılacak. Ancak tam bu noktada sayının asal olmadığını söyleyebiliriz çünkü obeb(119,7) = 7 dönmektedir.</p>
<p>Yukarıdaki algoritmanın kodlanmış hali aşağıda verilmiştir.</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/041311_2057_AKSAsallkTe3.png" alt="" /></p>
<p>Bu kodda bulunan obeb fonksiyonunu, <a href="http://www.bilgisayarkavramlari.com/2009/10/26/obeb-gcd/">obeb (gcd)</a> başlıklı yazıdan ve carpimDerecesi isimli fonksiyonu, <a href="http://www.bilgisayarkavramlari.com/2011/04/13/carpim-derecesi-multiplicative-order/">çarpım derecesi (multiplicative order)</a> başlıklı yazıdan alabilirsiniz.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<p class="sayac_bilgi">268 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/13/aks-asallik-testi-aks-primality-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atkin Kalburu (Sieve of Atkin)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/13/atkin-kalburu-sieve-of-atkin/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/13/atkin-kalburu-sieve-of-atkin/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 13:49:58 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Matematiği]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/13/atkin-kalburu-sieve-of-atkin/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Belirli bir aralıkta verilen bütün asal sayıları bulmaya yarayan algoritmadır. Bu algoritmada bir kalbur problemi olarak görülebilir ve daha önceden problemle uğraşmış olan Eratosten tarafından geliştirilen çözümün gelişmiş halidir. Algoritmanın ismi, 2004 yılında bu yöntemi geliştiren kişiden gelmektedir. Algoritma adımları aşağıda açıklanmıştır: Öncelikle bütün sayılar mod 60 ta çalışır. Yani [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Belirli bir aralıkta verilen bütün asal sayıları bulmaya yarayan algoritmadır. Bu algoritmada bir kalbur problemi olarak görülebilir ve daha önceden problemle uğraşmış olan <a href="http://www.bilgisayarkavramlari.com/2011/03/31/kalbur-problemi-sieving-problem-elek-problemi/">Eratosten tarafından geliştirilen çözümün</a> gelişmiş halidir.</p>
<p>Algoritmanın ismi, 2004 yılında bu yöntemi geliştiren kişiden gelmektedir.</p>
<p>Algoritma adımları aşağıda açıklanmıştır:</p>
<ul>
<li>Öncelikle bütün sayılar mod 60 ta çalışır. Yani sonuçlar 60&#8242;a bölümden kalan olarak değerlendirilecektir.</li>
<li>Sistemdeki bütün sayılar (x ve y dahil olmak üzere) pozitif tam sayılardır</li>
<li>Sistemdeki sayılar asal veya değil (bu yazıda a ve d harfleri kullanılacaktır) olarak işaretlenebilir</li>
<li>Kalbur listesindeki bir işaretin tersinin alınması a-&gt;d veya d-&gt;a dönüşümünün yapılması demektir.</li>
<li>Listenin ilk 3 elemanı, 2,3 ve 5 sayılarıdır.</li>
</ul>
<p>Yukarıdaki bu ön tanımlardan sonra algoritmaya geçebiliriz:</p>
<p>Bir liste oluşturarak başlıyoruz. Asal sayıların bulunması istenen aradaki bütün sayılar bu listede bulunuyor ve ilk başta bütün sayılar, asal değil anlamında d olarak işaretleniyor.</p>
<p>Listedeki her sayının sırayla mod 60 sonucu bulunuyor. Sırayla bulunan değere n dersek,</p>
<ul>
<li>Bu değerin {1,13,17,29,37,41,49,53}  küme elemanlarından birisi olması halinde 4x<sup>2</sup>+y<sup>2</sup> = n sonucu veren bütün çözümler ters çevrilir.</li>
<li>Kalan değeri {7,19,31,43} kümesinde ise 3x<sup>2</sup> + y<sup>2</sup> = n sonucu veren bütün çözümler ters çevrilir.</li>
<li>Kalan değeri {11,23,47,59} kümesinde ise  3x<sup>2</sup> &#8211; y<sup>2</sup> = n sonucu veren bütün çözümler ters çevrilir.</li>
</ul>
<p>Yukarıdaki algoritmada bulunan kümelerin bir özelliği vardır. İlk kümedeki değerler, mod 12 için 1 veya 5 veren değerlerdir. İkinci küme mod 12 için 7 ve üçüncü küme mod 12 için 11 sonucunu verir.</p>
<p>Yukarıdaki algoritmanın çalışmasını bir örnek üzerinden anlamaya çalışalım:</p>
<p>40&#8242;a kadar olan asal sayıları yukarıdaki yöntemle bulmak istiyor olalım.</p>
<p>x = 1 ve y = 1 durumu ile çalışmaya başlıyoruz. Denklemde yerine yazarsak</p>
<p>4x<sup>2</sup>+y<sup>2</sup> = n denklemi için n = 5 bulunur. Bu değer mod 12&#8242;de 5&#8242;tir ve ilk kümeye girer. Dolayısıyla 5 için asal işaretlemesi yapılır.</p>
<p>3x<sup>2</sup> + y<sup>2</sup> = n denklemi için n = 4 bulunur. Bu değer mod 12&#8242;de 7 olmadığı için bir işlem yapılmaz.</p>
<p>3x<sup>2</sup> &#8211; y<sup>2</sup> = n denkleminde n = 2 bulunur ve mod 12&#8242;de 11 olmadığı için bir işlem yapılmaz.</p>
<p>Yukarıdaki sorgulama işlemini x ve y değerlerini arttırarak tekrarlıyoruz.</p>
<p>x=1 ve y = 2 için işlemler yapıldığında sadece ikinci denklem sağlanır:</p>
<p>3x<sup>2</sup> + y<sup>2</sup> = n denklemi için n = 7 bulunur. Bu değer de mod 12&#8242;de 7 olduğu için 7 sayısı asal olarak işaretlenir.</p>
<p>Geri kalan sayılar için algoritmanın çalışması aşağıda tablo halinde verilmiştir.</p>
<div>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 22px;"></col>
<col style="width: 25px;"></col>
<col style="width: 57px;"></col>
<col style="width: 76px;"></col>
<col style="width: 66px;"></col>
<col style="width: 66px;"></col>
<col style="width: 57px;"></col>
<col style="width: 66px;"></col>
</colgroup>
<tbody>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border: solid 0.5pt;">x</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">y</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">4x<sup>2</sup>+y<sup>2</sup></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">4x<sup>2</sup>+y<sup>2</sup> mod 12</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">3x<sup>2</sup> + y<sup>2</sup></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">3x<sup>2</sup> + y<sup>2</sup> mod 12</td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">3x<sup>2</sup> &#8211; y<sup>2</sup></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: solid 0.5pt; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;">3x<sup>2</sup> &#8211; y<sup>2</sup> mod 12</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-1</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">13</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">12</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-6</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">20</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">19</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-13</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-1</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">29</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">28</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-22</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-10</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">40</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">39</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-33</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-9</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">17</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">13</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">20</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">16</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">25</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">21</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">9</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">32</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">28</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-4</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">41</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">37</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-13</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-1</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">52</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">48</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-24</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">37</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">28</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">26</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">40</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">31</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">23</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">45</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">9</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">36</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">18</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">52</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">43</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">61</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">52</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">72</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">63</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-9</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">-9</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">65</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">49</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">47</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">68</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">52</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">44</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">73</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">57</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">9</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">39</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">80</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">64</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">32</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">89</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">73</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="background: #00b0f0; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">23</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">100</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">84</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">12</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">101</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">76</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">74</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">104</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">79</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">71</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">109</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">84</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">66</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">116</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">91</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">7</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">59</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">125</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">100</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">50</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">136</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">111</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">39</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">145</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">109</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">107</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">2</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">148</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">112</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">104</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">153</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">9</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">117</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">9</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">99</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">3</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">160</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">124</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">4</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">92</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">8</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">5</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">169</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">133</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">1</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">83</span></td>
<td style="background: red; padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">11</span></td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: solid 0.5pt; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">6</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">180</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">144</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">72</span></td>
<td style="padding-left: 7px; padding-right: 7px; border-top: none; border-left: none; border-bottom: solid 0.5pt; border-right: solid 0.5pt;" valign="bottom"><span style="color: black;">0</span></td>
</tr>
</tbody>
</table>
</div>
<p>Yukarıdaki tabloda renklendirilen değerler asal sayılardır ve bu değerlerin oluşturduğu küme aşağıdaki şekildedir:</p>
<p>{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}</p>
<p>Yukarıdaki kümede görülen bu değerler, aynı zamanda 2-40 arasındaki asal sayılar kümesidir.</p>
<p>Yukarıda anlatılan bu algoritmanın kodlaması C# dilinde, aşağıda verilmiştir:</p>
<p><img src="http://www.bilgisayarkavramlari.com/wp-content/uploads/041311_1350_AtkinKalbur1.png" alt="" /></p>
<p>Yukarıdaki kod, daha önceden tanımlı limit değişkeninde, asal sayıların bulunacağı aralığın tanımlı olduğu kabulü ile başlar. Burada verilen değere kadar iki iç içe döngü ile ( kodun 26. Ve 27. Satırlarında) bütün x ve y değerlerini dener. Burada dikkat edilecek bir husus, denemelerin limitin kareköküne kadar yapılıyor olduğudur. Daha fazla bilgi için <a href="http://www.bilgisayarkavramlari.com/2008/12/24/fermatin-carpanlara-ayirma-yontemi-fermats-factorization-method/">Fermat&#8217;ın çarpanlara ayırma yöntemini</a> okuyabilirsiniz.</p>
<p>Ardından kodun 29 ve 37 satırları arasında üç adet if kontrolü ile yukarıdaki şartların sağlanıp sağlanmadığı kontrol edilmiş, şayet sağlıyorsa bu değerin kalbur üzerinde (sieve) tersi alınmıştır. isPrime dizisi bu anlamda kalburun tutulduğu ve hangi sayıların asal olduğunun işaretlendiği dizidir.</p>
<p>Kodun 40-45. satırları arasında, bulunan asal sayıların karelerinin asal olmadığı işaretlenmiştir.</p>
<p>Son olarak asal sayılar listemize, önceden tanımlı olan 2,3 ve kalbur üzerinde bulunan sayılar eklenmiş ve işlem bitirilmiştir.</p>
<p><a href="http://www.bilgisayarkavramlari.com/wp-content/uploads/2011/sieve_of_atkin.cs">Problemin çözümü için C# kodunu buraya tıklayarak indirebilirsiniz. </a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<p class="sayac_bilgi">219 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/13/atkin-kalburu-sieve-of-atkin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliptik Eğri ile Çarpanlara Ayırma (Elliptic Curve Factorization)</title>
		<link>http://www.bilgisayarkavramlari.com/2011/04/09/eliptik-egri-ile-carpanlara-ayirma-elliptic-curve-factorization/</link>
		<comments>http://www.bilgisayarkavramlari.com/2011/04/09/eliptik-egri-ile-carpanlara-ayirma-elliptic-curve-factorization/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 19:20:53 +0000</pubDate>
		<dc:creator>Şadi Evren ŞEKER</dc:creator>
				<category><![CDATA[Bilgisayar Matematiği]]></category>
		<category><![CDATA[Veri Güvenliği(Cryptography)]]></category>

		<guid isPermaLink="false">http://www.bilgisayarkavramlari.com/2011/04/09/eliptik-egri-ile-carpanlara-ayirma-elliptic-curve-factorization/</guid>
		<description><![CDATA[Yazan : Şadi Evren ŞEKER Bu yazının amacı bilgisayar bilimlerinde özellikle veri güvenliği ve şifreleme konularında (kriptoloji) oldukça önemli bir yeri olan çarpanlara ayırma işleminin hızlı bir şekilde gerçekleşmesi için kullanılan eliptik eğri ile çarpanlara ayırma metodunu açıklamaktır. Literatürde Elliptic Curve Factorization Method olarak geçen ve bazan ECM olarak kısaltılan yöntem, aşağıdaki adımlardan oluşmaktadır. Öncelikle [...]]]></description>
			<content:encoded><![CDATA[<p>Yazan : Şadi Evren ŞEKER</p>
<p>Bu yazının amacı bilgisayar bilimlerinde özellikle veri güvenliği ve şifreleme konularında (kriptoloji) oldukça önemli bir yeri olan çarpanlara ayırma işleminin hızlı bir şekilde gerçekleşmesi için kullanılan eliptik eğri ile çarpanlara ayırma metodunu açıklamaktır.</p>
<p>Literatürde Elliptic Curve Factorization Method olarak geçen ve bazan ECM olarak kısaltılan yöntem, aşağıdaki adımlardan oluşmaktadır.</p>
<p>Öncelikle sistemin çalışacağı bir eliptik eğri belirlenir. Bu eğrinin karakteristik denklemi aşağıdaki şekildedir:</p>
<p>y<sup> 2</sup> = <em>x</em><sup>3</sup> + <em>ax</em> + <em>b</em> (mod <em>n</em>)</p>
<p>Ardından P=(x,y) şeklinde bir nokta belirlenir.</p>
<p><img src="http://bilgisayarkavramlari.com/wp-content/uploads/2008/05/ed2_0.gif"></p>
<p>Bu eğrinin ve denklemin canlandırılması için yukarıda, örnek bir denklem ve çizimi verilmiştir.</p>
<p>Eliptik eğrilerde toplama işlemi daha önce <a href="http://www.bilgisayarkavramlari.com/2008/05/06/ellipsel-egri-elliptic-curve/">Elipsel Eğri (Elliptic Cuve)</a> başlıklı yazımızda açıklanmıştır. Bu yazıda anlatıldığı üzere bir toplama işlemi tanımlıyoruz.</p>
<p>Toplama işlemini ilerleterek kP = P + P + … + P şeklinde k adet toplama işlemini yapıp sonuçlarının ürettiği grup üzerinde, çarpanlarına ayırmak istediğimiz n sayısını tam bölen bir değer olup olmadığını arıyoruz.</p>
<p>Bu ilerleme sırasında herhangi bir eP değeri (e kadar toplanmış P noktası) sonsuz çıkabilir. ( Eliptik eğrilerde asimptotik değerlerin O ile gösterildiğini ve sonsuz olarak kabul edildiğini hatırlayınız. )</p>
<p>Bu durumda yeni bir P noktası seçerek ilerleme işlemini bu yeni P noktası üzerinden tekrarlamamız gerekir.</p>
<p><strong>Örnek<br />
</strong></p>
<p>Çarpanlarına ayırmak istediğimiz sayı 455839 olsun. Eliptik eğri olarak aşağıdaki denklemi seçiyoruz:</p>
<p><em>y</em><sup>2</sup> = <em>x</em><sup>3</sup> + 5<em>x</em> – 5</p>
<p>Ayrıca başlangıç noktası olarak bu eğri üzerinde bulunan P(1,1) değerini seçelim. (1<sup>2</sup> = 1<sup>3</sup> + 5.1 – 5 denklemi çözülerek 1 =1 olduğu ve eğri üzerine bulunan bir nokta olduğu sınanabilir)</p>
<p>Öncelikle P+ P = 2P değerini hesaplayalım.</p>
<p><em>s</em>=(3<em>x</em><sup>2</sup>+5)/(2<em>y</em>)= (3 + 5)  / 2  = 4 (x ve y değerleri P(1,1) noktası için 1&#8242;dir)</p>
<p><em>x′</em>=<em>s</em><sup>2</sup>-2<em>x</em>=14 ve <em>y′</em>=<em>s</em>(<em>x</em>-<em>x′</em>)-<em>y</em>=4(1-14)-1=-53 değerleri bulunarak 2P = (x&#8217;, y&#8217;) yani 2P = (14, -53) değeri bulunur.</p>
<p>Şimdi 2P değeri için eğimi (Slope veya s olarak geçen değer) bulalım.</p>
<p>s=(3<em>x</em><sup>2</sup>+5)/(2<em>y</em>)=(3 14<sup>2</sup> + 5) / 2(-53) = -593 / 106 olarak bulunur. Bulduğumuz bu eğim değerinin paydası bize çarpanlardan birisini önermektedir. Buna göre bulduğumuz eğim değerinin paydasının çarpanlarını aradığımız n değerini tam bölüp bölmediğini kontrol ediyoruz :</p>
<p>gcd ( 455839 , 106)  = 1 olarak bulunuyor. Görüldüğü üzere sayımızı bölmüyor, bu durumda ilerlemeye devam ediyor ve bir sonraki noktayı bulmaya çalışıyoruz. Algoritmamız bundan sonraki adımlarda 3P, 4P, … şeklinde noktaları bulup bu noktaların eğimlerinin, çarpanlarını aradığımız n sayısını tam bölüp bölmediğine bakacağız.</p>
<p>Bu işlemlere devam edilirse, 8P değeri için s değerinin paydasının 599 olduğu görülebilir. Bu sayı 455839 sayısının çarpanlarından birisidir ve 455839 = 599 x 761 olarak bulunur.</p>
<p>Yukarıdaki sayısal örnek aşağıdaki kaynaktan alınmış ve Türkçeye çevirilmiştir. Trappe, W.; Washington, L. C. (2006). <em>Introduction to Cryptography with Coding Theory</em> (Second ed.). Pearson Prentice Hall. ISBN 0-13-186239-1.</p>
<p>&nbsp;</p>

<p class="sayac_bilgi">257 views</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bilgisayarkavramlari.com/2011/04/09/eliptik-egri-ile-carpanlara-ayirma-elliptic-curve-factorization/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

