GÜVENİLİR, HATA DÜZELTMELİ VE DİJİTAL İMZALI PROTOKOL GELİŞTİRME A.Çağrı BÖLÜCEK 1 Nursel AKÇAM 2 2 Elektrk-Elektronk Mühenslğ Bölümü, Mühenslk-Mmarlık Fakültes, Gaz Ünverstes, 06570, Maltepe, Ankara 2 e-posta: ynursel@gaz.eu.tr ÖZET: Uzun yıllarır üzerne çalışılarak olgunlaştırılan ve brçok farklı yöntemn sunuluğu şfreleme algortmaları, gelştrlmes üşünülen ve özellkle, kontrol sstemlern heef alan uygulamalara, kullanılması tasarlanan, protokol çn temel teşkl etmekter. Bu bakıman, özellkle son yıllara bu alana hakmyet kurmuş açık anahtarlı şfreleme yöntemler ncelenmş ve en güvenlr yöntemleren olan RSA algortması protokole kullanılmaya uygun görülmüştür. Uygulama platformu olarak seçlen Mcrosoft Vsual C++ 6.0 le herhang br hazır kütüphane kullanmaksızın htyaç uyulacak tüm fonksyonlar yazılmıştır. ANAHTAR KELİMELER: Protokol, Şfreleme, Kmlk Doğrulama, Hata Tespt EVELOPING A SECURE, ERROR CORRECTIONAL AND DIGITALLY SIGNATURED PROTOCOL ABSTRACT: The cryptographc algorthms that have been evelopng for years s a basc for the protocol whch s especally planne for control base system targetng applcatons. For ths reason the asmetrc publc key cryptograpy algorthms whch are partcularly progresse last years have been nvastgate an one of the most relable publc key algorthm, RSA has been ece to use n the protocol. It has been ece to use Mcrosoft Vsual C++ 6.0 as a evelopment platform. All neee fuctons have been fully mplemente wthout usng any preefne class or lbrary. KEYWORDS: Protocol, Cryptograpy, Authentcaton, Error Detecton Grş Bu çalışma, teknolojk gelşmlern beraberne getrğ ver letşmne güvenlk sorunlarına getrlen güncel çözümler erleyerek br protokol altına toplamayı amaçlamaktaır. Protokolün yapı tbar le RF haberleşme ve kontrol sstemlerne kullanılmaya uygun olması üşünülmüştür. Böyle br protokolün gelştrlmesne en öneml kısmı şüphesz şfreleme algortmaları oluşturmaktaır. Şfreleme algortmaları eğerlenrlrken protokolün kontrol ntelğne uygunluğu gözetlerek gerçek zamanlı şlemler engellemeyecek erecee hızlı olmasına kkat elmştr. Şfrelemenn çarpıcı gelşmn 1976 yılına Dffe ve Hellman yayınlaıkları makale le yapmıştır. Bu makalee, şfreleme çn evrm ntelğne olan açık anahtarlamalı şfreleme tanıtılmış, keskl logartmk hesaplamaların zorluğuna ayanan anahtar eğşm metou sunulmuştur [1]. Sonrak çalışmalar açık anahtarlı şfreleme algortmalarını gelştrmştr. Benzer br protokol oluşturma çabası 2004 yılına Nguyen, H. Azz ve S.M. Ryan, tarafınan sunulmuştur. Azz ve Ryan araştırmalarına uzaktan kumana eleblen sstemler çn yen br protokol moeln önermşlerr. Çalışmalarına oaklanıkları nokta letşmn çoğunlukla komutlaran oluşması olayısı le mümkün oluğunca üşük bant genşlğne htyaç uyması. Bu bakıman güvenlk htyacına fazlaca önem verlmemş saece algortmanın gzl tutulması önerlmştr. Güvenlk çn harcanacak bant genşlğ ver kayıplarının azaltılması çn hata kontrolüne ayrılmıştır [2]. Güvenlk kaygısı gütmeyen çok aha genel br çalışma Wolsz, Scheferecker ve Walch tarafınan sunulmuştur. Bu araştırmaa letşm protokoller br 1
bütün olarak üşünülmüş, herhang br uygulamaya ahl eleblmeler çn htyaç uyulacak gereksnmler belrlenerek brtakım test yöntemler önerlmştr [3]. Açık Anahtarlı Şfreleme Açık anahtarlı şfrelemenn genel amaclarınan brs, gzl anahtarların ağıtımıır. Açık anahtarlı şfreleme/eşfreleme algortmaları, şfreleme çn br anahtara, eşfreleme çn se bu anahtarla lşks olan başka knc br anahtara htyaç uyarlar. Bu uruma güvenlk sağlamış olur. Saece krptografk algortma ve eşfreleme anahtarı verlmşken, br takım bast hesaplamalar le şfreleme anahtarını bulmak mümkün olmaz. Şekl 1, açık anahtarlı şfreleme yapısını göstermekter. Başlıca aımlar şunlarır: 1. Ağak her sstem, mesaj alınığına şfreleme ve eşfreleme çn kullanacak oluğu anahtar parçasını yaratır. 2. Her sstem, şfreleme anahtarını herkesçe erşleblecek br osya yaa yazmaç çersne kayeerek paylaştırır. Bu anahtarın, açık olan kısmıır (publc key). Özel anahtar saklı tutulur. 3. Eğer, A, B ye br mesaj yollamak sterse, mesajı B nn açık anahtarını kullanarak şfreler. 4. B, mesajı alığına, bu mesajı ken özel anahtarını kullanarak eşfre eer. Dğer hçbr alıcı mesajı eşfreleyemez, çünkü mesajı eşfre eecek olan özel anahtarı saece B blr. üzere, üz metn bloğu M ve şfrel metn bloğu C çn şu şekler: C = e M mo n (1) M = C mo n= ( M e) mon = M e mon (2) Hem göneren hem e alıcı n n eğern blmelr. Göneren e nn eğern blr, ve saece alıcı nn eğern blr. Böylece; KU = { e, n} br genel anahtar, ve KR = {, n} br özel anahtar olur ve bu br genel anahtarlı şfreleme algortmasıır. RSA yapının bleşenler sırasıyla şöyler : p,q; k asal sayı (gzl, seçlmş) n = pq; (genel, hesaplanmış) e; gc( Φ (, e) = 1; 1 < e < Φ( olacak şekle (genel, seçlmş) e 1 mo Φ( ; (gzl, hesaplanmış) (3) {,n} çft özel anahtarı, {e,n} çft se genel anahtarı oluşturur. Br B kullanıcısının, A kullanıcısına, A kullanıcısının genel anahtarını kullanarak br M mesajını gönermek steğn varsayalım. Bu uruma B, C = M e (mo formülü yarımı le C şfrel mesajını ele eecek ve bunu A ya gönerecektr. A kullanıcısı bu mesajı alığına, M = C (mo formülü le mesajı eşfre eecektr. Yukarıa belrtlğ gb, e ve (3) nolu enklğ sağlayacak şekle seçlmşt. Bunun sonucuna, e 1moΦ( (4) olur. Bu yüzen e, kφ( + 1`n br formuur. Şekl 1 Açık Anahtarlı şfreleme yapısı, Şekl.1 en anlaşılacağı üzere her katılımcı, ğerlernn açık anahtarlarına erşm hakkına sahptr ve katılımcılar özel anahtarlarlarını lokal olarak yaratırlar. Bu neenle, özel anahtarların paylaşılmasına gerek yoktur. RSA Algortması Rvest, Shamr, ve Aleman tarafınan ortaya konulan yapı [4]; üz metnn, blokların çne şfrelenmesn esas alır. Her blok, br n sayısınan aha az br kl eğere sahptr. Bloğun büyüklüğü, log ( e eşt veya onan aha küçük olmalıır; 2 pratkte, blok büyüklüğü 2 k bttr, n se 2 k < n 2 k + 1 aralığınaır. Şfreleme ve eşfreleme; e ve anahtarları oluştumak çn seçlen asal sayılar olmak kφ ( + 1 k( p 1)( q 1) + 1 M = M M (mo (5) Dolayısıyla, ; M e = mo( C = M e mo n (6) M = C mo( ( M oluğu görülür. e ) mo( M e mo( M(mo Şfreleme ve Deşfreleme; RSA`a hem şfreleme hem e eşfreleme, tamsayıların tamsayı kuvvetlern almayı ve mo alma şlemlern gerektrr. Genel olarak a m eğernn (a ve m brer poztf tam sayı) hesaplanmak stenğn varsayalım. Eğer m tamsayısı b gb klk ssteme fae k, bk 1,..., b0 elecek olursa: 2
m = 2 b 0 olur. Böylece, γ m b 0 (2 ) a = a = a b 0 m mo = (2 ) a n a mo n = b 0 (2 ) [ a mo n] b 0 (7) (8) eştlkler yazılablr. Bu sonuç sayesne, a b mon şlemn hesaplamak üzere aşağıak algortma gelştrleblr. c eğer aslına gerekl olmasa a son eğer üssün eğerne eşt olacağınan olayı açıklayıcı br ntelkter. c 0; 1 for k ownto 0 o c 2 x c ( x )mo n f b=1 then c c+1 ( x a)mo n return Anahtar Üretm;Açık anahtarlı şfreleme sstemnn uygulamasınan önce, her k katılımcı anahtar parçalarını üretmelr. Bu üretm şlem aşağıak vazfeler htva eer: * İk asal sayı hesaplanması, p ve q * e ya a nn seçlp eğernn hesaplanması. Öncelkle, p ve q nun seçm üşünülür çünkü, herhang br potansyel salırgan n=pq nun eğern blyor olacaktır, brtakım özel metolarla p ve q nun bulunmasını engellemek çn, p ve q sayıları yeternce büyük sayılar olmalıır. p ve q eğerlerne sahp olunmasınan sonra br e eğer seçlmes ve eğernn hesaplanması ya a alternatf olarak eğer seçlerek e eğernn hesaplanmasının arınan anahtar üretme şlem tamamlanmış olur. e sayısı seçlrken, bu sayının OBEB( Φ(,e) = 1 eştlğn sağlaması yan Φ( le aralarına asal olması gerektğ kkate alınmalıır. Daha sonra a, 1 = e mo Φ( eştlğ kullanılarak eğer ele elr. Programın Yapısı Güvenlrlğ, yaygın kullanımı ve esnek yapısı göz önüne alınığına RSA algortmasının gelştrlecek protokole kullanılması uygun görülmüştür. Br A kullanıcısı B kullanıcısına geleneksel şfreleme yöntem kullanarak br mesaj gönermek steğne, öncelkle her k kullanıcı a saece kenlernn sahp olacağı br anahtar üzerne mutabık kalmaları gerekr. Daha sonra A kullanıcısı bu anahtarı mesajı şfrelemek çn ve B kullanıcısı se aynı anahtar le mesajı eşfrelemek çn kullanır. Böyle br letşmn güvenl oluğunu söyleyeblmek çn letşm hattını nleyeblecek üçüncü br C kullanıcısının şfrelenmş mesajı ele geçreblmesne rağmen onu çözümlemesnn mümkün olmaması gerekr. Aşağıak şartları yerne getreblen br metoun güvenl oluğunan bahseleblr: 1. Anahtar oluşturma şlem makul sayılablecek erecee kolay olmalıır. 2. Anahtar yeternce uzun olmalı ve br üçüncü kşnn tahmnn önleyeblecek erecee rasgele seçlmelr. 3. Şfrelenmş mesaj, orjnal mesajın br parçası blnse ah çözülememelr. 4. Anahtar tamamıyla gzl tutulmalıır. Şfreleme yöntemne en öneml problem, letşme katılacak N kullanıcı üşünülüğüne her br mesaj aktarımı çn br anahtara htyaç uyulacağınan N(N-1) anahtarın üretlmes oluşturur. Kullanıcı sayısının artması anahtar üretme ve anahtar ağıtım şlemlern zorlaştırır. Açık anahtarlı şfreleme sstemnn temel olarak yukarıak özellkler barınırması gerekr. A kullanıcısının B kullanıcısına açık anahtarlı şfreleme yöntem le br mesaj gönermes aşağıak aımlar zlenlerek yapılmalıır: 1. A, geleneksel şfreleme metotları yarımı le rasgele br anahtar seçer. Bu anahtarı oturum anahtarı olarak kullanılır. 2. A, B nn açık anahtarını oturum anahtarını şfreleme çn kullanır. 3. A, şfrelenmş oturum anahtarını B ye gönerr. 4. A, oturum anahtarını kullanarak br mesajı şfreler ve B ye gönerr. 5. B özel anahtarını kullanarak A nın gönerğ şfrelenmş oturum anahtarını eşfreleyerek oturum anahtarını ele eer. 6. B şfrelenmş mesajı oturum anahtarını kullanarak eşfre eer. Bu algortma her ne kaar mesajın çerğnn br üçüncü kşen korunmasını sağlasa a mesajın beklenen kşen yan A kullanıcısınan gelp gelmeğn sorgulamamaktaır. Bu uruma göre br C kullanıcısının a A le aynı aımları zleyerek B le konuşması mümkünür. Bunu önlemek amacı le 2. ve 5. aımlar aşağıak gb mofye elmelr: 2. A oturum anahtarını önce ken özel anahtarını ve aha sonra B nn açık anahtarını kullanarak şfreler. 5. B önce ken özel anahtarını ve aha sonra A nın açık anahtarını kullanarak şfrelenmş oturum 3
anahtarı blgsn eşfre eerek oturum anahtarını ele eer. Bu aımlar takp elğne eğer A nın özel anahtarı ele geçrlmemşse B mesajın A an gelğne emn olacaktır. Bu noktaa A kullanıcısının nçn rek B nn açık anahtarını kullanarak mesajı şfrelemek yerne br oturum anahtarı kullanığı üşünüleblr. Bunun temel k neen varır: 1. Açık anahtarlı şfreleme sstem geleneksel yönteme nazaran aha yavaş kalmaktaır ve tüm mesajın açık anahtar kullanılarak şfrelenmes ve eşfrelenmes aha çok zaman alacaktır. 2. İletşm zleyen üçüncü br C kullanıcısı orjnal mesajın br kısmını blyor olablr ve aha önce herkese uyurulan açık anahtarın ve bu blgnn yarımı le orjnal mesajı ele etmes kolaylaşır. Tüm şfreleme algortmalarının br zaafı varır ve tab k önerlen bu metoun br stsna oluşturması beklenmemelr. Bu protokole gözleneblecek lk zayıf nokta oturuma başlarken A kullanıcısının ürettğ oturum anahtarının yeternce rasgele olmaması olablr. RSA Algortmasının Açıklanması; p ve q brbrnen farklı ve büyük k asal sayı olsun. Br tamsayının asal olup olmaığı Fermat teorem kullanılarak test eleblr. Bu teorem, her poztf a tamsayısı le asallığı sorgulanan sayı arasına aşağıak lşknn olması gerekllğn arar: a p-1 1 (mo p) (9) p tamsayısı bu enklk testnen yeterl mktara farklı a eğer çn geçerse asal olma olasılığı yüksektr enr. p ve q asal sayılarının bu şekle oluşturulmalarının arınan k büyük ve e tamsayıları bulunur. Her ksnn e (p-1)(q-1) çarpımınan küçük olması ve aşağıak eştlğe uygun olması gerekr. e 1 (mo (p-1)(q-1)) (10) Bunu gerçekleştrmenn en kolay yolu e y rasgele seçerek OBEB(e, (p-1)(q-1)), ve s eğerlern Eucl algortması kullanarak hesaplamaktır. Böylece aşağıak eştlk oluşturulablecektr. e - s(p-1)(q-1) = gc(e, (p-1)(q-1)) (11) Bu eğerler yarımıyla açık anahtar; (e,pq) ve özel anahtar; (,pq) oluşturulur. e ve üs olarak, pq çarpımı se moül olarak kullanılır. pq çarpımı yan moül açık anahtar le brlkte uyurulur fakat p ve q eğerler gzl tutulur. Aslına p ve q eğerler şfreleme veya eşfreleme şlemlerne rek olarak kullanılmamaktaır fakat bu sayıların ele elmes le e ve eğerlernn bulunması çok kolayır. m eğer [0,pq) aralığınak şfrelenmek stenen mesajı smgelesn. RSA algortması kullanılarak bu eğer [0,pq) aralığınak şfrelenmş c eğern aşağıak gb oluşturur. c m e (mo pq) (12) Deşfreleme şlem se benzer şekle sayısı kullanılarak yapılır. m c (mo pq) (13) Şfreleme ve eşfreleme şlemnn matematksel anlama a brbrnn ters oluğu görülmekter ve aşağıak gb spatlanablr. (m e ) (m ) e m e m (mo pq) (14) ve e eğerler aşağıak gb oluşturulur. e = 1 + s(p-1)(q-1) (15) Eğer p sayısı m sayısını bölemyorsa Fermat teoremne göre: m p-1 1 (mo p) (16) her k tarafa s(q-1) le üs alma ve m le çarpma şlemler uygulanığına; m e = m 1 + s(p-1)(q-1) m (mo p) (17) ele elr. Bu eştlk aynı zamana m nn p sayısına bölüneblğ urumlara a geçerlr. Benzer şekle: m e m (mo q) (18) Dolayısı le hem p nn hem e q nun (m e m) bölüğü anlaşılır. p ve q nun aralarına asal oluğu blnğnen aşağıak eştlk yazılablr. m e m (mo pq) (19) RSA Algortmasının C++ le Uygulaması Bu bölüme, RSA algortmasının; Mcrosoft Vsual C++ 6.0 yarımı le Wnows şletm sstem altına herhang br hazır şfreleme kütüphanes kullanmaksızın uygulaması anlatılacaktır. Daha öncee açıklanığı gb RSA açık anahtarlı şfreleme algortması etksn kullanığı anahtarların uzunluğunan almaktaır. Bu bakıman RSA çn en temel htyacın büyük tamsayılarla moüler artmetk şlemler yapablmek oluğu söyleneblr. Fakat günümüze blgsayar sstemlerne kullanılan şlemclern regster lerı ah algortmayı karşılayacak uzunlukta tamsayıları onanımsal anlama estekleyemezler. Kullanılan erleycnn ve çalışılan 4
şlemcnn 32 btlk şlemler çn tasarlanığı üşünülürse, aha büyük tamsayılar oluşturmak ve bu tamsayılarla moüler şlemler gerçekleştrmek çn yazılımsal esteğe htyaç olacaktır. Bu htyacı karşılamak amacıyla büyük sayıları oluşturmayı ve şlem yapablmey sağlayacak br C++ sınıfı yazılmıştır. Öncelkle large_nt sm verlen bu sınıfın ayrıntılarıyla anlatımı sunulacaktır. Büyük sayı sınıfının açıklanması; Bu sınıf, yapı tbaryle şaretsz 16 btlk tamsayılaran oluşturuğu kümenn tekbr tamsayıymış gb şlemlere grmesn sağlayarak bu sayee lüzumlu algortmaların şlenmesne olanak verecek şekle yazılmıştır. Dolayısı le sınıfın temel brm unsgne short *value; şeklne tanımlanan value göstercsr. İhtyaç uyulan büyüklükte br sayı oluşturablmek çn 16 bt cnsnen uzunluğunun tutulacağı unsgne nt uzunluk; sınıfın knc öneml eğşkenr eneblr. Bu sınıfa at br nesne oluşturulurken kullanılacak k farklı kurucu fonksyonan lk oluşturulacak sayının uzunluğunu, 16 btlk br tamsayının katı olarak beklerken ğer se yne bu sınıftan br tam katı olarak verlmesn bekler. large_nt::large_nt(unsgne le{ uzunluk = len; value = new unsgne short[len]; } large_nt::large_nt(const large_nt & { uzunluk = n.uzunluk; value = new unsgne short[uzunluk]; unsgne ; for ( = 0; < uzunluk; ++) value[] = n.value[]; } verlen uzunluk eğer lnkler, tarafınan uygun kurucu fonksyona gönerlerek gerekl hafıza alanının ayrılmasına kullanılır. Ayrıca, büyük sayılara özellkle çarpma şlemlerne kullanılmak üzere sayıyı verlen bt uzunluğuna sola kayırmaya yarayan shft fonksyonu tanımlanmıştır. Sınıfta, büyük sayıların brbrleryle şlemlern sağlayacak hemen hemen tüm matematksel operatörlern aşırı yüklemeler e tanımlanmıştır. Bu sayee programın anlaşılablrlğ arttırılmıştır. Programa özellkle mo alma şlemlerne çokça kullanılan % operatörünün e ğer aşırı yüklenmş operatörler gb hem 16 btlk eğerler hem e büyük sayı cnsnen nesneler çn şlem yapablecek k farklı aşırı yüklenmş fonksyonu varır. RSA algortması çn en çok kullanılması gereken şlemleren bre üs alma şlem olacağınan sınıfa, büyük sayılar çn üs alma şlemn gerçekleştrecek power fonksyonu a eklenmştr. Bu fonksyonun tüm parametreler büyük sayı cnsnen verlğnen yapılacak üs alma şlemnn uzunluk sınırlaması bulunmamaktaır. vo large_nt::power(const large_nt &base, const large_nt &exponent, const large_nt &moulus, large_nt &result){ large_nt r(2*base.uzunluk+1); r = 1; bool one = true; unsgne = exponent.uzunluk; whle (--!= 0) { unsgne bt = 1 << 15; o { f (!one) { large_nt n(r); r *= n; r %= moulus; } f (exponent.value[] & bt) { r *= base; r %= moulus; one = false; } bt >>= 1; } whle (bt!= 0); } result = r;} Yukarıa gösterlğ gb bu fonksyon tamamen RSA çn özelleştrlerek verlen taban, üs ve moül eğerlerne göre yaptığı hesaplamaları, sonuç büyük sayı eğşkenne atamaktaır. Yapılacak şlemler çn uzunluğu taban uzunluğunun k katınan br fazla olan r büyük sayı eğşken oluşturulmuştur. İşlemn kabarıklığının önlenmes amacıyla moüler artmetğn ağılma özellğnen yararlanılmış ve bu sayee tüm üs alma şlemn yaptıktan sonra moül alma şlem yapmak yerne her br üs alma şlemnen sonra moül alma şlem yapılarak sayının çok fazla büyümes önlenmştr. İknc öneml nokta, üs alma şlemnn tekrarlı kare alma yöntem le bastleştrlmesr. Bunu yapablmek çn üssün btler en eğerl btten başlamak üzere test elr. Her br 2 nn tam üssü çn tabanın kares alınırken sonuçta artan eğerler kaar taban eğernn sonuçla çarpımı yapılır. Böylelkle saece artan eğerler çn normal üs alma şlem yapılmış olur. RSA fonksyonlarının açıklanması; Öncelkle şfreleme çn gerekl anahtarların üretlmes aha sonra bu anahtarlar kullanılarak br mesajın şfreleneblmes çn kullanılan fonksyonlar anlatılacaktır. Anahtar üretm çn htyaç uyulacak lk şey asal sayıların üretm olacaktır. Bunun çn öncelkle rasgele br sayı seçlmekte aha sonra bu sayının komşuluklarına asal br sayı aranmaktaır. 5
Bulunan sayıların asal olup olmaığının test eleblmes çn kullanılan AsalTest() fonksyonu: statc bool AsalTest(const large_nt &p){ large_nt pmnus1(p); pmnus1 -= 1; unsgne count = 101; whle (--count!= 0) { large_nt r(p.uzunluk); large_nt x(p.uzunluk); { for (unsgne = 0; < x.uzunluk; ++) x.value[] = ran() << 8 ran(); } x %= p; f (x!= 0) { large_nt::power(x, pmnus1, p, r); f (r!= 1) return false; } } return true;} gb açıklanablr. Fonksyona Fermat teorem uygulanmaktaır. Bu fonksyona br sayının asal sayılablmes çn asallık testne 100 kez grmes gerekmekter. AsalTest fonksyonu anahtarların üretmler sırasına AsalUret ve AsalUret fonksyonunu kullanan AnahtarUret fonksyonları tarafınan çağırılmaktaır. AsalUret fonksyonu parametre olarak alığı büyük sayı türünen eğşkene önce rasgele br eğer atar. Daha sonra AsalTest fonksyonunu çağırarak bu rasgele sayının asallığını test eer. Çft sayıların asal olması mümkün olmayacağınan saece tek sayılar çn eneme yapılır. Bu bakıman asallığı AsalTest fonksyonu tarafınan onaylanmayan sayılar k arttırılarak tekrar teste tab tutulur. Bu şekle asal br sayı bulununcaya kaar öngüye evam elr. Anahtar üretm sırasına karşılaşılan çok öneml br başka husus aralarına asal sayıların bulunmasıır. Hatırlanacağı gb ve e sabtlernn Φ le aralarına asal olacak şekle seçlmeler gerekyoru. Bu urumun kontrolü se Eucl algortmasıyla sağlanır. Bu enetleme, programa EucleanAlgorthm fonksyonu tarafınan yapılmakta [5] ve anahtar üretm sırasına AnahtarUret fonksyonu tarafınan çağırılarak kullanılmaktaır. Böylece gr olarak alığı k büyük sayının Ortak Bölenlernn en Büyüğü nü bularak br ğer büyük sayı olan g ye atamaktaır. Programın Çalışması Tasarlanan protokolün Vsual Stuo.NET C++ 7.0 le yazılan uygulaması, ser port üzernen yarattığı letşm kanalı, smülasyon yapmak çn kullanılmaktaır. Programın tam anlamı le çalışablmes çn Wnows 9x,Me,XP veya 2000 tabanlı k aet ser (COMM) kanala sahp br blgsayar kullanılmalıır. 1 numaralı ser letşm kanalı protokole uygun olarak hazırlanan very gönermek çn kullanılırken, 2 numaralı ser letşm kanalı bu very almak çn kullanılır. Anlaşılacağı üzere program, aslına br host ve br çok slave chazan oluşablecek protokolun smulasyonunu tek br blgsayar üzerne yapablmesne mkan sağlayacak şekle üşünülmüştür. Smlasyon şlemnn oğru br şekle yapılablmes çn yazılımla yapılacak ayarların yanına, onanımsal bağlantı çn 1 ve 2 numaralı COMM portların TXverc kanalının RX-alıcı kanalı le bağlantısının yapılması gerekr. Programın br kanalan gönerğ şfrel mesajı ğer kanalan tekrar alarak eşfrelemes tamamen smlasyon amaçlı olmasınan olayı: 1 numaralı letşm kanalı programın yüklenmesyle brlkte hazır hale getrlrken, 2 numaralı letşm kanalının açılması kullanıcı tarafınan yapılacak şekle tasarlanmıştır. Şfreleme ve eşfreleme şlemlernn gerçekleştrleblmes çn öncelkle genel ve özel anahtarların üretlmes gerekr. Sonra stenen mesaj veya komut programa grlr. Grlen mesaj, program tarafınan kaynak mesaj olarak eğerlenrlr. 2 numaralı letşm kanalının nlemeye açılması le alınan vernn eşfrelenmes gerçekleşr. Sonuç Bu çalışmaa, ver letşmne güvenlk, letşme gren tarafların kmlklernn oğruluğu ve letşm hattına kasıtlı olarak oluşturulablecek veya gürültüen kaynaklanablecek bozulmalar le belrtleblecek söz konusu hata ve eksklern gerlğ br protokol moel sunulmaya çalışılmıştır. Sunulan bu protokolün güvenlk, kmlk oğrulama htyaçları çn, açık anahtarlı şfreleme algortmalarının en blnenlernen olan RSA algortması le çözülmes öngörülmüştür. Kaynaklar [1] Dffe, W. An Hellman, M.E., New Drectons n Cryptography, IEEE Trans. Inform. Theory, 22(6) 644-654, 1976. [2] Nguyen, H., Azz, S.M., Ryan, T., A Low Banwth Communcaton Protocol for Remote Control Applcatons, IEEE Regon 10 Conferernce, C: 37-40, 2004. [3] Wolsz, A., Scheferecker, I., Walch, M., An Integrate Approach to the Desgn of Communcaton Protocols, Dstrbute Computng Systems, 19: 411-418, 1993. [4] Rvest, R. L., Shamr, A., Aleman, L.A., A metho for Obtanng Dgtal Sgnatures an Publc- Key Cryptosystem, Communcatons of the ACM, 21 (2): 120-126, 1978. [5] Bölücek, A.Ç., Güvenlr, Hata Düzeltmel ve Djtal İmzalı Protokol Gelştrme, Gaz Ün. Fen Bl. Enst. Y.Lsans Tez, 2005. 6