Şifreleme Eğitiminde Açık Kaynak Kodlu Araç Kullanımı: CrypTool



Benzer belgeler
Şifreleme Eğitiminde Açık Kaynak Kodlu Araç Kullanımı: CrypTool

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

4. Bölüm Programlamaya Giriş

Bilecik Üniversitesi Mühendislik Fakültesi Moodle Uzaktan Öğretim Sistemi


ALGORİTMA VE PROGRAMLAMA I

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Java Temel Özellikleri

1.PROGRAMLAMAYA GİRİŞ

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU

YENİ NESİL 720 SÜRÜMÜ GENEL DEĞİŞİKLİKLER

Meslek Liselerinde Mesleki Eğitimin Açık Kaynak Yazılımlar Kullanılarak Desteklenmesi

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

08217 Internet Programcılığı I Internet Programming I

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 2 ( yılı öncesinde birinci

Bilgi Güvenliği Eğitim/Öğretimi

ÖZGÜR YAZILIMLAR İLE J2EE

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

Güz Dönemi Zorunlu Dersleri

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

İNTERNET TABANLI TEST HAZIRLAMA VE DEĞERLENDİRME PROGRAMLAMA ARAYÜZÜ

BİLİŞİM SUÇLARIYLA MÜCADELEDE ÜNİVERSİTE VE EMNİYET İŞBİRLİĞİ: BİR EĞİTİM SÜRECİ

Güncel Kriptografik Sistemler

Yazılım Destek Hizmeti

BEUN VPN Hizmeti. VPN Nedir?

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

WebInstaller. 1. Kurulum Đçin Gereksinimler

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Bilgisayarda Programlama. Temel Kavramlar

Java Programlamaya Giriş

Özgür Yazılım Proje Yönetimi

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

CRP 146 BİLGİSAYAR PROGRAMLAMA. Ders Kodu: ODTÜ Kredisi (Teori ve Laboratuvar saatleri/hafta): 3(3-0) Bölüm: Şehir ve Bölge Planlama

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

CISSP HAZIRLIK EĞĠTĠMĠ

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

R ile Programlamaya Giriş ve Uygulamalar

Android e Giriş. Öğr.Gör. Utku SOBUTAY

MÜFREDAT DERS LİSTESİ

5. PROGRAMLA DİLLERİ. 5.1 Giriş

4.18. TÜRKĠYE VE ÖZBEKĠSTAN ARASINDA UZAKTAN EĞĠTĠM. VE KONTROL TEKNOLOJĠSĠNE DAYALI YAKLAġIM

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

MVC. Görüldüğü üzere 2 adet cs. Dosyası oluşturdum. Birincisi çok satır kodu (20-25) içeren büyük işlerin yapılacağı class. İsmi buyuk_isler.

BİL-142 Bilgisayar Programlama II

- Yurtiçinde ULUSLARARASI Bilimsel Toplantılarda Sunulan ve Bilimsel Toplantı Kitabında Yayınlanan Bildiriler

UZAKTAN EĞİTİM UYGULAMA VE ARAŞTIRMA MERKEZİ. Uzaktan Eğitim ve Oryantasyon. Sayı 1 / Eylül 2017 İSTANBUL AYDIN ÜNİVERSİTESİ

Bilgisayar Yazılımları

Elektronik Belge Yönetim Sistemi Kullanım Kılavuzu

Üniversitelerde Bilgi Güvenliği Eğitimi. Dr. Mehmet KARA TÜBİTAK - BİLGEM 26 Kasım 2011

Nevşehir Hacı Bektaş Veli Üniversitesi Bilgi Portalı Android Uygulaması

Simetrik (Gizli) Kriptografik Sistemler Blok Şifreler Standartlaştırma. DES-Data Encryption Standard (Bilgi Şifreleme Standardı)

BENİM DÜNYAM ÇOCUK OYUNU: BİR MOBİL UYGULAMA

PHP ile İnternet Programlama

PROGRAMLAMA TEMELLERİ

2 Temel Kavramlar (Devam) Veritabanı 1

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Anahtar Bağımlı Bir Şifreleme Algoritması (IRON)

İNTERNET TARAYICISI ÜZERİNDE ÇALIŞABİLEN ELEKTRİK TALEP TAHMİNİ ANALİZ PROGRAMI

Bilgisayar Ağlarında Özel Konular (COMPE 435) Ders Detayları

AVRASYA ÜNİVERSİTESİ

Üst Düzey Programlama

1 Temel Kavramlar. Veritabanı 1

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI


ELEKTRONİK TİCARETTE BİLGİ GÜVENLİĞİ TERİMLERİ

C# nedir,.net Framework nedir?

BMT 101 Algoritma ve Programlama I 2. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Yazılım Mühendisliğinde Biçimsel Yöntemler (SE 562) Ders Detayları

TÜBİTAK UEKAE ULUSAL ELEKTRONİK ve KRİPTOLOJİ ARAŞTIRMA ENSTİTÜSÜ

Daha komplike uygulamalar elektronik ticaret, elektronik kimlik belgeleme, güvenli e-posta,

Mesleki eğitimde bilgisayar oyunu kullanma rehberi

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

GörüntüĐşlemede Yeni Bir Soluk, OpenCV

Moodle-IST Kullanım Klavuzu

R. Orçun Madran & Yasemin Gülbahar BAŞKENT ÜNİVERSİTESİ

BEYKENT ÜNİVERSİTESİ - DERS İZLENCESİ - Sürüm 2. Öğretim planındaki AKTS

SİNYAL TEMELLERİ İÇİN BİR YAZILIMSAL EĞİTİM ARACI TASARIMI A SOFTWARE EDUCATIONAL MATERIAL ON SIGNAL FUNDAMENTALS

1.1. Yazılım Geliştirme Süreci

JAVA MOBIL UYGULAMALAR

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

Transkript:

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi Şifreleme Eğitiminde Açık Kaynak Kodlu Araç Kullanımı: CrypTool Dokuz Eylül Üniversitesi, Bilgisayar Mühendisliği Bölümü, İzmir elemguzel@gmail.com, ulasyuksel.tr@gmail.com, erkan986@gmail.com, dalkilic@cs.deu.edu.tr Özet: Şifreleme, güvenlik alanında uzmanlaşmak ve/veya konuya giriş yapmak isteyen öğrenciler ya da profesyoneller için önemli konu başlıklarından biridir. Altında yatan matematiksel teori nedeni ile şifreleme eğitiminde zorluklar yaşanabilmektedir. Görsellikle desteklenmiş bilgisayar uygulamaları, bu alandaki öğretme ve anlama sürecini kolaylaştırabilmektedir. Bu bildiride şifreleme içerikli bir derste, açık kaynak kodlu CrypTool yazılımının eğitim ve geliştirme sürecinde kullanımı ele alınmıştır. Anahtar Sözcükler: Şifreleme, Kriptografi, Eğitim, Açık Kaynak, CrypTool. Open Source Tool Usage in Teaching Cryptography: CrypTool Abstract: Cryptography is one of the important topics for the students and professionals willing to succeed in or to make an introduction to security. Because of the underneath mathematical foundations, some difficulties can be faced during cryptography education. The software tools with visualization abilities may support and improve teaching and learning processes in this field. This paper represents the usage of an open-source software in cryptography oriented course, CrypTool software, in education and development. Keywords: Cryptography, Teaching, Education, Open Source, CrypTool. 1. Giriş Bilişim teknolojileri, iletişim ve bunlara yakın alanlarda çalışacak olan mezunlar, bilgisayar ve ağ güvenliği konularında artan oranlarda bilgi birikimine ihtiyaç duymaktadır. Bilgisayar ve ağ güvenliği konularının önemli bir başlığını şifreleme oluşturmaktadır [1,2]. Şifreleme içerikli dersler, yukarıda belirtilen ihtiyaca yönelik olarak, güvenlik alanında öğrencileri yetiştirmek amaçlı kullanılabilmektedir [1,3]. Aynı zamanda, bu derslerin, genel öğretimde, matematiksel temelleri yerleştirebilmek için kullanılabileceği de düşünülmektedir [4,5]. 205 Dokuz Eylül Üniversitesi, Bilgisayar Mühendisliği Bölümünde lisans ve lisansüstü programlarda şifreleme içeriğine sahip üç seçmeli ders bulunmaktadır. Derslerde tahta ve slaytlar üzerinden yapılan anlatımlar yanında, şifreleme algoritmaları ve iletişim kuralları, verilen programlama ödevleri ile pekiştirilmeye çalışılmaktadır. Bu ödevler ve anlatımlarda yardımcı ortam olarak ücretsiz ve açık kaynak kodlu CrypTool eğitim uygulaması da kullanılmaktadır. Bu bildiride CrypTool un eğitimde kullanımı ve edinilen tecrübeler paylaşılacaktır. Bu amaçla, ikinci bölümde kısaca şifreleme içerikli dersleri alan öğrencilerin genel profili verilmiş, ardından üçüncü bölümde şifreleme ve güvenlik eğitiminde kullanılan yöntemler belirtilmiştir. Son olarak CrypTool ana başlığı altında, ilgili yazılım tanıtılmış, ders kapsamında eğitimde kullanılma biçimi ele alınmıştır.

Şifreleme Eğitiminde Açık Kaynak Kodlu Araç Kullanımı: CrypTool 2. Öğrenci Profili Bilgisayar Mühendisliği Bölümü nde, lisans ve lisansüstü eğitimlerde seçmeli olarak verilen şifreleme ve güvenlik dersleri, bu konulara merak duyan, giriş yapmak isteyen ya da güvenlik alanında uzmanlaşmayı amaçlayan öğrenciler tarafindan tercih edilmektedir. Öğrenci sayısı, değişkenlik gösterebilmekle birlikte, diğer temel bilgisayar mühendisliği seçmeli derslerine göre daha düşük olmaktadır. Bob? Internet Şekil 1: Tekrar (replay) atak Alice Lisansüstü derslerinde, gelecekte akademik kariyer yapmayı planlayan öğrenciler ile birlikte, özel sektörde tam zamanlı olarak yazılım ve bilişim alanında çalışan kişiler de bulunabilmektedir. Dersi seçme amaçlarındaki olası farklılığa rağmen öğrenciler, belli bir matematik, teknik ve programlama eğitimi geçmişine sahip; bilgisayar ve elektrik-elektronik mühendisliği kökenli kişiler olarak ortaklık göstermektedir. Bu ortaklık, derslerin anlatımı ve uygulamalarda seviyeyi belirlemekte kolaylık sağlamaktadır. 3.Şifreleme ve Güvenlik Eğitiminde Kullanılan Yöntemler Kriptografi eğitiminde, özellikle iletişim kurallarının anlatımında, görsel metaforlara ve araçlara başvurmak en çok kullanılan yöntemlerden birisidir. Bu metaforlara verilebilecek en önemli örnek, Alice-Bob, Ahmet-Belgin, gibi genel bir iletişim kanalı üzerinden iki sanal karakterin haberleşmesidir. Bu karakterler üzerinden öğretmen, sunu ya da tahta üzerinde sıralı gerçekleşen çeşitli iletişim kurallarının adımlarını ya da iletişimi tehdit eden unsurları gösterebilmektedir [6]. Şekil 1 de örnek olarak gösterilen tekrar (replay) atağında Bob, Alice e bir mesaj göndermekte, bu mesajı dinleyen üçüncü kişi aynı mesajı Alice e tekrar göndermektedir. Bu tür görsel araçların kullanımı kriptografi kavramlarının akılda kalıcılığını arttırmaktadır. 206 Kullanılan diğer bir yöntem ise kriftografik algoritmaların ve iletişim kurallarının herhangi bir programlama dilinde kodlanmasına yönelik ödevlerin verilmesidir. Programlamaya yönelik daha kapsamlı projeler ile öğrenciler A, B, C gibi gruplanıp, A ve B grupları şifreli olarak haberleşmeye çalışırken, C grubundaki öğrencilerin bu haberleşmeyi çözmeye çalışmasıdır. Bu tür ödevler aracılığı ile öğrenciler algoritmaların içeriği ve uygulama biçimine dair pratik yapma olanağı bulabilmektedir [3]. Java applet, Flash veya benzeri hareketli görsel bilgisayar uygulamaları ile de kriptografinin anlatılması mümkündür. Buna yönelik olarak bazı uygulamalar bulunmakla birlikte, bunlar kullanıcının kendi ihtiyaçlarına göre değişiklik yapmasına olanak tanımamakta, sadece sundukları görsellikle konuların kavranmasına yardımcı olmaktadırlar [7]. Kriptografi eğitiminde kullanılmak üzere geliştirilmiş, hem görsellik barındırıp hem de kullanıcının ihtiyaçlarına göre değişiklik ya da ekleme yapabileceği uygulamalar içerisinde TECP [8], GRACE [6], CrypTool [9] sayılabilir. Estonya Tartu Üniversitesi nden Jelena Zaitseva, Jan Willemson ve Jaanus Pöial ın Borland Kylix 3 Open Edition ve Borland Delphi 6 Personal Edition kullanarak geliştirdiği GPL lisanslı Tutorial Environment for Cryptographic Protocols (TECP) görsel ortamı genel anahtar şifreleme öğretiminde kullanılmak üzere geliştirilmiş bir araçtır. Linux ve Win-

dows işletim sistemine sahip bilgisayarlarda kullanılabilmektedir. Modüler aritmetiğe dayanan kriptografik protokollerin yaratılmasına ve işlenmesine olanak sağlar. Bu araç ile genel anahtar şifreleme protokolleri adım adım izlenerek yapılandırılandırılabilir. Ayrıca isteğe bağlı parametreler kullanılabilir ve iletişim grupları eklenebilir. Çok büyük tamsayılarla çalışılabilir. Ayrıca yapılandırılan protokoller saklanabilir [10]. TECP eğitim ortamında protokoller dizi diyagramları (sequence diagram) şeklinde gösterilmektedir. Bu yöntemle iletişim gruplarının ne zaman protokol adımlarına dahil olduklarının gösterilmesi amaçlanmıştır. TECP eğitim ortamının sunduğu iletişim grubu ekleme/silme, transfer edilen veriyi ekleme/değiştirme/silme, protokol değişkenini ekleme/değiştirme/silme gibi protokolü değiştirebilme imkanları, bu değişikliklerin protokol güvenliğini nasıl etkileyeceğini görmeye olanak sağlamaktadır[10]. Küçük gruplar ya da bireysel akademik çalışmaların ürünü olan TECP ve GRACE in aksine, geniş katılımlı açık kaynak kodlu bir ortak proje olarak geliştirilen CrypTool, basit online uygulamalar [11], görsellik, kullanıcının kendi ihtiyaçlarına göre uyumlu eklenti geliştirebilmesi (CrypTool 2 [12]) gibi özellikleri ile eğitsel bir uygulama olarak öne çıkmaktadır. 4.CrypTool 4.1 CrypTool Nedir? CrypTool; kriptografik algoritmaları uygulamak ve analiz etmekte kullanılmak üzere, Windows, Linux ve MacOS işletim sistemleri için geliştirilmiş bir e-öğrenme uygulamasıdır [9]. CrypTool projesi; çekirdek grubunu bilgisayar bilimleri ve matematik öğrencilerinin oluşturduğu farklı ülkelerde bulunan üniversitelerdeki ve şirketlerdeki insanlar tarafından geliştirilmiştir [9]. Projenin amacı, kullanıcılara kriptolojide kullanılan çeşitli kavramları ve teknikleri anlamada yardımcı olmaktır [2]. Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi 207 CrypTool projesi 1998 yılında başlamış, CrypTool 2000 yılında ücretsiz yazılım olarak kullanılmaya başlanmıştır. 2003 yılında ise CrypTool açık kaynak olarak dağıtılmaya başlanmıştır [9]. 2007 de CrypTool İngilizce, Almanca, Lehçe ve İspanyolca olarak hazırlanmıştır. 2008 yılında ise. NET ve Java sürümleri geliştirilmiştir. Şu an CrypTool un 1.4.2.1 sürümü, JCrypTool Beta ve CrypTool 2 beta sürümleri mevcuttur. 1.4.2.1 sürümü C/C++ ile Visual Studio.NET 2003 ortamında geliştirilmiştir. JCrypTool sürümü Eclipse ortamında Java programlama dili ile, CrypTool 2 ise C# programlama dili ile Visual Studio 2008 ortamında geliştirilmektedir. CrypTool 2 nin geliştirilmesiyle birlikte CrypTool 1.x in geliştirilmesi durdurulmuş, sadece yazılım hataları düzeltilmeye devam etmektedir. Cryptool 2.0, Apache 2.0 lisansına sahiptir. Apache 2.0 lisansı, telif hakkı koruma ve feragat uyarısı gerektirmektedir. Apache 2.0 lisansı ile lisanslı uygulamaların kaynak kodları, özgür yazılım ve açık kaynak kodlu yazılımların geliştirilmesi için kullanılabilir. Fakat, Apache 2.0 lisansı copyleft lisanslarından farklı olarak, değiştirilmiş sürümlerin özgür ve açık kaynak kodlu yazılım şeklinde dağıtılma zorunluluğu getirmemiştir [13]. CrypTool 2 yazılımının sağladığı olanaklar şu şekilde listelenebilir: Ücretsiz bir yazılımdır. Kriptografik mekanizmaları aynı ortamda, uygulama, analiz etme ve öğrenme imkanı sağlar. Tipik Windows uygulaması ve görünümü olması (Şekil 2) anlaşılabilirliğini ve kullanılabilirliğini kolaylaştırır. Hem klasik hem modern şifreleme sistemlerini içerir. İçerdiği her şifreleme sistemiyle ilgili kısa bir açıklama içerir ve çevrimiçi destek sağlar. Algoritma detaylarına girmeden sadece girdileri vererek çıktıları kolaylıkla elde edebilmenizi sağlar. Başlangıç için öğretici örnek projeler içerir [9].

Şifreleme Eğitiminde Açık Kaynak Kodlu Araç Kullanımı: CrypTool uyumlu yeni ekler geliştirmek mümkündür. CrypTool 2,.Net Framework üzerine kurulu pure-plugin (saf uyumlu ek) mimarisine sahip bir yazılım olduğundan, kişinin kendi eklentisini geliştirmesi için kısaca yeni eklentinin sınıfına (şifreleme, kriptanaliz, vb.) ait arayüzleri (interface methods) tanımlaması ve bu arayüzlerin içlerini doldurması yeterlidir. Şekil 2: CrypTool 2 ana ekran görüntüsü 4.2 Uyumlu Ek (Plug in) Geliştirme CrypTool 2 kurulumu, geliştirme ekibinin hazırladığı standart şifreleme (AES, DES, Enigma vb), analiz (frekans, Kasiski vb.) ve araçlar (metin girişi/çıkışı, karşılaştırma, sözlük vb) gibi ana başlıklar altında toplanmış uyumlu ekler (eklentiler) ile birlikte sunulmaktadır. Bu eklerin (Şekil 3) sürükle bırak mantığı ile proje ekranına taşınıp birbirlerine bağlanarak işlevlerini yerine getirmesi sağlanmaktadır (Şekil 4). Bunun için takip edilecek adımlar şu şekilde özetlenebilir: 1. VisualStudio 2008 de yeni bir C# projesi yaratılır. Yaratılan projeye eklentiye uygun bir isim verilir (MD5, DES, vb.). 2. Projeye içerisinde gerekli arayüzlerin ve tanımlamaların olduğu CrypPluginBase.dll kütüphanesi referans olarak eklenir. 3. CrypTool 2 de her uyumlu ek için projede iki adet sınıfın bulunması gerekmektedir. Bunlardan birincisi eklentinin işlevini yerine getirecek olan algoritma sınıfı, diğeri ise (eğer varsa) kullanım esnasında eklentiye ait ayarların değiştirilmesini sağlayacak olan ayarlar sınıfıdır. Üçüncü adımda projeye bu iki sınıf eklenir (örn: DES.cs, ve DESSettings.cs). Ardından bu iki sınıfın arayüzlerini miras alacakları isim uzayları (namespace) dahil edilir. Sınıfın yerine getireceği işleve göre CrypTool 2 de Analysis, Generator, Cryptography gibi isim uzayları ve bu isim uzaylarında da tanımlı sınıflar bulunmaktadır (örn: Hashing için IHash, şifreleme için IEncryptionAlgorithm, algoritma ayarları için IEncryptionAlgorithmSettings gibi). Şekil 3: Uyumlu Ek seçim penceresi 4. CrypTool 2 de yaratılan eklentinin ayırt edilmesini sağlayacak PNG formatında bir ikon projeye eklenir. Kurulum ile gelen standart ekler, kullanıcının ihtiyaçlarını karşılamadığında ya da öğrencilerin algoritma ve iletişim kurallarını kendilerinin kodlamaları istendiğinde, CrypTool 2 ile 208 5. Eklentinin diğer eklentiler ile bağlantısını sağlayacak giriş ve çıkış nesneleri algoritma sınıfına eklenir (örn: AES için giriş düz metin, anahtar; çıkış ise şifreli metin gibi).

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi Son olarak eklentinin işlevini yerine getirmesi için miras alınan arayüz metodlarının içerisinde eklentiden beklenen davranışa yönelik kodlama gerçekleştirilir (örn: AES veya herhangi bir şifreleme eklentisi için Encrypt(), Decrypt() gibi). Kodlama tamamlandığında, oluşturulan proje derlenir ve elde edilen dll (Dynamic link library) dosyası CrypTool 2 kurulumunun CrypPlugins klasörü altına kopyalanır. Bir sonraki açılışta program yeni oluşturulan eklentiyi tanıyacak, ilgili başlık altına ekleyecektir (Şekil 3). Eğer eklenti ile ilgili bir problem varsa bu hata, programın açılış anındaki çıktılarından ya da açılış sonrası ilgili eklenti kullanılmak istendiğinde uygulama penceresinin mesajlar (Şekil 2) bölümünde oluşacak uyarılardan gözlenebilir. Burada özet olarak ifade edilen eklenti hazırlama yöntemi, daha detaylı anlatımları ile [14] ve [15] te bulunabilir. 4.3 Derste Kullanımı ve Değerlendirmeler Kriptografi içerikli dersler kapsamında, ilk aşamada CrypTool 2 nin mevcut kurulumu ile birlikte gelen eklentileri (Şekil 3) kullanılmış, bu eklentiler birbirlerine bağlanarak basit anlamda kriptografik algoritmaların çalışması gözlenmiştir (Şekil 4). Bu yolla öğrenciler uygulamanın yeteneklerini tanırken, aynı zamanda derste işlenen temel kriptografik algoritmaları görsel olarak deneme şansı bulmuşlardır. İkinci aşamada öğrencilerden, iki girişini XOR ( dışlayan ya da, exclusive or ) işleminden geçirip çıkışına veren basit bir eklenti tasarlamaları istenmiş, bu basit uygulama ile öğrencilerin eklenti geliştirmeyi öğrenmeleri sağlanmıştır. Son olarak öğrenciler, Diffie-Hellman anahtar değişimini gerçekleştirmeye yönelik bir eklenti geliştirmiş ve bu eklentinin kullanılışını hazırladıkları örnek CrypTool 2 projesi üzerinden göstermişlerdir. CrypTool 2 nin bu üç aşamalı kullanımında birinci aşamada kayda değer bir zorluk ile karşılaşılmamış, uygulamanın kolay kullanımlı arayüzü ve görselliği, kriptografik algoritmaların tanınmasına katkı sağlamıştır. Şekil 4: Proje ekranı ve çalışan eklentiler Açık kaynak kodlu olan CrypTool 2 de eklenti geliştirmekte zorluk çekilmesi durumunda, İnternet üzerinden standart kurulum içerisinde bulunan tüm eklentilerin kaynak kodları incelenebilmekte, gerektiğinde bunlar örnek alınarak geliştirme yapılabilmektedir [16]. 209 İkinci aşamada ise talep edilen basit işlevine rağmen eklentiyi çalışır hale getirmek daha önce buna benzer bir çalışmayı yapmamış öğrenciler için zorlayıcı olmuştur. İlk eklentinin hazırlanması için geçen süre, öğrencilerin bildikleri bir programlama dilinde talep edilen işlevi yerine getiren bir kod yazmaları için geçen sürenin çok üzerinde olmuştur. Bununla birlikte, eklenti geliştirme süreci bir kere başarı ile tamamlandığında daha sonraki denemeler ve üçüncü aşamadaki ödev daha hızlı bir şekilde tamamlanabilmiştir. Unutulmamalıdır ki birçok eklenti CrypTool 2 kurulumu ile hazır gelmektedir. Örneğin, kendi AES eklentisini hazırlayan bir kişinin bu eklentiye düz metin girişi yapabilmek için kullanacağı metin giriş eklentisi, çıktıyı gözlemek ya da dosyaya yazdırmak için kullanacağı çıktı eklentileri, standart kurulum ile hazır gelmektedir. Kişinin, yardımcı olarak adlandırılabilecek bu eklentiler için ayrıca vakit kaybetmesine gerek kalmayacaktır.

Şifreleme Eğitiminde Açık Kaynak Kodlu Araç Kullanımı: CrypTool CrypTool 2 henüz geliştirme aşamasında olduğundan çıkan yeni sürümleri ile eski sürümleri arasında eklenti uyumsuzluğu olabilmekte, bunu aşmak için problem görülen eklentiyi yeni sürümün kütüphanesi ile tekrar derlemek gerekebilmektedir. 5. Sonuç Bilindiği gibi Kriptografi eğitiminde sorunların bir kısmı algoritmaların çok fazla matematiksel temelli ve karmaşık olmasıdır. Bir görsel aracın kullanımına ihtiyaç duyulmaktadır. Görsel araç olarak seçilen Cryptool yazılımının 2. sürümü yardımıyla algoritmalar daha kalıcı bir şekilde öğrencilerde yer etmiştir. Yazılımın halen beta sürecinde olmasından dolayı karşılaşılan sorunlar haricinde önemli bir sorunla karşılaşılmamıştır. Gerektiğinde yeni algoritmalar ve protokoller de yazılıma eklenebilmiştir. [6] Cattaneo G., De Santis, A., Ferraro Petrillo, U., Visualization of cryptographic protocols with GRACE, Journal of Visual Languages and Computing, April 2008, Vol.19, Iss.2; 258-290 (2008). [7] Anane, R., Purohit, K.; Theodoropoulos, G.,. An Animated Cryptographic Learning Object, Computer Graphics, Imaging and Visualisation, 2008 61-68 (2008). [8] Zaitseva, J., TECP Tutorial Environment for Cryptographic Protocols, Master s Thesis, University of Tartu, (2003). [9] CrypTool, http://www.cryptool.org, [10] Zaitseva J., Willemson Jan, Pöial Jaanus, TECP Tutorial Environment for Cryptographic Protocols, University Of Tartu, (2003). 6. Kaynaklar [1] Aboutabl, M.S., The CyberDefense Laboratory: A Framework for Information Security Education, Information Assurance Workshop, 2006 IEEE (1-4244-0130-5), 21-23 June 55-60 (2006). [2] Kendall J., Cryptographic Techniques for Network Security using CrypTool, (University of Portsmouth, Project Report) April, 91 pages http://www.cryptool.org/ images/project Jamie Kendall v1.1_final.pdf (2008). [3] Temkin, A., Teaching Cryptography to Continuing Education Students, IFIP International Federation for Information Processing 2007-10-27.Vol.237 121-128, (2007). [4] Rocca, C. F., Cryptology in General Education, Cryptologia, 29: 4, 337-342 (2005). [5] Sakalli, M.T., Bulus, E., Buyuksaracoglu, F., Cryptography Education for Students, Information Technology Based Higher Education and Training, 2004, 621-626 (2004). 210 [11] CrypTool Online http://www.cryptoolonline.org/, [12] CrypTool 2 http://cryptool2.vs.uni-due.de [13] Apache License Version 2.0, http:// www.apache.org/licenses/license-2.0.html, (2009) [14] Przybylski S., Wander M., HowTo Create a Hash-Plug-in for CrypTool 2, http:// cryptool2.vs.uni-due.de/downloads/ howto/ howto_hashplugin.pdf, [15] Przybylski S., HowTo Create an Encryption-Plugin for CrypTool2.0, http:// cryptool2.vs.uni-ddue.de/downloads/ howto/ howto_encryptionplugin.pdf, [16] CrypTool 2 Source Code Trunk https:// www.cryptool.org/svn/cryptool2/trunk/