Download as pdf or txt
Download as pdf or txt
You are on page 1of 89

ĠSTANBUL TEKNĠK ÜNĠVERSĠTESĠ  FEN BĠLĠMLERĠ ENSTĠTÜSÜ

KĠMLĠK TABANLI KRĠPTOSĠSTEMLER


ĠLE GÜVENLĠ VERĠ AKTARIMI

YÜKSEK LĠSANS TEZĠ


Müh. Murat GÜNCAN
(504991148)

Tezin Enstitüye Verildiği Tarih : 13 Mayıs 2002


Tezin Savunulduğu Tarih : 4 Haziran 2002

Tez DanıĢmanı : Doç.Dr. A.CoĢkun SÖNMEZ

Diğer Jüri Üyeleri : Prof.Dr. Emre HARMANCI

Dr. Erdal Çayırcı (Harp Akad.)

HAZĠRAN 2002
ÖNSÖZ

Bilgisayar ve Internet kullanımının yaygınlaşması, faydaları yanında bazı riskleri de


beraberinde getirmektedir. Bu risklerin en önemlilerinden biri kişisel gizlilik ve bilgi
güvenliğine yönelen tehditlerin artmasıdır. Gönderilen verilerin üçüncü kişilerin
eline geçebilme olasılığı kişisel gizliliği tehdit etmekte, verilerin gönderenin
kontrolü dışında değiştirilerek alıcıya ulaştırılması ise veri bütünlüğünü yok
etmektedir. Bu istenmeyen durumların ortaya çıkışının önlenebilmesi, kriptografik
uygulamaların yaygın olarak kullanımı ile mümkün olacaktır.

Bu tez çalışması kapsamında, gizli-anahtarlı ve açık-anahtarlı kriptosistemlere bir


alternatif olarak ortaya atılan ancak o kadar yaygın kullanım alanı bulamamış olan
kimlik-tabanlı kriptosistemler incelenmiştir. Çalışma kapsamında, bir bilgisayar
ağında kimlik tabanlı güvenli haberleşmeyi sağlamaya dönük olarak KT-GVAS
(Kimlik Tabanlı Güvenli Veri Aktarım Sistemi) geliştirilmiştir.

Bu çalışmanın gerçekleştilmesinde yardımlarını esirgemeyen danışman hocam sayın


Doç. Dr. Ahmet Coşkun Sönmez‟e, TÜBİTAK Marmara Araştırma Merkezi –
Bilişim Teknolojileri Araştırma Enstitüsü (BTAE) Yönetimine ve BTAE‟de ki
çalışma arkadaşlarıma teşekkürlerimi sunarım.

Anneme ve babama, sevgilerimle.

Haziran 2002 Murat GÜNCAN

ii
ĠÇĠNDEKĠLER

KISALTMALAR v

TABLO LĠSTESĠ vi

ġEKĠL LĠSTESĠ vii

ÖZET viii

SUMMARY ix

1. GĠRĠġ 1
1.1. Konu 1
1.2. ÇalıĢmanın Amacı 3

2. GĠZLĠ-ANAHTARLI KRĠPTOGRAFĠ (SĠMETRĠK KRĠPTOGRAFĠ) 4


2.1. Dizi ġifreleme Algoritmaları 5
2.2. Blok ġifreleme Algoritmaları 6
2.2.1. İşlem modları 7
2.2.2. DES algoritması 11
2.2.3. AES : İleri şifreleme standartı 19
2.2.4. Rijndael algoritması 20
3. AÇIK-ANAHTARLI KRĠPTOGRAFĠ (ASĠMETRĠK KRĠPTOGRAFĠ) 27
3.1. Çarpanlara Ayırma Problemi 29
3.2. Ayrık Logaritma Problemi 29
3.3. Eliptik Eğriler 29
3.3.1. Temel aritmetik işlemler 30
3.3.2. Eliptik eğriler üzerinde ayrık logaritma problemi 31
3.4. RSA Kriptosistemi 31
3.5. ElGamal Kriptosistemi 32
3.6. Menezes-Vanstone Eliptik Eğri Kriptosistemi 35

4. HASH FONKSĠYONLARI 37
4.1. MD5 Hash Fonksiyonu 38
4.2. MD2 Hash Fonksiyonu 38

iii
4.3. SHA Hash Fonksiyonu 38

5. SAYISAL ĠMZALAR 39
5.1. RSA Ġmza Sistemi 41
5.2. El Gamal Ġmza Sistemi 42
5.3. DSA – Sayısal Ġmza Algoritması 42

6. ANAHTAR DAĞITIM SĠSTEMLERĠ 45


6.1. Diffie-Hellman Anahtar DeğiĢim Yöntemi 46

7. KĠMLĠK TABANLI KRĠPTOSĠSTEMLER (KTK) 47


7.1. Kimlik Tabanlı ġifreleme 49
7.1.1. Shamir‟in kimlik-tabanlı kriptosistem önerisi 50
7.1.2. Kimlik-tabanlı kriptosistemler ve RSA 51
7.1.3. Tsujii-Itoh kimlik tabanlı kriptosistemi 52
7.2. Kimlik-Tabanlı Sayısal Ġmza Sistemleri 56
7.2.1. Shamir‟in kimlik-tabanlı imza sistemi önerisi 56
7.3. Kimlik Tabanlı Anahtar Dağıtım Sistemleri 57
7.3.1. Tsujii – Itoh kimlik tabanlı anahtar dağıtım sistemi 57
7.3.2. Maurer – Yacobi etkileşimsiz anahtar dağıtım sistemi 57
8. KĠMLĠK TABANLI GÜVENLĠ VERĠ AKTARIM SĠSTEMĠ (KT-GVAS) 61
8.1. Genel Özellikler 61
8.2. Kullanılan Kimlik-Tabanlı Kriptosistem 62
8.2.1. Şifreleme sistemi 62
8.2.2. Kimlik bilgisi 63
8.3. Sistem ĠĢleyiĢi 64
8.4. KarmaĢıklık Analizi 66
8.5. KT-GVAS ‘da Sayısal Ġmza 67
8.6. KT-GVAS Kullanımı 67
8.6.1. Anahtar üretim merkezi modülü 67
8.6.2. Kullanıcı modülü 69
9. SONUÇLAR VE TARTIġMA 72
9.1. KTK’ların Artıları Eksileri 72
9.2. Tasarlanan Sistem 74
9.3. ĠyileĢtirmeler 75

KAYNAKLAR 78

ÖZGEÇMĠġ 80

iv
KISALTMALAR

M : Gönderilen metin
C : Metnin şifrelenmiş hali
K : Anahtar
E : Şifreleme Fonksiyonu
D : Şifre Çözme Fonksiyonu
IV : Başlangıç Vektörü
KTK : Kimlik Tabanlı Kriptosistem
AÜM : Anahtar Üretim Merkezi
DES : Data Encryption Standart
AES : Advanced Encryption Standart
NIST : National Institute of Standarts and Technologies
SHA : Secure Hashing Algoritm
NSA : National SecurityAgency
CA : Certification Authority
PKI : Public Key Infrastructure
DSS : Digital Signature Standart

v
TABLO LĠSTESĠ

Sayfa No

Tablo 2.1 : IP başlangıç permütasyonu .................................................................. 12


Tablo 2.2 : IP-1 permütasyonu ................................................................................ 13
Tablo 2.3 : DES E genişletme fonksiyonu ............................................................. 14
Tablo 2.4 : Des s-kutusu 1 ...................................................................................... 15
Tablo 2.5 : DES S-kutusu 2 .................................................................................... 16
Tablo 2.6 : DES S-kutusu 3 .................................................................................... 16
Tablo 2.7 : DES S-kutusu 4 .................................................................................... 16
Tablo 2.8 : DES S-kutusu 5 .................................................................................... 16
Tablo 2.9 : DES S-kutusu 6 .................................................................................... 16
Tablo 2.10 : DES S-kutusu 7 .................................................................................... 16
Tablo 2.11 : DES S-kutusu 8 .................................................................................... 16
Tablo 2.12 : P permütasyonu .................................................................................... 17
Tablo 2.13 : PC-1 permütasyonu .............................................................................. 18
Tablo 2.14 : PC-2 permütasyonu .............................................................................. 18
Tablo 2.15 : Rijndael fonksiyonları - değişkenleri ................................................... 21
Tablo 2.16 : Rijndael S-kutusu ................................................................................. 24
Tablo 7.1 : Tsujii-Itoh kriptosistemi sistem parametreleri ..................................... 54

vi
ġEKĠL LĠSTESĠ

Sayfa No

ġekil 2.1 : Gizli-anahtarlı kriptosistemler .................................................................. 4


ġekil 2.2 : ECB modu ................................................................................................ 7
ġekil 2.3 : CBC modu ................................................................................................ 8
ġekil 2.4 : CFB modu .............................................................................................. 10
ġekil 2.5 : OFB modu .............................................................................................. 11
ġekil 2.6 : DES algoritması...................................................................................... 13
ġekil 2.7 : DES f fonksiyonu ................................................................................... 15
ġekil 2.8 : Rijndael temel akış şeması ..................................................................... 22
ġekil 2.9 : Shiftrows() örneği ................................................................................... 23
ġekil 3.1 : Açık-anahtarlı kriptosistemler ................................................................ 27
ġekil 5.1 : Sayısal imzaların basit işleyiş şeması ..................................................... 40
ġekil 5.2 : Sayısal imzalar – hash fonksiyonları ...................................................... 41
ġekil 7.1 : Kimlik tabanlı kriptosistemler / mesaj şifreleme.................................... 49
ġekil 7.2 : Kimlik-tabanlı kriptosistem işleyiş şeması ............................................. 51
ġekil 8.1 : KT-GVAS ağ şeması .............................................................................. 61
ġekil 8.2 : Özel anahtarların üretilmesi.................................................................... 64
ġekil 8.3 : Rijndael anahtarının üretilmesi............................................................... 65
ġekil 8.4 : Mesajın şifrelenmesi / şifrenin çözülmesi .............................................. 65
ġekil 8.5 : KT-GVAS anahtar üretim merkezi......................................................... 68
ġekil 8.6 : KT-GVAS kullanıcı modülü ana ekran .................................................. 69
ġekil 8.7 : KT-GVAS kullanıcı güvenli mesajlaşma ekranı .................................... 70
ġekil 8.8 : KT-GVAS kullanıcı-merkez bağlantısı ekranı ....................................... 71

vii
ÖZET

Veri güvenliğini sağlayabilme amaçlı çalışmalar çok eski çağlardan beri


süregelmektedir. Bireysel gizliliği ve veri güvenliğini koruyabilmek günümüz
Internet çağında daha da kritik bir hale gelmiştir. Bu hedefe ulaşabilmek için
kriptografik uygulamaların yaygın olarak kullanımı zorunludur.

Kriptografi alanında ki çalışmalar, oluşan ihtiyaca bağlı olarak son yıllarda artmıştır.
Çok eskilerden beri bilinen gizli anahtarlı kriptosistemlerin yanı sıra, 1976 yılında
açık-anahtarlı kriptosistem kavramı ortaya atılmıştır ve bugün dahi yaygın olarak
kullanılan pek çok kriptografik uygulama açık anahtarlı kriptosistemler içermektedir.

Kriptografi alanında, daha iyiyi bulma adına yapılan çalışmalardan biri de 1984
yılında Adi Shamir tarafından ortaya atılan “Kimlik Tabanlı Kriptosistemler” „dir.
Basit olarak, her kullanıcının kimliğini tanımlayan bir bilginin ( ad, telefon, e-mail
adresi, IP no vb.) o kullanıcının açık anahtarı olarak kullanılmasına dayanan bu
kavram üzerinde ileriki yıllarda pek çok çalışma yapılmış ve hala yapılmaktadır.

Bu tez çalışmasında “Kimlik Tabanlı Kriptosistemler” konusunda şimdiye kadar


yapılmış olan çalışmalar incelenmiştir. Ayrıca, bir yerel alan ağında güvenli veri
haberleşmesini sağlamak üzere bir “Kimlik Tabanlı Güvenli Veri Aktarım
Uygulaması” tasarlanmıştır.

Tasarlanan sistemde kullanıcı kimlik bilgileri kullanıcı açık anahtarları olarak kabul
edilmekte ve bir merkezi Anahtar Üretim Merkezi ile kullanıcıların özel anahtarları
üretilmektedir. Maurer-Yacobi Etkileşimsiz Anahtar Dağıtım Sistemi kullanılarak,
kullanıcıların açık ve özel anahtarları sayesinde bir simetrik anahtar oluşturulmakta
ve bu anahtar bir simetrik şifreleme algoritması ile birlikte veri haberleşmesinde
kullanılmaktadır. Sistemde kullanılan simetrik şifreleme algoritması
Rijndael(AES)‟dir.

viii
SUMMARY

Data security researches have been going on since ancient times. In today‟s Internet
age, protecting personal secrecy and data security is more critical than the past. In
order to reach this aim, the cryptographic tools should be used.

Because of the high demands, the researches in the field of cryptography have
increased rapidly. In addition to the secret-key cryptography that is known since
ancient times, in 1976, the concept of public-key cryptography was proposed. Even
now, most of the well known cryptographic tools use public-key cryptography.

One of the proposed concepts that aims to find the ways of being more secure is
“Identity-Based Cryptosystems” that was suggested by Adi Shamir in 1984. The
system is based on a simple fact that for every user, information about his identity is
used as his public key. The information about the identity can be something like the
user‟s name, phone number, e-mail address, IP number etc. In the further times and
even today more researches on this concept has been made.

In this thesis, the researches about the “Identity-Based Cryptosystems” are studied.
Also an Identity-Based Secure Data Transfer Application is designed for providing
secure data communication in a local area network.

In the designed system, users ID informations are accepted as the user‟s public keys
and user‟s private keys are produced by a Key Producing Center. With the use of
Maurer-Yacobi Non-Interactive Key Distribution System, a symmetric key is
produced with the help of the user‟s public and private key pairs. This symmetric key
is used for encrypting / decrypting messages in a symmetrical algorithm. The
symmetrical encryption algorithm that is used in this system is Rijndael (AES)
algorithm.

ix
1. GĠRĠġ

1.1. Konu

Bilgileri güvenli tutabilme bilimi olarak tanımlanabilecek olan kriptografi [1] çok
eski çağlardan beri öncelik askeri ve diplomatik alanlarda olmak üzere yaygın
kullanım alanı bulmuştur. Günümüz Internet çağında ise bireysel iletişimin çok
yaygınlaşması ve Internet uygulamalarının finans, ticaret, kamu hizmetleri gibi kritik
alanlara yayılmış bulunması bilgi güvenliğinin sağlanmasını olmazsa olmaz bir
koşul haline getirmiştir. Oluşan bu ihtiyaca paralel olarak, kriptografi alanında
yapılan çalışmalarda ve kriptografik uygulamaların kullanımında büyük artış
gözlenmiştir.

Kriptografinin temel elemanları şifreleme/şifre çözme algoritmaları ve anahtarlardır.


Şifreleme/şifre çözme algoritmaları, giriş verisini şifreleyen / giriş verisinin şifresini
çözen matematiksel fonksiyonlardır. Anahtar ise şifreleme/şifre çözme işlemlerinde
kullanılan, algoritmaların parametre olarak kullandığı, haberleşen taraflardan birine
ait ya da ortak olan büyük sayılardır.

Kriptosistem ise kullanılan şifreleme/şifre çözme algoritması, mümkün olan tüm


mesajlar, bunlara karşı düşen şifrelenmiş mesajlar ve anahtarlardan oluşur.

Bir kriptosistemin sağlaması gereken dört temel koşul vardır : Kişisel gizlilik, bilgi
bütünlüğü, kimlik doğrulama ve inkar edememe [1]. Kişisel gizlilik gönderilen
mesajların ya da eldeki kişiye özel bilgilerin başkaları tarafından okunamaması,
gizliliğin korunmasını gerektirir. Bilgi bütünlüğünün sağlanması ile gönderilen
mesajların üçüncü şahıslar tarafından değiştirilmeden alıcısına ulaştırılması
hedeflenmektedir. Kimlik doğrulama, mesajı gönderen ve alan tarafın birbirlerinin
kimliklerinden emin olmalarını ve bir üçüncü tarafın kendisini gönderici veya alıcı

1
olarak göstererek mesaj gönderip alamamasını sağlar. İnkar edememe özelliği ise
mesaj göndericisinin daha sonra bu mesajı gönderdiğini inkar edememesidir.

Günümüzde kullanılan kriptosistemler iki temel grupta değerlendirilebilir. Çok eski


yıllardan beri kullanılan gizli-anahtarlı (simetrik) kriptosistemlerin yanı sıra 1977
yılında açık-anahtarlı kriptosistem kavramı ortaya atılmıştır ve bugün dahi yaygın
olarak kullanılan pek çok kriptografik uygulama açık anahtarlı kriptosistemler
içermektedir.

Kriptografi alanında, daha iyiyi bulma adına yapılan çalışmalardan biri de 1984
yılında Adi Shamir tarafından ortaya atılan “Kimlik Tabanlı Kriptosistemler” „dir.
Basit olarak her kullanıcının kimliğini tanımlayan bir bilginin ( ad, telefon, e-mail
adresi, IP no vb.) o kullanıcının açık anahtarı olarak kullanılmasına dayanan bu
kavram üzerinde ileri ki yıllarda da pek çok çalışma yapılmış ve hala yapılmaktadır.

Bu tez çalışmasında “Kimlik Tabanlı Kriptosistemler” konusunda şimdiye kadar


yapılmış olan çalışmalar incelenmiştir. Ayrıca, bir yerel alan ağında güvenli veri
haberleşmesini sağlamak üzere bir “Kimlik Tabanlı Güvenli Veri Aktarım
Uygulaması” tasarlanmıştır.

Bunun yanı sıra temel kriptografik konular ve tasarlanan sistemde ihtiyaç duyulan
algoritmalar incelenmiştir.

Gizli Anahtarlı Kriptografi kavramı Bölüm 2‟de, Açık Anahtarlı Kriptografi kavramı
ise Bölüm 3‟de incelenmiştir. Bu bölümlerde bu kavramları kullanan örnek sistemler
de tanıtılmıştır. Tasarlanan Kimlik Tabanlı Güvenli Veri Aktarım Sistemi‟nde
kullanılan Rijndael (AES) algoritmasının detayları da Bölüm 2‟de yer almaktadır.

Temel kriptografik öğelerden Hash Fonksiyonları Bölüm 4‟de, Sayısal İmzalar ise
Bölüm 5‟de yer almaktadır. Anahtar Dağıtım Sistemleri ise Bölüm 6‟da tanıtılmıştır.

Kimlik Tabanlı Kriptosistemler konusu Bölüm 7‟de bulunmaktadır. Kimlik Tabanlı


Şifreleme, Kimlik Tabanlı Sayısal İmza Sistemleri ve Kimlik Tabanlı Anahtar
Dağıtım Sistemleri bu bölümde incelenmiştir.

2
Bölüm 8 ise, tez çalışması kapsamında tasarlanmış olan Kimlik Tabanlı Güvenli Veri
Aktarım Sistemi‟ne (KT-GVAS) ayrılmıştır. Sistemin detaylı tanıtımı bu bölümde
yapılmıştır.

Bölüm 9‟da ise sonuçlar ve tartışma yer almaktadır.

1.2. ÇalıĢmanın Amacı

Bu çalışmadaki amaç, üzerinde oldukça fazla teorik çalışma yapılmış olmasına


rağmen pratikte aynı oranda kullanım oranı bulamamış olan kimlik tabanlı
kriptosistemleri incelemektir.

Kimlik Tabanlı Şifreleme, Kimlik Tabanlı Sayısal İmza, Kimlik Tabanlı Anahtar
Dağıtım Sistemi kavramları ve bu konularda ortaya konan uygulamalar tez
kapsamında incelenmiş ve bir yerel ağ ortamında güvenli veri alışverişini sağlamak
üzere kimlik tabanlı bir veri aktarım uygulaması tasarlanmıştır.

Tasarlanan sistem ile ve genel olarak kimlik tabanlı kriptosistemler ile ilgili varılan
olumlu ve olumsuz görüşler belirtilmiştir.

3
2. GĠZLĠ-ANAHTARLI KRĠPTOGRAFĠ (SĠMETRĠK KRĠPTOGRAFĠ)

Gizli-Anahtarlı Kriptografi, kriptografinin ilk çağlardan beri kullanılan klasik


şeklidir. Gizli-Anahtarlı bir kriptosistemde, mesaj alışverişinde bulunan taraflar bir
sırrı paylaşırlar. Bu sır mesajları şifrelemek ve şifrelenmiş mesajları çözmek için
kullanılan anahtardır. Mesaj yollamak isteyen taraf, ortak gizli anahtarı kullanarak
belirlenmiş algoritma ile mesajı şifreler, alıcı da yine aynı anahtarı kullanarak
şifrelenmiş mesajı çözer. Gizli-anahtarlı kriptosistemlerde, haberleşecek olan
tarafların mesaj transferine başlamadan önce, güvenli bir kanal üzerinden
kullanılacak anahtarı belirlemeleri gereklidir.

K K

012 ġifre 012


ABC ġifreleme ABC
Çözme
DEF EK() DK()
DEF
GHI GHI

Mesaj ġifrelenmiĢ Mesaj Mesaj

Şekil 2.1 Gizli-anahtarlı Kriptosistemler

M gönderilmek istenen mesaj, K kullanılan gizli anahtar, E şifreleme fonksiyonu, D


şifre çözme fonksiyonu, C mesajın şifrelenmiş hali olmak üzere gizli-anahtarlı
kriptografinin şifreleme ve şifre çözme işlemleri aşağıdaki gibi ifade edilebilir.

C  E K (M )
(2.1)
M  DK (C )

4
Şifreleme ve şifre çözme fonksiyonları, kullanılan algoritmaya bağlı olarak farklı
fonksiyonlar olabilecekleri gibi, aynı fonksiyonda olabilir. Mesaj gönderen taraf,
mesajı K anahtarını kullanarak şifreler, şifrelenmiş mesajı alan taraf ise, aynı K
anahtarını kullanarak şifre çözme fonksiyonu yardımıyla gönderilmiş olan metini
elde eder.

Gizli-anahtarlı şifreleme algoritmaları temelde Dizi Şifreleme Algoritmaları ve Blok


Şifreleme Algoritmaları olmak üzere ikiye ayrılabilir. Blok Şifreleme Algoritmaları,
şifrelenecek metni genelde 64 bit yada daha uzun bloklara ayırarak işleme tabi
tutarlar. Dizi Şifreleme Algoritmaları ise şifrelenecek metni her seferinde bir bit yada
bayt olarak işleme alırlar. Blok Şifreleme Algoritmaları‟nda aynı algoritma ve aynı
gizli anahtar kullanılması durumunda, bir metin bloğu her zaman aynı şifrelenmiş
değere karşı düşerken, Dizi Şifreleme Algoritmalarında bir bit yada baytın
şifrelenmiş değeri her zaman farklı olacaktır [1, s.189].

2.1. Dizi ġifreleme Algoritmaları

Dizi Şifreleme Algoritmaları, şifrelenecek mesajın her adımda bir karakterini


şifreleyen algoritmalardır. Bu şifreleme esnasında zamanla değişen bir şifreleme
algoritması kullanılır. Blok Şifreleme Algoritmaları ise tam tersi bir şekilde sabit
boyuttaki veri bloğunu sabit bir algoritma ile şifrelerler.

Dizi Şifreleyiciler metni her adımda birer karakter olarak şifrelerler ve işlem
süresince şifreleme fonksiyonu değişebilir. Bu yüzden dizi şifreleyicilerin bellekli
olduğu söylenebilir. Şifreleme işlemi metin ve gizli-anahtarın yanı sıra bir önceki
işlemin sonucundan da etkilenebileceği için Dizi Şifreleyiciler, Durum Şifreleyiciler
olarak da adlandırılmaktadır.

Dizi Şifreleyiciler, Blok Şifreleyicilere göre genelde daha hızlıdırlar ve donanım


uygulamaları daha az karmaşıktır. Tamponlamanın sınırlı olduğu veya karakterlerin
ayrı ayrı işlenmesinin gerektiği uygulamalarda (özellikle haberleşme
uygulamalarında) kullanılırlar [2, s.191-193].

5
Dizi şifreleyicilerin çalışma mantığı temel olarak x=x1x2x3... metninin şifrelenmesi
için z=z1z2z3..... anahtar dizisinin yaratılmasına dayanır. Şifrelenmiş metin c=c1c2c3...
olarak gösterilirse, Şifreleme işlemi ise (2.2)‟ de ki gibi gerçeklenir.

c  c1c2 c3 .....  ez1 ( x1 ), ez2 ( x2 ), ez3 ( x3 ).... (2.2)

K gizli-anahtar, x=x1x2x3... de şifrelenecek metin olmak üzere; anahtar dizisini


oluşturacak elemanlara ait tanım aşağıdadır. zi (anahtar dizisinin i. elemanı) ve fi „de
anahtar dizisinin üretiminde kullanılacak olan fonksiyondur.

zi  f i ( K , x1 ,......, xi 1 ) (2.3)

Anahtar dizisinin i. elemanını üretmek için kullanılacak fi fonksiyonu, gizli anahtar


K‟nın ve metnin ilk i-1 karakterinin bir fonksiyonudur.

Anahtar dizisinin i. elemanı zi, metnin i. elemanı xi‟yi (2.4) de ki şekilde şifreler.

c i  e zi (x i ) (2.4)

x=x1x2x3... metninin tümünün şifrelenebilmesi için z1,c1,z2,c2,z3,c3,... ifadelerinin


tamamının hesaplanmış olması gereklidir.

Benzer şekilde c=c1c2c3... şifrelenmiş metninin çözülebilmesi için de


z1,x1,z2,x2,z3,x3,...katarının tamamının hesaplanması gereklidir [3, s.20-22].

2.2. Blok ġifreleme Algoritmaları

Blok Şifreleme Algoritmaları - Blok şifreleyiciler - n bitlik bir metni şifreleyerek, n-


bitlik bir şifrelenmiş metin elde eden fonksiyonlardır. Buradaki n değeri blok
uzunluğu olarak adlandırılır. Şifrelenecek metin blok uzunluğu kadar bloklara
ayrılır, ve her blok ayrı ayrı şifreleme işlemine girer [2,s.23-237],[3,s.20-25].

6
Literatürde, önerilmiş ve uygulama alanı bulmuş çok sayıda blok şifreleyici
mevcuttur. Bunlardan DES ve Rijndael aşağıda incelenecektir.

2.2.1. ĠĢlem Modları

Blok boyutundan daha uzun olan metinlerin şifrelenmesi ve şifrelerin çözülmesi


sırasında metnin bloklarına ayrılması ve daha sonra birleştirilmesi için değişik yollar
izlenebilir. İzlenebilecek bu yollar işlem modları olarak adlandırılır ve işlem modları
aşağıda incelenmiştir.

2.2.1.1. ECB Modu:

Şifrelenecek olan metin belirlenmiş blok boyutunda bloklara (örneğin 64 bit) ayrılır.
Şifrelenecek metni, xi bir blok olmak üzere, x=x1x2x3... şeklinde gösterirsek, her bir
xi aynı K anahtarı ile şifrelenerek c=c1c2c3... şifrelenmiş metni oluşturulur. Elde
edilen ci şifrelenmiş metin bloklarının birleştirilmesi ile c şifrelenmiş metni oluşur.

ECB modunun kullanılması durumunda, aynı metinlerin aynı anahtarla şifrelenmiş


karşılıkları da aynı olacaktır. Bir bloğun şifreleme / çözme işlemleri diğer bloklardan
bağımsızdır. Blokların sıralamasının değişmesi, şifrelenmiş metinde de sıralamanın
değişmesine yol açar.

Bir blokta oluşabilecek bir yada birkaç bitlik hata sadece söz konusu bloğa karşı
düşen şifrelenmiş metinde hataya yol açar, diğer blokları etkilemez. Şekil 2.2 „de
ECB modunun çalışma şeması verilmiştir.

x1 x2 xn c1 c2 cn

K E K E ………. K E K D K D ………. K D
. .

c1 c2 cn x1 x2 xn

ġifreleme ġifre Çözme

Şekil 2.2 ECB Modu

7
2.2.1.2. CBC : ġifreli Bloklar Zinciri

Bu modda, her şifrelenmiş metin bloğu ci „nin elde edilebilmesi için xi metin bloğu
ile bir önceki bloğa ait ci-1 şifreli bloğu Dar-Veya işlemine tabi tutulur. Başlangıç
durumu için n- blok boyundaki IV başlangıç vektörü belirlenerek co = IV kabulu
yapılır. Bunu takiben c1,c2,c3... (2.5) „den bulunur.

ci  eK ( yi 1  xi ), i 1 (2.5)

Aynı anahtar ve aynı başlangıç vektörü IV ün kullanılması durumunda, sabit metnin


şifrelenmesi sonucu üretilecek şifrelenmiş metin de sabit olacaktır.

cj şifrelenmiş bloğu; xj „ye ve öncesinde gelen tüm diğer metin bloklarına


bağımlıdır. Metin bloklarının yerlerinin değiştirilmesi yine bu bağımlılıktan dolayı
farklı şifrelenmiş metinlerin oluşmasına yol açar. Şekil 2.3 „de CBC modunun
çalışma şeması verilmiştir.

x1 x2 xn c1 c2 Cn-1 cn

+ + +
DK DK ………. DK
IV = c0
.
EK EK ………. EK
. + + +

IV = c0 c1 c2 cn x1 x2 xn
Cn-1

ġifreleme ġifre Çözme

Şekil 2.3 CBC Modu

2.2.1.3. CFB Modu (ġifrelenmiĢ metin geri besleme) :

Bu çalışma şeklinde, c0=IV başlangıç vektörü ile başlanarak, ci kullanılarak zi katarı


oluşturulur.

zi  E K (ci 1 ) , i 1 (2.6)

8
i. şifrelenmiş metin bloğu ci „de aşağıdaki eşitlikten elde edilir.

ci  xi  zi , i 1 (2.7)

CFB modunda CBC‟den farklı olarak ci şifrelenmiş bloğu şifrelenmekte ve


şifrelendikten sonra xi metin bloğu ile dar-veya „lanmaktadır.

CFB modunda, k-bitlik geri besleme verilmesi de mümkündür (k≤n). Yani Dar-veya
işlemine giren bileşenlerin (şifrelemede xi ve zi, şifre çözmede ci ve zi) k bitlik
kısımlarının işleme tabi tutulması sağlanırsa sonuçta bütün şifrelenmiş metin yada
elde edilmiş metin k bit uzunluğunda olacaktır. Pratikte CFB modu 1 bitlik yada 8
bitlik olarak kullanılmaktadır.

CFB modunda, aynı K anahtarı ve aynı başlangıç vektörü IV‟ ün kullanılması


durumunda elde edilen şifrelenmiş metin aynı olacaktır.

Bu modda cj şifrelenmiş bloğu; xj „ye ve öncesinde gelen tüm diğer metin bloklarına
bağımlıdır. Metin bloklarının yerlerinin değiştirilmesi yine bu bağımlılıktan dolayı
farklı şifrelenmiş metinlerin oluşmasına yol açar.

CFB modunda şifreleme fonksiyonu E , hem şifreleme hem de şifre çözme amacı ile
kullanılmaktadır. Bu yüzden kullanılan blok şifreleyicinin bir açık-anahtarlı
algoritma olması durumunda CFB‟nin kullanılması mümkün değildir, yerine CBC
modunun kullanılması gerekir. Şekil 2-4 „de CFB çalışma şeması verilmiştir. Bu
şekilde n-bitlik çıkış elde edileceği kabulu yapılmıştır. k-bitlik çıkış istenmesi
durumunda dar-veya işlemine zi ve ci‟nin k bitlik bölümlerinin girmesinin
sağlanması gerekecekti.

9
x1 x2 xn IV = c0 c1 c2 cn

EK EK EK EK EK EK
………. ……….
+ + . + .
+ + +

IV = c0 c1 c2 cn
Cn-1 x1 x2 Xn-1 xn

ġifreleme ġifre Çözme

Şekil 2.4 CFB Modu

2.2.1.4. OFB Modu (ÇıkıĢ Geri Besleme) :

OFB modu temelde CFB ile benzerlik göstermesine rağmen, geri beslemenin
şifrelenmiş metinden değilde, şifreleme kutusunun çıkışından (zi) gelmesi ile
CFB‟den ayrılır. OFB modu da CFB gibi değişik blok uzunluklarında (k≤n)
şifreleme imkanı tanır. Anahtar dizisi başlangıç vektörü IV‟ün tekrarlanarak
şifrelenmesi ile elde edilir. z0 = IV başlangıç koşulu olarak tanımlandıktan sonra, z
katarını oluşturan zi değerleri (2.8) den elde edilir.

zi  E K ( zi 1 ), i 1 (2.8)

Metin blokları ise (2.9) hesaplanarak şifrelenir.

ci  xi  zi , i 1 (2.9)

Aynı K anahtarı ve aynı IV başlangıç vektörünün kullanılması durumunda, bir metin


için yapılacak tüm şifreleme denemeleri aynı sonucu verecektir.

Şifrelenmiş metin bloğu ci daha önceki ifrelenmiş metin bloklarından bağımsızdır.


Bu noktada OFB CFB‟den ayrılır. Şekil 2.5‟ de OFB moduna ilişkin temel çalışma
şeması verilmiştir. Nurada ci‟nin n-bir olduğu Kabul edilmiştir. k-bit‟lik şifrelenmiş
metin elde edilmesinin istenmesi durumunda, zi ve xi „nin k bitlik kısımlarının dar-
veya işlemine girmesi gereklidir.

10
IV = z0 IV = z0

z1 z2 zn z1 z2 zn
EK EK EK EK EK EK

………. ……….
+ + . + + + . +

x1 x2 xn c1 c2 cn

c1 c2 cn x1 x2 xn

ġifreleme ġifre Çözme

Şekil 2.5 OFB Modu

2.2.2. DES Algoritması

2.2.2.1. Tarihçe

DES (Veri Şifreleme Standardı), en yaygın olarak bilinen ve kullanılan gizli anahtarlı
blok şifreleyicidir. 1972 yılında Amerikan Ulusal Standartlar ve Teknoloji
Enstitüsü‟nün (NIST) standart bir şifreleme algoritması geliştirilmesi için yaptığı
çağrı, DES‟in doğuşunun ilk sinyali olmuştur. IBM‟de 1970 lerde geliştirilen
LUCIFER adlı algoritmaya dayanan DES yine IBM labaratuvarlarında geliştirilmiş
ve 17 Mart 1975‟de kamuya sunulmuştur. Ardından yapılan uzun kriptanaliz
çalışmaları sonrası, Ocak 1977‟de standart olarak kabul edilmiştir [4].

1997 yılında NIST DES‟in yerini alacak yeni bir simetrik blok-şifreleyici
yarışmasının ilk duyurusunu yaptı. Bu yarışma sonucu seçilen Rijndael algoritması
2001 yılında İleri Şifreleme Standardı (AES) olarak yayımlandı [5]. Bu sonuç
DES‟in standartlaşmış tek algoritma olması durumunu ortadan kaldırdı. DES,
Amerikan resmi kurumları arasında kullanımdan tamamen kaldırılırken, DES‟in bir
türevi olan Triple-DES‟in kullanımı bir sure için daha devam edecektir.

2.2.2.2. Algoritmanın Yapısı

DES 64 bit blok uzunluğundaki metinleri 56 bitlik K gizli anahtarı ile şifreleyerek
sonuç olarak yine 64 bitlik şifrelenmiş bloklar oluşturan bir simetrik blok şifreleme
algoritmasıdır. [3, s.70-95]

11
DES‟te kullanılan gizli anahtarın uzunluğu 56 bittir. Genelde anahtar 64 bitlik bir
sayıdır ancak bu sayının 8 biti parite kontrolü amaçlı olarak kullanılır, 56 biti ise
gerçek anahtarı oluşturur. Algoritmanın tüm güvenliği anahtara dayanmaktadır.
Algoritmayı oluşturan temel adımlar aşağıda listelenmiştir :

1. Verilmiş bir x metni (64 bit) IP başlangıç permütasyonundan geçirilerek x0


haline dönüştürülür. L0 x0 „ın ilk 32 bitini, R0 „da son 32 bitini göstermek üzere
(2.10) yazılabilir.

x 0  IP(x)  L 0 R 0 (2.10)

2. 16 kez aşağıdaki fonksiyon hesaplanır. 1≤ i ≤16 olmak üzere

Li  Ri 1
(2.11)
Ri  Li 1  f ( Ri 1 , K i )

(2.11)‟de Ki gizli anahtar K‟dan hesaplanmış 48 bitlik alt anahtarları


göstermektedir. f fonksiyonunun tanımı ise aşağıda verilmiştir.

3. IP-1 ters fonksiyonu R16L16 „ya uygulanır ve şifrelenmiş metin y elde edilir.

y  IP 1 ( R16 L16 ) (2.12)

Tablo 2.1 IP Başlangıç Permütasyonu


IP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

12
Tablo 2.1 de IP başlangıç permütasyonu, Tablo 2.2‟de ise IP-1 ters permütasyonu
verilmiştir. Tablolar, permütasyon sırasında bitlerin diziliş sırasını göstermektedir.
IP(x) in ilk biti x‟in 58. biti, IP(x) in ikinci biti x‟in 50. biti olacaktır vb.

Tablo 2.2 IP-1 Permütasyonu


-1
IP
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

Metin = x

IP

L0 R0

f K1

1.sarmal

L1 R1

L15 R15

f K16

16. sarmal
+

L16 R16

Şekil 2.6 DES Algoritması

13
DES Algoritmasının temel akış diyagramı Şekil2.6 da verilmiştir.

Tablo 2.3 DES E Genişletme Fonksiyonu


E
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1

2.2.2.3. DES - f fonksiyonu

DES sarmallarında kullanılan f fonksiyonu, 32 bitlik A katarını ve 48 bitlik J katarını


giriş parametresi olarak alır ve 32 bitlik bir çıkış verir. Bu işlemi gerçekleştirirken şu
aşamalardan geçilir :

1. A, genişletme fonksiyonu E yardımıyla 48 bite genişletilir. E


fonksiyonu Tablo 2.3 „de verilmiştir.

2. E(A)  J = B hesaplanır ve B, 6 bitlik 8 bileşen halinde yazılır.

3. B= Bi değerleri S-kutularından geçirilir. Herbir S-kutusu 0-15 arası


tam sayı değerlerden oluşan 4x16 lık sabit bir matristir.
Bj=B1B2B3B4B5B6 olarak gösterilirse, Sj(Bj) hesaplanırken B1B6
bitleri Sj kutusundaki satır numarasını, B2B3B4B5 bitleri ise sütun
numarasını belirlemek üzere, belirlenen satır-sütun çiftinin gösterdiği
matris hücresindeki tam sayı (C) dört bit ile gösterilir ve S-kutusunun
çıkışı olur. S-kutularına ait tablolar Tablo 2.4 -2.11 „de verilmiştir.

C j  S j ( B j ), 1 j  8 (2.13)

14
4. C=C1C2C3C4C5C6C7C8 olmak üzere 32 bitlik C sayısı sabit P
permütasyonundan geçirilir. Bu işlemin sonucu f fonksiyonunun çıkış
değeridir. P permütasyonu Tablo 2.12‟de verilmiştir.

f ( A, J )  P(C ) (2.14)

f fonksiyonunun işleyişi aşağıdaki şekilde (Şekil 2.7) özetlenmiştir.

A J
(32 bit) (48 bit)

E(A) (48 bit) +

B1 B2 B3 B4 B5 B6 B7 B8

S1 S2 S3 S4 S5 S6 S7 S8

C1 C2 C3 C4 C5 C6 C7 C8

f(A,J)

Şekil 2.7 DES f fonksiyonu

Tablo 2.4 Des S-Kutusu 1


14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

15
Tablo 2.5 DES S-Kutusu 2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

Tablo 2.6 DES S-Kutusu 3


10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

Tablo 2.7 DES S-Kutusu 4


7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

Tablo 2.8 DES S-Kutusu 5


2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

Tablo 2.9 DES S-Kutusu 6


12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

Tablo 2.10 DES S-Kutusu 7


4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

Tablo 2.11 DES S-Kutusu 8


13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

16
Tablo 2.12 P Permütasyonu
P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25

2.2.2.4. Sarmallarda Kullanılan Alt Anahtarların Elde Edilmesi

Sarmallarda kullanılan Ki (1 ≤ i ≤16) anahtarları gizli anahtar K‟dan elde edilir.


Parite bitleri dikkate alınmadan 56 bitlik K anahtarı aşağıdaki işlemlerden geçerek K i
anahtarlarına ulaşılır.

1. K anahtarı PC-1 sabit permütasyon işlemine sokulur. C0 ilk 28 biti,


D0 son 28 biti göstermek üzere

PC  1( K )  C0 D0 (2.15)

PC-1 permütasyonu Tablo 2.13 de verilmiştir.

2. 1 ≤ i ≤16 için Ci, Di ve Ki (2.16) den hesaplanır.

Ci  LS i (Ci  1)
Di  LS i ( Di  1) (2.16)
K i  PC  2(Ci Di )

Bu eşitliklerde LSi i‟nin değerine bağlı olarak sola doğru bir yada iki
pozisyon dairesel öteleme hareketidir. I = 1,2,9,16 olması durumunda
öteleme işlemi 1 bit, diğer durumlarda ise iki bit olacaktır.

17
(2.16) dan elde edilen Ki değerleri sarmallarda kullanılan alt
anahtarlardır.

PC-2 ise Tablo 2.14‟ de listelenmiş olan sabit bir permütasyondur.

Tablo 2.13 PC-1 Permütasyonu


57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

Tablo 2.14 PC-2 Permütasyonu


14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

2.2.2.5. DES’te ġifre Çözme

Yukarıda verilen DES şifreleme algoritması, DES ile şifrelenmiş metinleri çözmek
için bir iki ufak değişiklik dışında neredeyse aynen kullanılır. Şifre çözmede ki
farklar sarmallarda kullanılan Ki anahtarlarının ters sırada kullanılması gerekliliği ve
alt anahtarın elde edilmesinde kullanılan öteleme işleminin sol yerine sağa öteleme
olmasıdır. Yani şifrelemede K1,K2,K3,..........,K16 kullanılması durumunda, şifre
çözülmesi sırasında anahtarların K16,K15,.............., K1 sırası ile kullanılması
gereklidir. Öteleme işlemi de öteleme pozisyonu sayısı değişmemek üzere sağa
dairesel ötelemedir.

18
2.2.2.6. DES’in Güvenliği

DES‟in güvenliği üzerinde uzun süreler buyunca birçok çalışma yapıldı.


Algoritmanın dikkati çeken en temel noktaları 56 bitlik anahtar boyunun küçüklüğü,
sarmalların yinelenme sayısı ve S-kutuları idi. S-kutularının içindeki rakamların
karmaşıklığı ve hangi sebepe göre sıralandıklarının belli olmaması önemli bir kuşku
kaynağıydı. [1, s.278]

Sarmalların neden 16 kez yenilendiği önemli eleştiri konularından biri idi. Sekiz tur
sonunda ortaya çıkan şifrelenmiş metnin tüm metinlerin ve tüm anahtarların bir
rassal fonksiyonu olduğu ve 8 turdan sonra devam etmenin anlamı olmadığı
Konnheim tarafından dile getirildi [1]. DES‟in daha az tur sarmal kullanan
versiyonları da geliştirildi ancak bu versiyonların tamamı kırıldı. Biham ve Shamir‟in
diferansiyel kriptanalizi 16 turdan daha az tur kullanılması durumunda belirli-metin
atağıyla şifrenin kırılabileceğini gösterdi.

S-kutularının içerdikleri tamsayıların yerleşimi, NSA‟nın bunlardan faydalanarak


algoritmaya bir arka kapı yerleştirdiği şüphesini doğurdu, Ancak yapılan çalışmalar
bu noktada herhangi bir zayıflığın olmadığını gösterdi

Anahtar boyutunun 56 bit olması günümüzde DES‟in bilinen en zayıf noktasıdır. Bu


durum 256 mevcut anahtar olmasını doğurur ve bir Brute-force atağı ile bunların
denenmesi 1993 yılında Wiener‟in tasarladığı sistemde 3,5 saat tutmaktadır.
Günümüzde ise bu sürenin daha azalmış olması kaçınılmazdır.

2.2.3. AES : Ġleri ġifreleme Standartı

Amerikan Ulusal Standartlar ve Teknoloji Enstitüsü 1997 yılında yeni bir simetrik
şifreleme algoritması standardı belirlemek üzere bir çağrı yaptı. Geliştirilmesi
beklenen yeni algoritma ABD hükümeti birimlerince ve diğer istekli kurumlarca
kullanılacak ve İleri Şifreleme Standartı olarak standartlaştırılacaktı. Algoritma
simetrik bir blok şifreleyici olacak ,128 bit blok uzunluğunu ve 128 – 192 -256 bit
anahtar uzunluğu destekleyecekti.

19
Yapılan çağrı sonucu yarışmaya pek çok algoritma katıldı ve incelemeler sonucunda
beş algoritma , MARS, RC6, Rijndael, Serpent ve Twofish algoritmaları finale kaldı.
Finalist algoritmalar üzerinde daha uzun kriptanaliz çalışmaları yapıldı, gerekli
çevrelerin görüşleri alındı ve tüm beş algoritmanın da AES için gerekli güvenliğe
sahip gözükmelerine rağmen tüm incelemeler ve yorumlar dikkate alınarak Rijndael
Algoritmasının AES için en iyi seçim olduğuna karar verildi. [6] Ekim 2000‟de
yapılan bu seçimden sonra başlayan standartlaştırma işlemleri Kasım 2001‟de
tamamlandı ve Rijndael Aldoritması AES olarak standartlaştı [5].

2.2.4. Rijndael Algoritması

Rijndael algoritması değişik blok boyunu ve değişik anahtar büyüklüğünü


destekleyen bir simetrik blok şifreleme algoritmasıdır. 2001 yılında İleri Şifreleme
Standartı haline gelmiştir. [6]

2.2.4.1. Algoritmanın Yapısı

Rijndael 128, 192 ve 256 bit uzunlukta anahtar boyutunu ve blok uzunluğunu
desteklemektedir. Ancak kriptanaliz çalışmalarının bir alanda yoğunlaşmasını
sağlayabilmek amacı ile 128 bit dışındaki blok boyları AES standardına dahil
edilmememiştir [7]. Standart 128 bit blok boyunu ve 128,192,56 bit anahtar
uzunluğunu içermektedir.

2.2.4.2. Algoritmada Kullanılan Fonksiyonlar, DeğiĢkenler, Semboller

Algoritmada kullanılan temel fonksiyonlar, değişkenler ve semboller aşağıdaki


tabloda kısaca açıklanmıştır.

2.2.4.3. Algoritma ĠĢleyiĢi

Rijndael en küçük işlem birimi olarak baytları kabul eder. Şifrelenecek metin,
şifrelenmiş metin ve anahtar bilgileri bayt dizileri olarak kabul edilirler. Bu diziler 4
satır ve Nb adet sütundan oluşur ve her bir hücre bir baytlık bilgi tutar. Böylece 128

20
bit / 16 baytlık blok uzunluğuna sahip giriş metni 4x4 lük bir dizi olarak
gösterilmektedir. (Nb = 4 için). Bu gösterim Matris olarak adlandırılmaktadır.

Tablo 2.15 Rijndael Fonksiyonları - Değişkenleri

Matris Dört satır ve Nb adet kolondan oluşan matris. Herbir hücre bir
bayt içermekte.

AddRoundKey() Yineleme anahtarının dar-veya işlemi ile Matris‟e eklendiği


fonksiyon. Yineleme anahtarının uzunluğu Nb = 4 için 128 bit.

MixColumns() Matris‟i oluşturan kolonları karıştıran ve yeni kolonlar üreten


fonksiyon

ShiftRows() Matris‟in son üç satırını değişik ofset değerlerine göre dairesel


olarak öteleyen fonksiyon

SubBytes() Belirlenmiş S-kutusuna göre Matris‟i oluşturan her bir baytı


kutudaki karşılığı ile değiştiren fonksiyon

Nb Matris kolon sayısı. 128 bit blok boyu için Nb = 4

Nk Anahtarı oluşturan kolon sayısı. Nk = 4,6,8 (128,192,256 bit


anahtar oyuna göre)

Nr Yineleme turu sayısı. Nr = 10,12,14 (128,192,256 bit anahtar


oyuna göre)

21
Metin

AddRoundKey()

Yineleme 1
SubBytes()

ShiftRows()

MixColumns()

AddRoundKey()

Yineleme Nr-1
SubBytes()

ShiftRows()

MixColumns()

AddRoundKey()

SubBytes()

ShiftRows()

AddRoundKey()

ġifrelenmiĢ
Metin

Şekil 2.8 Rijndael Temel Akış Şeması

Şekil 2.8 „de görüleceği üzere şifrelenecek olan metin önce AddRoundKey()
işleminden geçirilir. Bunun ardından değişken sayıda yineleme işlemi
gerçekleştirilir. Yineleme turlarının sayısı anahtar uzunluğuna bağlıdır. Sırası ile
128,192,256 bitlik anahtar boyları için 9,11,13 yineleme turu gerçeklenecektir.

Herbir yinelemede Subbytes(), Shiftrows(), MixColumns(), AddRoundKey()


işlemleri uygulanır. Her işlemin çıkışı bir sonrakinin giriş değeridir.

Yineleme turlarından sonra, Subbytes(), Shiftrows(), AddRoundKey() işlemleri


uygulanır ve şifrelenmiş metin elde edilir.

22
AddRoundKey Fonksiyonu :

Bu fonksiyonda, bir yineleme anahtarı matrise bit düzeyi dar-veya işlemi yapılarak
eklenir. Her yineleme anahtarı Nb kelimeden oluşmaktadır. Nb = 4 için yineleme
anahtarlarının boyu 128 bittir.

Subbytes() Fonksiyonu:

Giriş matris bilgisini alıp, her bir baytı tanımlanmış bir S-kutusundan geçirerek, bu
baytı karşı düşen s-kutusu değeri ile değiştirir.

ShiftRows() fonksiyonu :

Bu fonksiyon matrisi alır ve son üç satırını belli değişik ofset değerlerine göre
dairesel olarak öteler. Nb = 4 olmak üzere öteleme miktarı 2. satır için 1 , 3.satır için
2, 4.satır için 3 „tür.

S Matrisi Öteleme Öncesi S Matrisi Öteleme Sonrası

S0,0 S0,1 S0,2 S0,3 S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3 S1,1 S1,2 S1,3 S1,0

S2,0 S2,1 S2,2 S2,3 S2,2 S2,3 S2,0 S2,1

S3,0 S3,1 S3,2 S3,3 S3,3 S3,0 S3,1 S3,2


Şekil 2.9 Shiftrows() örneği

23
Tablo 2.16 Rijndael S-Kutusu
99 124 119 123 242 107 111 197
48 1 103 43 254 215 171 118
202 130 201 125 250 89 71 240
173 212 162 175 156 164 114 192
183 253 147 38 54 63 247 204
52 165 229 241 113 216 49 21
4 199 35 195 24 150 5 154
7 18 128 226 235 39 178 117
9 131 44 26 27 110 90 160
82 59 214 179 41 227 47 132
83 209 0 237 32 252 177 91
106 203 190 57 74 76 88 207
208 239 170 251 67 77 51 133
69 249 2 127 80 60 159 168
81 163 64 143 146 157 56 245
188 182 218 33 16 255 243 210
205 12 19 236 95 151 68 23
196 167 126 61 100 93 25 115
96 129 79 220 34 42 144 136
70 238 184 20 222 94 11 219
224 50 58 10 73 6 36 92
194 211 172 98 145 149 228 121
231 200 55 109 141 213 78 169
108 86 244 234 101 122 174 8
186 120 37 46 28 166 180 198
232 221 116 31 75 189 139 138
112 62 181 102 72 3 246 14
97 53 87 185 134 193 29 158
225 248 152 17 105 217 142 148
155 30 135 233 206 85 40 223
140 161 137 13 191 230 66 104
65 153 45 15 176 84 187 22

MixColumns() Fonksiyonu :

Bu fonksiyon matris üzerinde kolon bazında çalışır. Her kolon GF(28) de 4 terimli bir
polinom olarak kabul edilerek sabit bir a(x) polinomu ile çarpılır ve elde edilen
polinom başlangıç kolonunun yerine geçer. s(x) matristen bir kolon olmak üzere,

24
s ( x)  a( x)  s( x)
(2.17)
a( x)  {03}x 3  {01}x 2  {01}x  {02}

eşitliklerinden s(x) hesaplanarak s(x) kolonunun yerini alır.

2.2.4.4. Anahtarlar

K anahtarı, anahtar genişletme işlemine sokularak bir anahtar dizisi elde edilir.
Anahtar genişletme fonksiyonu Nb(Nr+1) adet kelime yaratır ve bunların Nb adedi
algoritmanın başlangıç turunda gereklidir. Ayrıca her yineleme turunda da Nb adet
kullanılacaktır ve yineleme sayısı Nr‟dir. Anahtar genişletme algoritması aşağıda
verilmiştir.

KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)


begin
word temp
i=0

while (i < Nk)


w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3])
i = i+1
end while

i = Nk

while (i < Nb * (Nr+1)]


temp = w[i-1]
if (i mod Nk = 0)
temp = SubWord(RotWord(temp)) xor Rcon[i/Nk]
else if (Nk > 6 and i mod Nk = 4)
temp = SubWord(temp)
end if
w[i] = w[i-Nk] xor temp
i=i+1
end while
end
Algoritmada kullanılan fonksiyonların görevleri şöyledir.

SubWord() : Dört baytlık bir giriş bilgisi alır ve her bir baytı S-kutusundan geçirerek
çıkışa verir.

RotWord() : Aldığı dört baytlık giriş bilgisi üzerinde bir bayt sola dairesel öteleme
yapar.

25
Rcon[i] dizisi : [xi-1,{00},{00},{00}] ile verilen 4 baytlık değerleri içerir. xi-1 , x in
kuvvetleridir ve x {02} ile gösterilir.

2.2.4.5. ġifre Çözme

Algoritmayı oluşturan fonksiyonların tersleri alınarak ve ters sırada işleme sokularak


şifre çözme işlemi gerçeklenebilir. Detaylar [5]‟ de bulunabilir.

2.2.4.6. Güvenlik

Algoritmada herhangi bir zayıf anahtar şimdiye kadar tespit edilememiştir. Bu


yüzden anahtar seçimine dönük herhangi bir kısıtlama standartta tanımlanmamıştır.

AES standardı olarak Rijndael algoritmasının diğer adaylara göre tercih edilmesinde
sahip olduğu yüksek güvenlik düzeyinin yanı sıra düşük bellek gereksiniminin de rol
oynadığı söylenebilir [7].

Rijndael algoritması hem donanım hem de yazılım uygulamalarında iyi performans


vermiştir. Anahtar hazırlama süresi yeterince kısadır. Düşük bellek gereksinimi
sayesinde, kısıtlı belleğe sahip ortamlarda da uygulanabilir [6].

26
3. AÇIK-ANAHTARLI KRĠPTOGRAFĠ (ASĠMETRĠK KRĠPTOGRAFĠ)

Açık-anahtarlı kriptografinin temeli 1976 yılında Diffie ve Hellman tarafından


atılmıştır [8]. Gizli-anahtarlı kriptografiye göre oldukça yeni olmasına rağmen,
üzerinde çok yoğun çalışmalar yapılmış ve oldukça geniş uygulama alanları
bulmuştur.

Açık-anahtarlı kriptosistemler ikili anahtar çiftleri kullanır. Bu sistemlerde her


kullanıcının, biri sadece kendisinin bildiği “özel anahtarı”, diğeri herkesin bildiği
“açık anahtarı” olmak üzere iki adet anahtarı vardır. Bir kullanıcı şifreli mesaj
göndermek için, mesajı alıcının açık anahtarı ile şifreler, alıcı ise şifrelenmiş mesajı
kendi özel anahtarını kullanarak çözer. Açık-anahtarlı sistemlerin temel çalışma
mantığı Şekil 3.1‟de verilmiştir.

KA KÖ

012 ġifre 012


ABC ġifreleme Çözme ABC
DEF DEF
GHI E() D() GHI

Mesaj ġifrelenmiĢ Mesaj Mesaj

Şekil 3.1 Açık-Anahtarlı KriptoSistemler

Tüm açık-anahtarlı kriptosistemler, bazı teknik farklılıkları olmasına rağmen, ortak


bir temel yargıya dayanır : Verilen bir açık anahtar kullanılarak, o açık anahtara ait
özel anahtarın elde edilebilmesi mümkün değildir. Bu sayede kullanıcıların açık
anahtarlarının herkes tarafından bilinmesi sorun yaratmamaktadır.

27
M gönderilmek istenen mesaj, KA alıcının açık-anahtarı, KÖ alıcının özel anahtarı, E
şifreleme fonksiyonu, D şifre çözme fonksiyonu ve C metnin şifrelenmiş şekli olmak
üzere açık-anahtarlı kriptografide şifreleme ve şifre çözme işlemleri aşağıdaki gibi
ifade edilebilir.

C  E (M , K A )
(3.1)
M  D(C , K Ö )

Bu eşitliklerde gözden kaçırılmaması gereken nokta kullanılan anahtar çiftinin alıcı


tarafa ait olmasıdır. Alıcının göndericiye mesaj yollamak istemesi durumunda bu kez
diğer tarafa ait olan anahtar çifti kullanılmak zorundadır.

Açık-anahtarlı kriptogafi kavramının ortaya atılmasından sonra, 1977 yılında


Rivest,Shamir ve Adleman yoğun olarak kabul gören ilk açık-anahtarlı kriptosistem
olan RSA açık-anahtarlı kriptosistemini önerdiler [9]. Takip eden yıllarda pek çok
açık-anahtarlı kriptosistem önerisi gündeme geldi. ElGamal kriptosistemi [10],
Eliptik Eğri Kriptosistemi, McEliece Kriptosistemi, Pohlig-Hellman Kriptosistemi en
yaygın olanlarıdır.

Tüm açık-anahtarlı kriptosistemler güvenliği için bir matematiksel problemin


çözümünün zorluğuna dayanır. Buradaki zorluktan kasıt, problemi çözebilen en hızlı
algoritmanın çözme süresinin giriş bilgisi boyutuna göre göreceli olarak çok uzun
olmasıdır. [11]

Günümüzde güvenli ve pratikte uygulanabilir olarak görülen açık-anahtarlı


kriptositemler üç temel matematiksel probleme dayanmaktadırlar.

 Çarpanlara Ayırma Problemi

 Ayrık Logaritma Problemi

 Eliptik Eğriler üzerinde Ayrık Logaritma Problemi

Aşağıda bu temel matematiksel problemler incelenmektedir.

28
3.1. Çarpanlara Ayırma Problemi

Büyük boyutlu olan sayıların çarpanlarına ayırılması işleminin zorluğu çarpanlara


ayırma problemi olarak adlandırılmaktadır. İki geniş sayının çarpımından oluşan yeni
bir sayının üretilmesi ve üretilen bu çarpımın başkaları tarafından çarpanlarına
ayırılmasının zorluğu RSA, Robin-Williams gibi bazı kriptosistemlere ilham kaynağı
olmuştur.

3.2. Ayrık Logaritma Problemi

 a   mod p,
(3.2)
  Z *p , 0  a  p  2

Ayrık logaritma problemi, p asal sayı olmak üzere, (3.2) de verilen eşitliği sağlayan a
değerinin bulunmabilme zorluğudur. Problemin çözümü geniş arama metodu ile, tüm
olası αa değerlerinin önceden hesaplanarak (a, αa mod p) ikili değerlerinin ikinci
değere göre sıralanması yolu ile çözülebilir. Ancak bu çözüm O(p) zamanında
gerçeklenebilmektedir. p asal sayısının yeterince büyük seçildiği durumlarda a
değerinin hesaplanması gereken süre içinde mümkün olamamakta, bu sayede ayrık
logaritma problemi birçok kriptosisteme temel teşkil etmektedir.

3.3. Eliptik Eğriler

Eliptik eğrilerin cebir ve geometri alanında uzun yıllarca üzerinde çalışılmış temel
konulardan biri olmasına rağmen, kriptografik uygulamalarda kendine yer bulması
ilk kez 1985 yılında olmuştur. Bu yılda Neal Koblitz ve Victor Miller birbirlerinden
bağımsız olarak eliptik eğri sistemlerinin kriptografiye uygulanmasını ortaya
koymuşlardır [1].

p > 3 ve bir asal sayı, a,b є Zp ve a,b sabit ve 4a3 + 27b2  0 (modp) üzere,

y 2  x 3  ax  b(mod p) (3.3)

29
eşitliğini sağlayan (x,y) є Zp x Zp çiftleri Zp üzerindeki eliptik eğriyi oluştururlar.

Zp üzerindeki eliptik eğriyi oluşturan noktalar sonlu sayıdadır. Bu noktalar ve Ό ile


gösterilen sonsuzdaki nokta hep birlikte bir grup oluştururlar.

3.3.1. Temel Aritmetik ĠĢlemler

1. Farklı Noktaların Toplanması İşlemi :

P(xP,yP) , Q(xQ,yQ) eliptik eğri üzerinde farklı noktalar olmak üzere P+Q=R eşitliğini
sağlayacak R(xR,yR) aşağıdaki şekilde tanımlanır.

s  (y P - y Q ) / (x P - x Q ) mod p
x R  s 2 - x P - x Q mod p (3.4)
y R  - y P  s(x P - x R ) mod p

2. Noktayı 2 ile çarpma İşlemi

P(xP,yP) olmak üzere 2P = R aşağıdaki şekilde hesaplanır.

s  (3x P  a) / (2y P ) mod p


2

x R  s 2 - 2x P mod p (3.5)
y R  - y P  s(x P - x R )

3. Tersini alma

P(xP,yP) olmak üzere –P =(xP,-yP) „dir.

4. Etkisiz Eleman

P + Ό = Ό + P = P olmak üzere, Ό sonsuzdaki nokta etkisiz elemandır.

30
3.3.2. Eliptik Eğriler Üzerinde Ayrık Logaritma Problemi

p sabit bir asal sayı; P,Q belirlenmiş bir eliptik eğri üzerindeki noktalar olsun. x.P P
noktasının kendine x kere eklenmesini göstersin. Q‟da P noktasının eğri üzerindeki
bir katı olsun.

Q  xP mod p (3.6)

eşitliğinden x değerinin elde edilmesi problemi, Eliptik Eğriler Üzerinde Ayrık


Logaritma Problemi olarak adlandırılır. Bu problemin hem çarpanlara ayırma
probleminden, hem de ayrık logaritma probleminden daha karmaşık olduğu ileri
sürülmektedir. [11]

3.4. RSA Kriptosistemi

1978 yılında Rivest, Shamir ve Adleman tarafından bulunan RSA algoritması [9], en
kolay anlaşılabilen ve uygulanabilen algoritmalardan biridir. En çok kullanılan
algoritma olduğunu söylemek de herhalde yanlış olmaz. Tasarımından bugüne kadar
üzerinde yapılan çok sayıda kriptanaliz çalışması sonucunda RSA‟nin güvensizliğine
dair herhangi bir bulguya rastlanamamıştır.

Büyük sayıların çarpanlarına ayrılmasının zorluğuna yani çarpanlara ayırma


problemine dayanan RSA algoritması yazılım ve donanım ile pek çok kez
gerçeklenmiştir. Hız olarak DES‟e göre 1000 kez mertebesinde daha yavaştır.

Anahtarlar

Anahtarları oluşturabilmek için iki gemiş asal sayı p ve q seçilir. Aşağıda verilen n
ve φ(n) değerleri hesaplanır.

n  pq
(3.7)
 (n)  ( p  1)(q  1)

φ(n) ile aralarında asal olmak koşulu ile bir b sayısı seçilir.

31
a  b 1 mod  (n) (3.8)

(3.8) eşitliği ile a değeri hesaplanır.

n ve b kullanıcının açık anahtarları, a ise kullanıcının gizli anahtarıdır.

ġifreleme

M mesajının şifrelenmesi için gönderici (3.9) de verilen işlemi gerçekleyerek C


şifrelenmiş mesajını bulur.

C M b mod n (3.9)

Şifrenin çözülmesi için ise

M  C a mod n (3.10)

işlemi yapılarak M mesajına ulaşılır.

Güvenlik

RSA kriptosisteminin güvenliği büyük sayıların çarpanlara ayrılması işleminin


zorluğuna dayanmaktadır. RSA üzerinde kapsamlı kriptanalitik çalışmalar
yapılmasına rağmen güvensizliğine dair bir bulgu elde edilememiştir. Her ne kadar
RSA büyük sayıların çarpanlara ayrılmasının zorluğuna dayansa da; M mesajının
bulunabilmesi için n‟in mutlaka çarpanlarına ayrılmasının gerekli olduğu da ispat
edilememiştir. Bu yüzden n‟in çarpanlarına ayrılması gerekmeden de RSA sisteminin
kriptanalizi olasılığı vardır.

3.5. ElGamal Kriptosistemi

ElGamal, 1985 yılında sonlu kümelerde logaritmik işlemlerin zorluğuna dayanan bir
açık-anahtarlı kriptosistem ve imza sistemi önermiştir [10]. Bu sistem yaygın

32
kullanım alanı bulabilmiş kriptosistemlerden biridir. Algoritmanın tanımı aşağıda
verilmiştir :

Anahtarlar

Anahtar çiftinin oluşturulabilmesi için öncelikle geniş bir p asal sayısı seçilir (ör.
1024 bit). Ayrıca iki tam sayı, g ve x (g Zp de bir üreteç 0 ≤ x ≤ p-2) seçilerek

y g x mod p (3.11)

hesaplanır.

y, g ve p kullanıcının açık anahtarları, x ise gizli anahtarıdır.

ġifreleme

M mesajının şifrelenebilmesi için önce p-1 ile aralarında asal olan rassal bir k sayısı
seçilir. Aşağıdaki değerler hesaplanır.

a  g k mod p
b  y k M mod p (3.12)
C  ( a, b)

Hesaplanan C değeri, M mesajının şifrelenmiş karşılığıdır. Şifrelenmiş mesaj, normal


mesajın iki katı boyuttadır.

Şifrenin çözümü için ise

1
M  (a x ) b (3.13)

hesaplanarak M mesajı elde edilir. Denklemin çözümü (3.14) „de verilmiştir.

33
a x  g kx mod p
 y k mod p
(3.14)
(a x ) 1 b  ( y k ) 1 y k M
M

Ġmza Sistemi

Yukarıda değinilen ElGamal Şifreleme Algoritmasına yapılacak ufak bir değişiklikle,


sayısal imzalarda kullanılması sağlanabilir. Anahtarlar aynı kalmak üzere,

k rassal sayısı seçilerek,

a  g k mod p
(3.15)
M  ( xa  kb) mod( p  1)

koşullarını sağlayan (a,b) bulunur. (a,b) çifti imzayı oluşturmaktadır. K rassal sayısı
gizli tutulmalı ve her seferinde değiştirilmelidir.

İmzanın onaylanması için ise

y a a b mod p  g M mod p (3.16)

eşitliğinin doğrulanması yeterlidir.

Güvenlik

ElGamal kriptosistemi sonlu kümelerde Zp üzerinde logaritma işleminin


karmaşıklığına dayanmaktadır. p değerinin boyutunun büyük olması gereklidir.

Ayrıca şifreleme ve imzalama için kullanılan k rassal sayısının tekrar kullanılmaması


ve gizli tutulması da sistem güvenliği açısından önemlidir[2,s296].

Şifrelenmiş mesaj hem gönderilen mesaja hem de rassal bir k sayısına bağlı
olduğundan ElGamal kriptosistemi deterministik değildir. Yani k değerine bağlı
olarak, aynı metnin birden çok şifrelenmiş karşılığı vardır[3,s163-164].

34
3.6. Menezes-Vanstone Eliptik Eğri Kriptosistemi

Eliptik Eğri Kriptosistemi, 3.1.3 „de tanıtılan Eliptik Eğriler üzerinde ayrık logaritma
problemine dayanmaktadır. Eliptik eğriler üzerinde iki noktanın toplanması ve bir
noktanın iki katınn bulunması işlemleri tanımlanmış olduğundan, noktanın bir k
sayısı ile çarpımı mümkündür. P ilk nokta, Q çarpım değeri, p eliptik eğrinin
üzerinde tanımlı olduğu asal sayı olmak üzere,

Q  kP mod p (3.17)

eşitliğinden k değerinin bulunabilmesinin zorluğu Eliptik Eğri Kriptosisteminin


temelini oluşturmaktadır. Bu işlemi yeterli sürede gerçekleyebilen bir algoritma
yoktur.

Anahtarlar

Her bir kullanıcının anahtar çiftlerinin belirlenmesi sırasında E eliptik eğri, p > 3 bir
asal sayı olmak üzere, kullanıcı rasgele belirlediği k sayısı için Q  kP mod p yi
hesaplar. Hesaplanan Q,P kullanıcının açık anahtarı, k ise gizli anahtarıdır.

ġifreleme

x  ( x1 , x2 ) şifrelenecek metni temsil etmek üzere şifreleme işlemi aşağıdaki şekilde


gerçeklenmektedir.

E k ( x, k )  ( y 0 , y1 , y 2 )
y 0  kP
(c1 , c 2 )  kQ (3.18)
y1  c1 x1 mod p
y 2  c 2 x 2 mod p

Şifrenin çözümü için ise, y=(y0,y1,y2) şifrelenmiş metin olmak üzere

35
1 1
Dk ( y )  ( y1c1 mod p, y 2 c2 mod p)
(3.19)
ay 0  (c1 , c2 )

işlemleri gerçeklenerek metin elde edilebilir. [3, s.184-190]

Güvenlik

Algoritmanın güvenliği Eliptik Eğriler üzerindeki ayrık logaritma problemine


dayanmaktadır ve bu problemin çarpanlara ayırma problemine göre daha zor bir
problem olduğu kabul edilmektedir [11].

Ayrıca eliptik eğri kriptosistemleri daha düşük bit uzunluklu anahtarlar kullanarak
diğer açık-anahtarlı kriptosistemlerle aynı güvenlik seviyesine ulaşmaktadırlar. 160
bitlik eliptik eğri kriptosistemi, 1024 bitlik RSA‟nın sağladığı güvenliği
sağlayabilmektedir. Daha düşük boyutlu anahtarlara sahip olmak ise hem işlem
zamanını kısaltmakta hemde band genişliğinde, işlemci gücünde tasarruf
sağlamaktadır. Bu yüzden Eliptik Eğri KriptoSistemleri işlem gücü yada band
genişliği kısıtlı olan akıllı kartlar, cep telefonları gibi alanlarda geniş olarak
kullanılmaktadır. [12]

36
4. HASH FONKSĠYONLARI

Hash fonksiyonları modern kriptografinin temel elemanlarından biridir. Tek-yönlü


hash fonksiyonları değişken uzunluklu (ör. 100 KB) bir bilgiyi giriş olarak alıp, sabit
uzunlukta çok daha küçük boyutta veriyi (ör. 160 bit) çıkış olarak veren
fonksiyonlardır [2,s33]. Hash fonksiyonlarının çıkışı hash-değeri olarak adlandırılır.
h hash-değeri, M giriş bilgisi, H hash fonksiyonu olmak üzere :

h  H (M ) (4.1)

Bir hash fonksiyonunun sağlaması gereken temel koşullar şunlardır: [1,s429]

 Verilen M mesajı için h değerinin hesaplanması karmaşık


olmamalıdır.

 Giriş bilgisinde oluşacak herhangi bir değişiklik –1 bitin değişmesi


bile- tamamen farklı bir sonucun üretilmesine yol açar. Aynı hash-
değerine sahip iki farklı mesaj bulunması çok zor olmalıdır.

 Hash fonksiyonları tek yönlüdür. Verilen bir hash-değerinden ait


olduğu mesajı bulabilmek çok zordur.

Hash fonksiyonlarının kriptografide temel kullanım alanı sayısal imzalar ve veri


bütünlüğünün kontrolüdür. Bölüm 5‟de hash fonksiyonlarının sayısal imzalara dönük
kullanımlarına değinilmiştir.

Hash fonksiyonlarının veri bütünlüğünün kontrolüne dönük kullanımında ise, kontrol


edilmek istenen verinin,belirli zaman aralıklarında hash-değeri hesaplanıp
saklanmakta ve bulunan hash-değerleri arasında değişim olup olmadığına
bakılmaktadır. Hash-değerindeki değişim veri bütünlüğünün de kaybolduğunu
göstermektedir.

37
Pratikte kullanım alanı bulmuş olan bazı hash fonksiyonları aşağıda verilmiştir.
Tasarlanacak uygulamada Hash Fonksiyonları kullanılmadığından, bu fonksiyonların
detaylarına tez kapsamında girilmemiştir. Bu fonksiyonların detayları aşağıda kendi
bölümlerinde verilen kaynaklardan yada [1], [2], [3] „den bulunabilir.

4.1. MD5 Hash Fonksiyonu

Ron Rivest tarafından geliştirilmiş bir hash fonksiyonudur [13]. Yine Rivest
tarafından geliştirilmiş olan MD4 [14] hash algoritmasının geliştirilmiş halidir. MD4
„ün yapılan kriptanaliz çalışmaları sonucu bazı açıkların tespiti sonucu Rivest
tarafından geliştirilmiştir. 128 bitlik hash-verisi üretir.

4.2. MD2 Hash Fonksiyonu

MD2 Ron Rivest tarafından geliştirilmiş bir hash fonksiyonudur [15]. MD2‟nin
güvenilirliği baytların rassal permütasyonuna dayanmaktadır. Yine MD5 gibi 128
bitlik hash-verisi üretir.

4.3. SHA Hash Fonksiyonu

SHA (Güvenli Hash Algoritması) NIST ve NSA tarafından, Sayısal İmza Standardı
[2]‟ nda kullanılmak üzere geliştirilmiştir. 2000 yılında güvenli hash standardı olarak
yayınlanmıştır [16]. SHA‟nın ürettiği hash-değeri 160 bit uzunluğundadır.

38
5. SAYISAL ĠMZALAR

Sayısal İmza, bir mesajın göndericisinin kim olduğunun inkar edilemeyecek şekilde
belirli olmasını sağlar. Mesajı gönderen, sadece kendisi ait olan bir bilgi ile mesajı
imzalar. Alıcı mesajdaki bu imzanın göndericiye ait olduğunu görür ve mesajın
sahibinin kimliğinden emin olur. Açık anahtarlı kriptografinin doğası, mesajların
imzalanabilmesini mümkün kılmaktadır. Tüm kullanıcıların, sadece kendilerinin
bildiği bir açık anahtara sahip olmaları sayısal imzaların önünü açmıştır.

Sayısal imzalar işlev olarak yazılı imzalarla eşdeğerdir. Kişinin kimliğini ortaya
koyar. Ancak yazılı imzalara göre taklit edilebilmeleri daha zordur [2]. Sayısal
imzalar, mesajı alan tarafa, gönderenin kimliğinden ve mesajın değiştirilmemiş
olduğundan emin olma şansı tanır. Ayrıca gönderenin mesajı gönderdiğini inkar
edememesi de yine sayısal imza kullanımı sayesinde mümkün olmaktadır. Sayısal
imzalar kriptografinin temel amaçlarından olan kimlik doğrulama, veri bütünlüğü ve
inkar edememe özelliklerini sağlamaktadır.

Sayısal imzaların basit işleyiş mantığı Şekil 1-3 „de verilmiştir. Dayanılan temel
mantık, açık-anahtarlı kriptografide kullanılan anahtarların kullanım sırasını
değiştirmektir. Yani, mesaj göndericinin özel anahtarı ile şifrelenirse, bu mesaj ancak
göndericinin açık anahtarı ile çözülebilir. Tüm alıcılar göndericinin açık anahtarına
sahip olduklarından, mesaj çözülebiliyorsa mesajı gönderenin kimliği doğrulanmış
olur. Mesajı gönderen, özel anahtara sahip olan tek kişi, yani göndericidir.

Şekil 5.1 „de KS göndericinin özel anahtarı, KP göndericinin gizli anahtarıdır.


Gönderici mesajı KS ile şifreler, yani imzalar. İmzalanmış mesajı alan alıcı da KP „yi
kullanarak mesajı çözer, yani imzanın geçerliliğini kontrol eder.

39
KS KP

012 Ġmza 012


ABC Ġmzalama Kontrolü ABC
DEF DEF
GHI E() D() GHI

ĠmzalanmıĢ OnaylanmıĢ
Mesaj Mesaj

Şekil 5.1 Sayısal İmzaların Basit İşleyiş Şeması

Sayısal imzanın yukarıda anlatılan şekli ile kullanımı bazı zorluklara yol açmaktadır.
Sistem yavaş çalışmakta ve büyük boyutta çıkış verisi üretmektedir. İmzalanmış
mesajın, normal mesajla birlikte gönderileceği varsayılırsa, üretilecek veri büyüklüğü
en az mesajın iki katıdır. Bu sorunları aşmak için sayısal imzalar hash fonksiyonları
ile birlikte kullanılmaktadır. Metnin tamamının imzalanması yerine, metin bir hash
fonksiyonuna tabi tutulmakta ve elde edilen hash-değeri imzalanmaktadır. Oluşan
imzalanmış hash-değeri metin ile birlikte alıcıya yollanmaktadır. Alıcı, gelen
imzalanmış hash-değerinin imza kontrolünü yapmaktadır. Gelen metni de hash
işleminden geçirmektedir. Bulduğu bu hash değeri ile kendisine gönderilmiş olan,
imza kontrolü sonucu elde ettiği hash değerinin aynı olması, metnin değişikliğine
uğramadığını ve imzanın geçerli olduğunu göstermektedir. Bu işlemler Şekil5.2 ‟de
görülmektedir.

Gönderilen metin şifrelenerek de gönderilebilir. Bu durumda alıcının yaptıklarına ek


olarak, önce metnin şifresini çözmesi gerekecektir.

Açık anahtarlı kriptografinin sayısal imza sistemlerine olan yatkınlığı nedeni ile pek
çok sayısal imza sistemi açık anahtarlı algoritmalar kullanmaktadır. Aşağıdaki
bölümlerde bazı yaygın olarak kullanılan sayısal imza sistemleri tanıtılmıştır.

40
KS

012
Hash
ABC Ġmzalama #3*-
Mesaj Fonksiyonu C4eĞ64
DEF L?«
GHI
H() E()
ĠmzalanmıĢ
Hash Değeri
Hash Değeri

012
Hash
ABC
Fonksiyonu C4eĞ64
Mesaj + DEF
H()
ĠmzalanmıĢ Hash GHI Hash Değeri
Değeri ?
#3*-L?« =
Ġmza
Kontrolü C4eĞ64
DK()
Hash Değeri

KP

Şekil 5.2 Sayısal İmzalar – Hash Fonksiyonları

5.1. RSA Ġmza Sistemi

RSA Açık Anahtarlı Algoritması bölüm 3.1.4 „de tanıtılmıştı. Bu bölümde kullanılan
kısaltmalar aynı olmak üzere, bu sistemin sayısal imzalama amaçlı kullanılması şu
şekildedir.

M Metninin Ġmzalanması :

C  sig (M )  M a mod n (5.1)

Metin göndericinin açık anahtarı olan a kullanılarak imzalanmaktadır.

Ġmzanın Doğrulanması :

ver(M , C )  true  M  C b (mod n) (5.2)

Alıcı göndericinin açık anahtarı b‟yi kullanarak yukarıdaki işlemi gerçeklemektedir.


Sonuç gönderilen mesaja eşit ise imza doğrulanmıştır.

41
5.2. El Gamal Ġmza Sistemi

ElGamal Şifreleme Algoritması bölüm 3.1.5‟de tanıtılmıştır. Bu algoritmanın


yapılacak ufak bir değişiklikle, sayısal imzalarda kullanılması sağlanabilir.
Anahtarlar aynı kalmak üzere,

k rassal sayısı seçilerek,

a  g k mod p
(5.3)
M  ( xa  kb) mod( p  1)

koşullarını sağlayan (a,b) bulunur. (a,b) çifti imzayı oluşturmaktadır. K rassal sayısı
gizli tutulmalı ve her seferinde değiştirilmelidir.

İmzanın onaylanması için ise

y a a b mod p  g M mod p (5.4)

eşitliğinin doğrulanması yeterlidir

5.3. DSA – Sayısal Ġmza Algoritması

1991 yılında Amerika Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından


Sayısal İmza Standardı (DSS) olarak belirlenen algoritmadır. Bu algoritmanın
standart olarak belirlenmesi oldukça tepki çekmiştir. Algoritmanın NSA tarafından
geliştirilmiş olması güvenlik açısından bazı tuzaklar barındırabileceği şüphesini
doğurmuştur. Ayrıca algoritmanın sayısal imzalarda kullanımı dışında şifreleme veya
anahtar dağıtımı için kullanılamaması ve RSA‟dan daha yavaş olması eleştirildiği
diğer noktalardır. Algoritma seçiminin halka açık olarak yapılmaması ve analiz için
gereken zamanın tanınmaması da tepki toplamıştır. Algoritmanın ilk önerildiğindeki
anahtar boyu olan 512 bitin küçüklüğü de tepki toplamıştır. Bunun üzerine NIST
anahtar boyunu 1024 bite çıkarmıştır [1].

42
DSA El Gamal ve Schnorr imza algoritmalarının bir türevidir. Algoritmanın tanımı
aşağıda verilmiştir.

Anahtarlar :

p : L bit uzunluğunda bir asal sayı. (L, [512-1024] aralığında ve 64‟ün katı olmak
üzere)

q : (p-1)‟in 160 bit uzunluğunda bir asal çarpanı

g : g  h ( p 1) / q mod p ; h(p-1)/q mod p > 1 olmak koşuluyla h, (p-1)‟den küçük bir sayı

x : q‟dan küçük bir sayı

y=gx mod p

Bu parametrelerden p, q ve g herkesçe bilinen açık değerlerdir. x kullanıcının özel


anahtarı, y ise açık anahtarıdır.

Ġmzalama :

m mesajının imzalanması için aşağıdaki işlemler yapılmalıdır. H(m) tek yönlü bir
Hash fonksiyonudur. Standartta SHA algoritmasının H(m) olarak kullanılabileceği
belirtilir.

Gönderici q‟dan küçük k rassal sayısını oluşturur. (5.5)‟de verilen eşitliklerden r ve s


hesaplanır.

r  ( g k mod p) mod q
(5.5)
s  (k  1( H (m)  xr )) mod q

Hesaplanan r ve s değerleri göndericinin imzasını oluşturur. Bu imza alıcıya


gönderilir.

Ġmza Doğrulama :

Alıcı (5.6) de verilen eşitlikleri hesaplar.

43
w  s 1 mod q
u1  ( H ( M )  w) mod q
(5.6)
u 2  (rw) mod q
v  (( g u1  y u 2 ) mod p) mod q

Eğer v=r ise, imzanın doğruluğu onaylanmıştır [17].

44
6. ANAHTAR DAĞITIM SĠSTEMLERĠ

Anahtar dağıtım sistemleri, bir ağda kullanıcıların ikili ikili yada daha büyük gruplar
halinde ortak olarak kullandıkları anahtarların istenmeyen kişilerin eline geçmeden
gerekli yerlere ulaşmasını sağlayan sistemlerdir.

Anahtar dağıtımının önemi gizli-anahtarlı kriptografinin kullanıldığı yerlerde ortaya


çıkar. Şifreleme ve şifre çözme amacı ile kullanılan ortak anahtarı her iki tarafın da
bilmesi gereklidir. Bu gereklilik de anahtarın güvenli bir şekilde her iki tarafa da
iletilmesi ihtiyacını doğurur.

Anahtarı haberleşen taraflardan birinin belirleyip diğer tarafa güvenli bir şekilde
aktarmasının gerçeklendiği anahtar aktarım sistemleri mevcut olduğu gibi, anahtarın
sadece bir taraf tarafından belirlenmeyip, iki tarafında bir kısmına sahip olduğu
bilginin bir fonksiyonu olduğu, yani birlikte üretildiği anahtar üzerinde anlaşmaya
dayanan sistemlerde vardır.

Bazı sistemler, bir Güvenilir Merkez‟in varlığını gerektirir. Bu merkez kullanıcı


kimliklerinin onaylanması, anahtarların oluşturulması ve kullanıcılara iletimi gibi
işlerle sorumludur. Güvenilir Merkezin sürekli var olması ve bir anahtar sunucusu
gibi çalışması mümkündür. Kerberos bu tür bir sistemin iyi bir örneğidir [3, s260].
Güvenlir Merkezin sürekli aktif olmak yerine, sadece sistemin kurulum anında
çalışarak gerekli anahtar dağıtımlarını yaptıktan sonra devreden çıkması da yaygın
kullanılan bir yöntemdir. Diffie-Hellman , MTI anahtar dağıtım sistemleri bu türe
örnek olarak gösterilebilir.

Aşağıda Diffie-Hellman anahtar değişim yöntemi tanıtılmıştır. Diğer geleneksel


anahtar değişim yöntemlerine değinilmemiştir. Bölüm 7-3 „de kimlik tabanlı anahtar
dağıtım sistemleri örnekleri ile birlikte incelenmiştir.

45
6.1. Diffie-Hellman Anahtar DeğiĢim Yöntemi

Sürekli aktif olan bir Güvenilir Merkezin kullanılmaması durumunda, gizli


anahtarların değişiminin sağlanabilmesi için bir anahtar üzerinde anlaşma
protokolünün kullanımı zorunludur. Diffie-Hellman Anahtar Değişim Yöntemi
bilinen ilk anahtar üzerinde anlaşma protokolüdür. Bu protokol sonlu kümeler
üzerinde üs alma işlemine dayanmaktadır.

p asal sayı, α Zp „de üreteç olmak üzere ve p ve α herkes tarafından bilinmek üzere
U ve V kullanıcılarının anahtar değişim işlemi aşağıdaki etaplardan oluşur.

1. Kullanıcı U 0 ≤ au ≤ p-2 olmak üzere rassal au sayısını seçer.

2. U  au
mod p değerini hesaplar ve bunu V kullanıcısına yollar.

3. Kullanıcı V 0 ≤ av ≤ p-2 olmak üzere rassal av sayısını seçer.

4. V,  av
mod p değerini hesaplar ve bunu U kullanıcısına yollar.

5. U kullanıcısı K  ( av ) au mod p değerini,

V kullanıcısı da K  ( au ) av mod p değerini hesaplar.

K  ( av ) au mod p  ( au ) av mod p

K   au av mod p (6.1)

K anahtarı hem U hem de V kullanıcısı tarafından ayrı ayrı hesaplanmış ve mesaj


transferinde kullanıma hazırdır. Her kullanımda yeni au ve av rassal sayıları
seçileceğinden , K anahtarı da her kullanımda yenilenmektedir.

46
7. KĠMLĠK TABANLI KRĠPTOSĠSTEMLER (KTK)

Kimlik tabanlı kriptosistemler kavramı, 1984 yılında Adi Shamir tarafından ortaya
atıldı. Sistemin temel amacı, açık-anahtarlı kriptosistemlerin vazgeçilmez unsuru
olan açık-anahtar dağıtımı gerekliliğini ortadan kaldırmaktır.

Açık-anahtarlı sistemlerde, her kullanıcın bir açık-özel anahtar çifti vardır ve özel
anahtar gizli tutulurken kullanıcının açık anahtarı herkes tarafından görülebilir.
Ancak, açık anahtarların yayımlanması başlı başına bir sorun teşkil etmektedir. Bir
kullanıcı güvenli mesaj yollamak istediği kullanıcının mutlaka açık anahtarını bilmek
durumundadır. Bu açık anahtarı bilmeninin yolu da, ya direk sahibinden istemek
yada açık-anahtar sunucularından erişmeye çalışmaktır. Kullanıcı, mesaj
alışverişinde bulunduğu tüm kişilere ait açık-anahtarları kendi makinasında saklamak
durumundadır.

Kimlik-tabanlı kriptosistemler açık-anahtar elde edilmesi yada saklanması


gerekliliğini ortadan kaldırmaktadırlar. Ayrıca açık-anahtar dağıtımı da
yapılmayacağı için kullanıcıların açık anahtarlarını içeren sertifikaların
yayımlanması da gerekmemektedir [18]. Kullanıcı, KTK „ler de açık anahtarını
bilmeden dilediği kullanıcıya güvenli mesaj yollayabilmekte, imza onaylaması
yapabilmektedir.

KTK „ler genel olarak bir açık-anahtarlı kriptosistemi temel almaktadır. (Bu
genellemeye uymayan bir örnek olarak kimlik tabanlı etkileşimsiz bir açık anahtar
dağıtım sistemi ile bir gizli anahtarlı şifreleme algoritmasının birlikte kullanılması
verilebilir. Bu sistem detaylı olarak Bölüm 7.3.2 „de incelenecektir).

KTK‟ lerde kullanıcıların yine bir açık-özel anahtar çifti vardır. Ancak iki sistem
arasındaki temel fark bu noktada başlamakta ve kullanıcıların açık anahtarı olarak,
kullanıcıya ait, herkesçe bilinebilen ve inkar edilemeyecek bir bilgi kullanılmaktadır.

47
Örneğin kullanıcının açık anahtarı olarak adı, e-posta adresi, ağ adresi, telefon
numarası, kimlik numarası vb. kullanılabilmektedir. Böylece güvenli mesaj
yollanacak olan alıcının açık anahtarını elde etmek için, göndericinin ekstra bir
çabaya girmesi gerekmeyecek, örneğin alıcıya erişirken kullandığı e-posta adresini
aynı zamanda alıcının açık-anahtarı olarak da kullanabilecektir. Böylece, sistemdeki
tüm kullanıcıların, birbirlerinin açık-anahtarı olarak ek bir bilgi öğrenmeleri, ek bir
bilgi saklamaları gerekliliği ortadan kalkmaktadır.

KTK‟ler de ikinci temel nokta, özel anahtarların oluşturulmasıdır. Sistemde bir açık-
anahtara ait özel-anahtarın elde edilmesi işleminin, Shamir‟in “Anahtar Üretim
Merkezi (AÜM) “ olarak adlandırdığı bir üçüncü parti tarafından yapılması
kaçınılmaz bir zorunluluktur. Açık anahtarlar herkesçe bilindiği için, kullanıcıların
kendi özel anahtarlarını kendilerinin oluşturmaları mümkün değildir, böyle bir durum
bir kullanıcının diğer kullanıcılara ait özel-anahtarları da yaratabilmesi imkanını
doğurur ki bu durum sistemin tüm güvenilirliğini yok eder. AÜM, kullanıcılara ait
tüm özel-anahtarların oluşturulmasını sağlamak için gerekebilecek bazı özel bilgilere
sahip olabilir. (büyük sayıların çarpanları gibi). AÜM‟ nin sağlaması gerekli olan bir
koşulda, güvenilir olmasıdır. Sistemdeki tüm özel anahtarlar AÜM‟ de üretileceği
için, AÜM tüm kullanıcılara ait özel-anahtarları bilecektir. Bu yüzden AÜM‟nin tüm
kullanıcıların gözünde güvenilir olması mutlaka gerekli olan bir koşuldur.

Sistemdeki tüm kullanıcılara ait özel-anahtarlar AÜM‟ de üretildikten sonra güvenli


yollardan sahiplerine ulaştırılmak zorundadır. Shamir, anahtar dağıtımı için, akıllı
kartların kullanılmasını önermektedir. Shamir‟in sisteminde, AÜM ürettiği özel
anahtarları akıllı kartlara yazarak sahibi olan kullanıcıya ulaştırmaktadır. Özel
anahtarların kullanıcıya ulaştırılmasında, akıllı kartların yerine güvenli ağ
kanallarının kullanılması ise artık daha yaygındır.

Özel-anahtarların kullanıcılara dağıtımından sonra, açık-anahtarlar da herkesçe


bilinen bilgiler olduğu için, sistemin çalışmasının normal bir açık-anahtarlı
kriptosistemden bir farkı kalmamaktadır. Kullanıcı “A”, güvenli mesaj yollamak
istediği kullanıcı “B” nin açık-anahtarı (e-posta adresi, adı, ya da her ne olarak

48
anlaşıldı ise) ile mesajını şifreleyip yollamakta, kullanıcı “B” de AÜM‟nin kendine
yolladığı özel-anahtarı kullanarak mesajı çözmektedir.

IDB

012
A ABC
DEF
ġifreleme B
GHI

Mesaj ġifrelenmiĢ Mesaj

Şekil 7.1 Kimlik Tabanlı Kriptosistemler / Mesaj Şifreleme

Kimlik-tabanlı kriptosistem uygulamaları temel olarak üç ana grup altında


incelenebilir :

 Kimlik-tabanlı şifreleme

 Kimlik-tabanlı sayısal imza sistemleri

 Kimlik-tabanlı anahtar dağıtım teknikleri

7.1. Kimlik Tabanlı ġifreleme

Shamir Kimlik tabanlı kriptosistemler kavramını ortaya koyarken, kimlik tabanlı bir
imza sistemi önerisini de ortaya atmış ancak kimlik tabanlı şifrelemeye dönük bir
uygulama önerisi olmamıştı. Shamir‟den sonra bazı kimlik tabanlı şifreleme
sistemleri ortaya atıldı. Tsuji-Itoh [19], Boneh-Franklin [20] sistemleri bunlara örnek
olarak verilebilir.

Bu sistemler kullanıcının kimlik bilgisini açık anahtar olarak yada açık anahtarı
oluşturan parametrelerden biri olarak kullanmakta ve kimlik bilgisi ile birlikte bazı
rassal değerler ve önceden tanımlanmış işlemler yoluyla oluşturdukları açık
anahtarlar ile şifreleme yapmaktadırlar. Takip eden bölümlerde Tsuji-Itoh kimlik
tabanlı kriptosistem önerisi detaylı olarak incelenecektir.

49
Açık anahtarlı kimlik-tabanlı kriptosistemlerin yeterince pratik olmadığını öne süren
bir grup ise, bu sistemlerin yerine yine kimlik tabanlı olma mantığına sadık kalmak
üzere, bir gizli anahtarlı şifreleme algoritmasını kimlik-tabanlı etkileşimsiz anahtar
dağıtım sistemi ile birlikte kullanma önerisi getirmiştir [21]. Maurer–Yacobi [22,23],
ve Muramaki-Sakai [21] sistemleri bu türün örnekleri olarak gösterilebilir. Kimlik
tabanlı anahtar dağıtım sistemi anahtarların oluşturulup, paylaşımını sağlamakta,
şifreleme ise klasik bir simetrik şifreleme algoritması ile (ör. DES, Rijndael vb.)
yapılmaktadır. Maurer-Yacobi kimlik-tabanlı anahtar dağıtım sistemi bölüm 7-3 „de
tanıtılacaktır.

Takip eden bölümlerde önce Shamir‟in Kimlik-Tabanlı Kriptosistem önerisi


incelecek, ardından da Tsuji-Itoh sistemi tanıtılacaktır.

7.1.1. Shamir’in Kimlik-Tabanlı KriptoSistem Önerisi

Adi Shamir, 1984 yılında yayınladığı makale [24] ile KTK „lerin temelini attı. Bu
öneri, yukarıda da değinildiği gibi, bir açık-anahtarlı kriptosistemi temel olarak
almakta, ancak kullanıcıların açık anahtarları olarak, kimliklerine bağlı bir bilgiyi
(ad, e-posta adresi, kimlik no vb.) kullanmaktaydı. Kullanıcıların özel anahtarlarının
üretilebilmesi için ise, güvenilir bir anahtar üretim merkezine (AÜM) ihtiyaç
duyulmaktaydı.

Shamir‟in önerdiği sistemde, AÜM, her kullanıcıya ait özel-anahtarı oluşturduktan


sonra, bir akıllı karta kaydederek kullanıcıya ulaştırmaktadır. Sisteme yeni
kullanıcılar eklendiğinde, eski kullanıcıların özel-anahtarlarının dolayısı ile akıllı
kartlarının güncellenmesi gerekmemektedir. Tüm kullanıcılar kartlarını aldıktan
sonra, AÜM‟lerin tümüyle kapatılarak, sistemin tamamen merkezden bağımsız halde
çalışabilmesi dahi mümkündür.

Aşağıdaki şekilde, kimlik-tabanlı kriptosistemlerin temel işleyiş şeması


görülmektedir.

50
Kullanıcı A Kullanıcı B
IDB KPB

012 ġifre 012


ABC ġifreleme Çözme ABC
DEF DEF
GHI E() D() GHI

ĠmzalanmıĢ Mesaj
Mesaj Mesaj

Kullanıcı A IDA IDB Kullanıcı B

Anahtar Üretim
KPA KPB
Merkezi

Şekil 7.2 Kimlik-Tabanlı Kriptosistem İşleyiş Şeması

7.1.2. Kimlik-Tabanlı Kriptosistemler ve RSA

RSA kriptosistemi , açık-anahtarlı kriptografi kavramı ortaya atıldıktan sonra ortaya


çıkmış olan en geniş kullanım alanı bulmuş kriptosistemdir. Açık-anahtarlı
kriptosistem mantığını temel alan ama birtakım değişiklikler getiren kimlik-tabanlı
kriptoloji kavramı doğduğunda da ilk akla gelen, RSA sisteminin kimlik-tabanlı
kriptosistemlere adapte edilip edilemeyeceği idi [24]. Ancak RSA sisteminin kimlik-
tabanlı kriptosistem olarak kullanımı mümkün olamamaktadır. Şöyle ki :

RSA‟de iki açık anahtar n modül değeri ve b „dir. (bkz. 3.1.5.2)

a = b-1 mod n

eşitliği ile de a özel anahtarı hesaplanmaktadır.

n sayısının b ile birlikte kullanıcı kimlik bilgisinin bir fonksiyonu olması durumunda,
AÜM n‟in çarpanlarını bilemeyecek ve a özel anahtarını hesaplayamayacaktır.

n sayısının herkesçe bilinmesi ancak çarpanlarının gizli olması durumunda ise, b‟yi
ve karşı düşen özel anahtar a‟yı bilen herkesin n‟in çarpanlarını hesaplaması
mümkün olacaktır.

51
RSA sisteminin kimlik-tabanlı kriptosistemlerde kullanılmasının mümkün
gözükmemesi üzerine, değişik alanlara eğilinmiş ve ayrık logaritmik probleme,
eliptik halkalara dayanan bazı kimlik-tabanlı kriptosistem örnekleri ortaya
konmuştur.

7.1.3. Tsujii-Itoh Kimlik Tabanlı Kriptosistemi

Shamir, kimlik-tabanlı kriptosistem kavramını ortaya atmış, genel çerçevesini çizmiş


ancak işler bir metodu artaya koyamamıştı. Shamir‟in yayınından kısa bir süre sonra
bir çok kimlik-tabanlı kriptosistem önerisi ortaya atıldı. Bunlardan biri de Tsujii-Itoh
kimlik tabanlı kriptosistemiydi.

Tsujii ve Itoh tarafından önerilen kimlik tabanlı kriptosistem ayrık logaritma


problemine dayanmaktadır. Önerilen sistemde ElGamal açık-anahtarlı kriptosistemi
kulanılmaktadır.

Sistem, genel yapı olarak, Shamir‟in çerçevesini çizdiği kimlik-tabanlı kriptosistem


yapısına uymaktadır. Sistemde, bir merkezi Anahtar Üretim Merkezi yeralmakta,
kullanıcıların özel anahtarları bu merkez tarafından üretilip, güvenli ağ kanalıyla
kullanıcılara ulaştırılmaktadır. Kullanıcıların açık anahtarları olarak kimlik bilgileri
kullanılmaktadır.

7.1.3.1. Tsujii-Itoh Kimlik Tabanlı Kriptosistemi Gerçeklenmesi

ID-No : Her kullanıcının kimlik bilgisi k-boyutlu bir vektör olarak tutulacaktır. Tüm
kullanıcıların ID bilgileri AÜM‟de kayıtlı olmalıdır.

IDi  ( xi1 , xi 2 ,  , xik ), xij  {0,1}, (1  j  k ) (7.1)

Genişletilmiş ID-No : Merkez, bir adet birebir fonksiyon f(·) belirler (ör. RSA). Tüm
kullanıcılar belirlenmiş olan bu fonksiyonu ve kendi ID bilgilerini kullanarak
Genişletilmiş ID-No „larını , EIDi , hesaplarlar.

52
EIDi  f ( IDi ),
(7.2)
EIDi  ( yi1 , yi 2 ,  , yin ), yij  {0,1}, , (1  j  n)

AÜM Özel Anahtarı : AÜM, rassal geniş bir asal sayı seçer (ör. 512 bit ve üstü) ve
Zp-1 üstünde n-boyutlu a vektörünü oluşturur ve özel anahtarı olarak saklar.

a  (a1 , a2 ,    an ), (7.3)

1  ai  p  2 (1  i  n), (7.4)

a  I  a  J (mod p  1), I  J ,
(7.5)
I , J n  boyutlu ikili vektörler

AÜM Açık Anahtarı : AÜM Zp-0 dan rassal bir g üreteci seçer n-boyutlu h vektörünü
g ve a „yı kullanarak oluşturur

h  (h1 , h2 ,  , hn ), (7.6)

hi  g ai (mod p) (1  i  n) (7.7)

Merkez p, g ve h değerlerini açık anahtarı olarak yayınlar.

Kullanıcıların Özel Anahtarları : AÜM kullanıcı i „nin özel anahtarı si „yi a ve


EIDi‟yi kullanarak hesaplar ve yüksek güvenlikli bir kanaldan kullanıcı i‟ye ulaştırır.

si  a  EIDi (mod p  1)
si  a
1 j  n
j yij , (mod p  1) (7.8)

Yukarıda tanıtılan sistem parametreleri bir tablo halinde toplanırsa , Tablo 7.1 elde
edilir.

53
Tablo 7.1 Tsujii-Itoh Kriptosistemi Sistem Parametreleri
Sistem Parametreleri
Merkez Özel Anahtarı a : n-boyutlu vektör (3)-(5)
Merkez Açık Anahtarı h : n-boyutlu vektör (6),(7)
p : geniĢ bir asal sayı
f : bire-bir tek yönlü fonksiyon
g : Zp-0 ‘dan bir üreteç sayı
Kullanıcı i Özel Anahtarı si (8)
Kullanıcı i Açık Anahtarı IDi (1)

7.1.3.2. Kriptosistemin Protokolü :

Tsujii-Itoh kimlik-tabanlı kriptosisteminin protokolünü açıklarken, kullanıcı 2‟nin


kullanıcı 1‟e m mesajını yollamak istediği kabul edilmiştir.

Şifreleme :

Kullanıcı 2, (7.2) de tanımlanan şekilde kullanıcı 1‟in ID1 bilgisini kullanarak EID1‟i
oluşturur. Ayrıca, merkezin açık anahtarı h ve EID1 „i kullanarak (7.9)‟ da verilen z1
„i hesaplar.

z1  h
1i  n
i
y1i
(mod p)
(7.9)
 ( g ai ) (mod p)
y1i
z1 
1i  n

z1  g 1i  n
ai y1i mod p 1
(mod p)  g s1 (mod p) (7.10)

Kullanıcı 2‟nin göndermek istediği mesaj m (0≤m≤p-1) olsun. Kullanıcı 2 r (0≤r≤p-


2) rassal sayısını belirler ve şifrelenmiş mesaj C „yi aşağıdaki şekilde oluşturur.

54
C  (c1 , c2 ) (7.11)

c1  g r (mod p) (7.12)

c2  m( z1 ) r (mod p) (7.13)

Kullanıcı 2 (7.11) - (7.13) „de tanımlanmış olan şifrelenmiş mesaj C‟yi kullanıcı 1‟e
yollar.

Şifre Çözme :

Kullanıcı 1 , kendi özel anahtarı s1‟i kullanarak

(c1 ) s1  ( g r ) s1 (mod p) (7.14)

değerini hesaplar.

(7.10) ve (7.14) ü kullanarak kullanıcı 2‟nin gönderdiği mesaj elde edilir.

{(c1 ) s1 }1 c2  {( g r ) s1 }1 m( z1 ) r (mod p) (7.15)

 {( g r ) s1 }1 m( g s1 ) r (mod p) (7.16)

 m(mod p). (7.17)

7.1.3.3. Sistem Güvenilirliği

Tsujii-Itoh kimlik-tabanlı kriptosisteminin güvenilirliği, ayrık logaritma probleminin


karmaşıklığına dayanmaktadır. Bu yüzden kullanılan p modülünün yeterince büyük
seçilmesi ve p-1 in en az bir geniş asal çarpanı olması gereklidir.

m (m > n) adet kullanıcının birlikte hareket etmeleri durumunda, AÜM‟nin özel


anahtarının ele geçirilebileceği ispatlanmıştır [19].

55
Yukarıda kısaca değinilen koşul durumda, sistemin güvenilirliği ayrık logaritma
probleminin karmaşıklığına dayanmaktadır.

7.2. Kimlik-Tabanlı Sayısal Ġmza Sistemleri

7.2.1. Shamir’in Kimlik-Tabanlı Ġmza Sistemi Önerisi

Shamir, kimlik-tabanlı kriptosistemler fikrini ortaya atarken, gerçek bir


kriptosistem önerisinde bulunamamış ancak, bir imza sistemini sunmuştur.

İmza sistemi formül 1 „deki onaylama koşuluna dayanmaktadır.

s e  i  t f (t ,m) (mod n) (7.18)

m : mesaj

s,t : imza

i : kullanıcının kimlik bilgisi

n : iki geniş asal sayının çarpımı

f : tek yönlü fonksiyon

e : φ(n) ile aralarında asal olan bir büyük asal sayı

n,e parametreleri ve f fonksiyonu AÜM tarafından seçilmektedir, ve tüm


kullanıcıların akıllı kartlarında aynı n,e değerleri ve f fonksiyonunun tanımı yer
almaktadır. Bu değerler herkese açıktır, yalnız n‟in çarpanları AÜM‟de gizli
kalmalıdır.

ge = i (mod n) g, gizli anahtar, AÜM her kullanıcının kendi gizli


anahtarını hesaplayarak kendisine iletir.

Bir mesajı imzalamak için : Gönderen bir rassal sayı r seçer ve

t = re (mod n) hesaplar.

56
Onaylama koşulu şu şekilde yazılabilir :

s e  g e .r ef(t, m) (mod n) (7.19)

e , φ(n) ile aralarında asal olduğundan dolayı e‟yi üslerden çıkarabiliriz.

s  g.r f(t, m) (mod n) (7.20)

(s,t) çifti anahtar bilgisini oluşturmaktadır.

Alıcı taraf (1) de verilen onaylama koşulunu kullanarak imzanın geçerli olup
olmadığını sınayabilir.

7.3. Kimlik Tabanlı Anahtar Dağıtım Sistemleri

Kimlik tabanlı kriptografinin 6. bölümde tanıtılan anahtar dağıtım sistemlerine


uygulanabilmesi mümkündür.

Kimlik tabanlı anahtar dağıtım sistemi, sistemdeki her kullanıcının kimlik bilgisini
kullanan ve geniş bir ağda kullanılan ortak anahtarların paylaşımını sağlayan bir
sistemdir.

7.3.1. Tsujii – Itoh Kimlik Tabanlı Anahtar Dağıtım Sistemi

Tsujii-Itoh kimlik tabanlı kriptosistem önerisi Bölüm 7.1.3‟de tanıtılmıştı. Aynı


düşüncenin bir kimlik tabanlı anahtar dağıtım sisteminde kullanılması da
mümkündür [19]. Sistem Diffie-Hellman anahtar dağıtım sisteminin kimlik-tabanlı
versiyonu olarak düşünülebilir.

7.3.2. Maurer – Yacobi EtkileĢimsiz Anahtar Dağıtım Sistemi

Maurer Jacobi Etkileşimsiz Anahtar Dağıtım Sistemi [22], Diffie – Hellman


sisteminin mod değeri olarak bir bileşik sayı kullanan çeşidine dayanmaktadır. Mod
değeri m, birden fazla asal sayının çarpımından oluşmakta, herbir asal çarpanın ayrık

57
logaritmik değeri kolaylıkla hesaplanabilirken, m çarpımının ayrık logaritmik
değerinin hesaplanması kabul edilebilecek süre içinde mümkün olmamaktadır. m
değerinin bu şekilde seçilmesi durumunda, bir Güvenlir Merkez, mod m „de üs
almaya dayalı bir açık anahtar dağıtım sistemi oluşturabilir.

Sistemin adında yer alan etkileşimsiz ibaresi ile kastedilen, istem ilk kurulduktan
sonra haberleşen tarafların Güvenli Merkezin desteğine ihtiyaç duymadan
haberleşmelerini sürdürmeleridir. Güvenli Merkez, başlangıçta gizli anahtarların
dağıtımından sonra görevini tamamlamakta ve her mesaj iletiminde anahtar üretmesi
gerekmemektedir.

Bu sistemin diğer anahtar dağıtım sistemlerinden en önemli farkı açık anahtarın


tamamen kimlik bilgisinden oluşması, merkezin yada kullanıcının belirlediği rassal
sayıların anahtarın üretilmesinde kullanılmamasıdır.

7.3.2.1. Sistemin OluĢturulması :

Sistem Parametreleri :

Başlangıçta , Güvenli Merkez r adet pi asal sayısı seçer. Bu seçim sırasında


( pi  1) / 2 değerlerinin asal olması tercih edilmelidir. Asallık koşulu sağlanamıyorsa

da ( pi  1) / 2 değerleri tek sayı olmalı ve aralarında asal olmalıdır. pi değerleri ,


ayrık logaritmalarının alınabilmesini kolaylaştırmak için yeterince küçük seçilmeli ,
ancak pi değerlerinin çarpımı ile oluşacak m sayısının çarpanlarına ayrılması zor
olmalıdır.

pi „lerin belirlenmesinden sonra Güvenilir Merkez m  p1  p2     pr değerini


*
hesaplar ve Z m içinden bir α üreteç değeri belirler. m ve α sistem değişkenleri
olarak yayınlanır.

Kullanıcı Kaydı :

A kullanıcısının sisteme katılımı, kullanıcının Güvenilir Merkeze kimlik belgesi IDA


„yı sunması, merkezin kimliği onaylaması ve kullanıcının gizli anahtarı s A‟yı

58
hesaplayıp kullanıcıya iletmesi ile gerçekleşir. t birkez belirlenecek ve tüm sistemde
kullanılacak olan Z * (m ) den seçilen bir rassal sayı olmak üzere

s A  t  log  ( IDA2 )(mod  (m)) (7.21)

(7.21) eşitliğinden sA gizli anahtarı hesaplanır. ID bilgisinin karesinin alınması,


sA‟nın varlığını garanti altına almak içindir.

Mesaj ġifreleme :

Kullanıcı A , M mesajını güvenli bir şekilde kullanıcı B‟ye iletmek için A-B için
ortak olan KAB anahtarını hesaplar ve mesajını bu anahtarı kullanarak bir simetrik
şifreleme algortiması ile şifreler. B kullanıcısına yollar. KAB „nin hesaplanması
sırasında A kullanıcısı B‟nin kimlik bilgisi IDB‟yi kullanır.

K AB  ( IDB ) 2 s A (mod m) (7.22)

K AB   vs A s B (mod m), v  t 1 (mod  (m)) (7.23)

KAB hesaplandıktan sonra, kullanıcı A DES gibi bir simetrik kriptosistem kullanarak
mesajını KAB ile şifreler ve kullanıcı B „ye yollar.

ġifre Çözme :

Gelen şifrelenmiş mesajı çözmek için kullanıcı B benzer bir yol izleyerek önce KBA
anahtarını hesaplar, peşinden de bu anahtarı kullanarak, üzerinde anlaşılmış olan
simetrik algoritma yardımıyla mesajı elde eder.

K BA  ( IDA ) 2 sB   vsB s A  K AB (mod m) (7.24)

59
7.3.2.2. ĠyileĢtirmeler ve Güvenlik

Güvenli merkez sadece başlangıçta sistemin oluşumu sırasında gerekmekte, veri


alışverişi sırasında ise güvenli merkeze ihtiyaç duyulmamaktadır. Bu yüzden sistem
bir kez kurulduktan sonra, güvenli merkezin ortadan kaldırılması gizli bilgileri (yani
m‟nin çarpanlarını da) silerek mümkündür.

Tanıtılan sistemde, tekrar eden transfer işlemlerinde hep aynı anahtar


kullanılmaktadır. Bunun sakınca yaratacağı durumlarda, kullanıcı A‟nın bir R rassal
sayısı belirlemesi ve f güvenli bir hash fonksiyonu olmak üzere anahtar olarak

f ( K AB , R) değerinin kullanılması mümkündür. Kullanılan rassal R sayısı şifrelenmiş


metinle birlikte B kullanıcısına iletilmelidir.

f hash fonksiyonuna giriş parametresi olarak bir zaman etiketinin eklenmesi


önceden kullanılmış bir anahtarı ele geçiren korsanın bu anahtarı daha sonra yeniden
kullanımını engeller.

60
8. KĠMLĠK TABANLI GÜVENLĠ VERĠ AKTARIM SĠSTEMĠ (KT-GVAS)

Bundan önceki bölümlerde ilk olarak temel kriptografi öğeleri tanıtılmış, ardından da
kimlik-tabanlı kriptosistemler incelenmiştir. Bu çalışma kapsamında geliştirilen
“Kimlik Tabanlı Güvenli Veri Aktarım Sistemi” uygulaması ise bu bölümde
tanıtılacaktır.

8.1. Genel Özellikler

Kimlik Tabanlı Güvenli Veri Aktarım Sistemi (KT-GVAS) bir yerel ağ üzerinde
çalışan ve ağa bağlı kullanıcılar arasında güvenli bir şekilde veri iletişimini sağlayan
çok kullanıcılı bir uygulamadır. KT-GVAS ağ üzerinde veri güvenliğini sağlamak
üzere bir kimlik tabanlı kriptosistem kullanmaktadır.

Anahtar Üretim Merkezi


(AÜM)

Kullanıcı F
Kullanıcı A

Internet

Kullanıcı B

Kullanıcı E

Kullanıcı C
Kullanıcı D

Şekil 8.1 KT-GVAS Ağ Şeması

61
Sistemde bir merkezi Anahtar Üretim Merkezi bulunmaktadır. Bu merkez,
kullanıcıların gizli anahtarlarının kimlik bilgileri kullanılarak hesaplanması ve
kullanıcılara dağıtımı işlemlerini yapmaktadır.

Sisteme bağlı olan kullanıcılar aynı yerel ağ üzerinde olabilecekleri gibi, internet
üzerinden de sisteme erişebilirler.

Sistem, Visual Basic 6.0 programlama dili kullanılarak geliştirilmiştir. Sisteme ait
tüm kaynak kodlar ekte verilen CD‟de yer almaktadır.

8.2. Kullanılan Kimlik-Tabanlı Kriptosistem

Sistemde kurulacak olan kimlik-tabanlı kriptosistemi oluşturan bileşenler ve hangi


kriterler sebebi ile seçildikleri aşağıdaki bölümlerde açıklanmıştır.

8.2.1. ġifreleme Sistemi

Sistemde şifreleme sistemi olarak bir gizli-anahtarlı şifreleme algoritması


kullanılmakta, algoritmada kullanılan gizli anahtarlar ise Maurer-Yacobi
Etkileşimsiz Anahtar Dağıtım Sistemi ile belirlenmektedir.

Kimlik-tabanlı açık-anahtarlı kriptosistemlerden incelenenlerin pratikte yeterince


uygulanabilir olmadığı görüldüğü için [20,21], şifreleme işlemleri için bir Kimlik-
Tabanlı Etkileşimsiz Anahtar Dağıtım Sisteminin, bir Gizli-Anahtarlı Şifreleme
Algoritması ile tümleştirilerek kullanımına karar verilmiştir. Kullanılan tümleşik
sistem veya eşdeğerleri kimlik-tabanlı açık-anahtarlı sistemlerinin yerini
alabilmektedirler [21].

[20]‟de Boneh ve Franklin, şimdiye kadar önerilmiş olan tüm kimlik-tabanlı açık-
anahtarlı kriptosistemler arasında performans, karmaşıklık ve güvenlik anlamında
tam tatmin edici bir sistem olmadığını belirtmişlerdir. Önerilmiş olan sistemler bir
alanda öne çıkmakta ancak diğer alanlarda problemlerle karşı karşıya kalmaktadırlar.
Bazı çözümler ciddi performans sorunları yaşamakta, bazıları özel donanımlar
gerektirmektedir. [21]‟de Murakami, Sakai ve Kasahara kullanışlı bir kimlik-tabanlı

62
açık-anahtarlı kriptosistemin henüz gerçekleştirilemediğini , bunun yerine bir kimlik-
tabanlı anahtar dağıtım sisteminin kullanılabileceğini belirtmektedirler.

Sistemde gizli-anahtarlı şifreleme algoritması olarak Rijndael kullanılmaktadır. 2001


yılında İleri Şifreleme Standartı olarak belirlenmiş olan bu algoritmanın detayları
bölüm 2.2.4 „de incelenmiştir. Uygulamada hem blok uzunluğu, hem de anahtar
uzunluğu 128 bit olarak alınmıştır.

Maurer-Yacobi Etkileşimsiz Anahtar Dağıtım Sistemi bölüm 7.3.2 „de incelenmiştir.


Anahtar Dağıtım Sisteminin gerçekleştirilmesinde kullanıcıların kimlik bilgileri açık
anahtarları olarak kabul edilecek ve karşı düşen özel anahtarlar, merkezi Anahtar
Üretim Merkezi tarafından hesaplanacaktır. Kullanıcılara ait bu özel-açık anahtar
çiftleri Rijndael şifrelerinin oluşturulmasında kullanılacaktır.

Maurer Yacobi – Rijndael sisteminin seçilmesinin sebeplerinden biri de bölüm


8.5‟de açıklandığı gibi, Maurer-Yacobi sisteminin sayısal imza yapısını da içinde
barındırmasıdır.

8.2.2. Kimlik Bilgisi

Sistem kimlik-tabanlı olarak çalışacağından kullanılacak şifreleme anahtarları


kullanıcıların kimlik bilgilerinden üretilecektir. Anahtar üretiminde kullanılabilecek
olan kimlik bilgileri kullanıcının adı, adresi, telefon numarası, ip numarası, e-posta
adresi gibi çeşitlendirilebilir.

Bunlardan hangisinin kullanılması gerektiği hazırlanan uygulamanın özelliklerine


bağlıdır. Güvenli e-posta haberleşmesini hedefleyen bir uygulama geliştirilmesi
durumunda, e-posta adreslerinin kimlik bilgisi olarak kullanılması en kolay çözüm
olacaktır. Haberleşen taraflardan gönderici, alıcıya mesaj yollamak istediğine göre
zaten alıcının e-posta adresini bilmektedir veya kolayca bulabilecektir. Mesaj alıcıya
ulaştığında, alıcı önceden bilmese bile mesajın geldiği e-posta adresine bakarak
göndericinin e-posta adresini öğrenebilecektir. Bu durumda, bu iki taraf arasında
kullanılacak olan şifreleme anahtarının tarafların e-posta adreslerinden oluşturulması
en anlamlı yoldur.

63
KT-GVAS „da ise ağ üzerinde güvenli veri aktarımı hedeflenmektedir. Yine
uygulamanın doğası gereği IP adreslerinin kullanıcı kimlik bilgisi olarak kabulü hem
kullanıcılar için karşı tarafın kimlik bilgisini öğrenme amacıyla ek bir çaba
gerektirmeyecek, hem de haberleşme sadece yerel alan ağı ile sınırlı kalmayacak,
Internet üzerinden erişim de mümkün olacaktır.

8.3. Sistem ĠĢleyiĢi

Sisteme dahil olacak her kullanıcının Anahtar Üretim Merkezi‟nden özel anahtarını
alması gerekmektedir. AÜM, kullanıcının IP nosunu kullanarak (bu bilgiyi gerekli
bit büyüklüğüne getirmek için eklemeler yapar) özel anahtarı üretir ve sahibine iletir.

IPA IPB

sA sB
A AÜM B

Şekil 8.2 Özel Anahtarların Üretilmesi

Kullanıcılar kendi özel anahtarlarını aldıktan sonra, birbirleri arasında mesajlaşmaya


ya da dosya transferine başlayabilirler. Hatta A kullanıcısının B kullanıcısına mesaj
yollayabilmesi için B‟nin özel anahtarını almış olması şart değildir. A kullanıcısı B
anahtarını almadan da mesaj gönderebilir. B‟nin gelen mesajı okuyabilmesi için
kendi özel anahtarını almış olması gerekir.

A ve B kullanıcıları arasında mesaj transferi yapılırken, gönderilecek mesajlar


Rijndael simetrik algoritması kullanılarak şifrelenecektir. Bu işlem için kullanılacak
olan anahtar A ve B kullanıcılarının açık ve özel anahtarları yardımıyla her kullanıcı
tarafından ayrı ayrı üretilecektir.

64
sA sB
A B

IDB IDA
KAB

Şekil 8.3 Rijndael Anahtarının Üretilmesi

Kullanıcı A, kendi özel anahtarını (sA) ve haberleşmek istediği kullanıcının kimlik


bilgisini (IDB) kullanarak, Maurer-Yacobi Anahtar Dağıtım sistemine göre ortak
şifreleme anahtarını (KAB) üretecektir. Daha sonra yollamak istediği mesajı bu
anahtarı kullanarak Rijndael algoritması ile şifreleyerek B‟ye iletecektir.

Kullanıcı B ise, kendi özel anahtarı (sB) ve mesaj gönderen tarafın kimlik bilgisini
(IDA) kullanarak ortak şifreleme anahtarını (KAB) üretecektir. Kendine gelen
şifrelenmiş mesajı, yine Rijndael algoritmasını kullanarak çözerek, gönderilmiş olan
mesajı elde edecektir.

KAB KAB

012 012
ġifre
ABC ġifreleme ABC
Çözme
DEF (Rijndael) DEF
(Rijndael)
GHI GHI

Mesaj ġifrelenmiĢ Mesaj Mesaj

Şekil 8.4 Mesajın Şifrelenmesi / Şifrenin Çözülmesi

Kullanıcıların kimlik bilgileri – dolayısı ile özel anahtarları – aynı kaldığı sürece A
ve B kullanıcıları ikili haberleşmelerinde hep aynı KAB anahtarını kullanacaklardır.
Bu durumun istenmemesi halinde, anahtarın belli aralıklarla ya da her kullanımda
değişmesi için iki farklı yöntem izlenebilir. Bu yöntemler bölüm 9.3‟de
açıklanmıştır.

65
8.4. KarmaĢıklık Analizi

Anahtar Üretim Merkezi uygulamasında kullanıcı özel anahtarları Maurer-Yacobi


Etkileşimsiz Anahtar Dağıtım Sistemi kullanılarak üretilmektedir. AÜM, n mod
değerini oluşturan pi çarpanlarını bilmektedir. Bu nedenle, AÜM‟de karmaşıklık
çarpanlara ayırma işleminden değil, ayrık logaritma probleminden oluşmaktadır.

AÜM modülünde, ayrık logaritma işlemini hesaplamada Pohlig-Hellman algoritması


kullanılmaktadır [25]. AÜM‟nin kullandığı anahtar üretme algoritmasının
karmaşıklığı, Pohig-Hellman algoritmasının karmaşıklğına denk olarak kabul
edilebilir.

Pohlig-Hellman algoritmasının karmaşıklığı, pi asal sayılarının bilindiği kabul


edilmek üzere 8.2‟de verilmiştir [2, s108].

O(i 1 ei (lg n  pi ))
r
(8.2)

n  p1 1  p2 2      pr
e e er
olmak üzere pi asal sayıları, n ise mod değerini temsil
etmektedir.

Kullanıcı modülünde gerçekleştirilen ortak anahtarın hesaplanması işlemi sırasında


bir modüler üs alma işlemi gerçekleştirilmektedir. Sistemde modüler üs alma işlemi,
Tekrarlamalı Kare Alma ve Çarpma Algoritması [2, s.71] kullanılarak
gerçekleştirilmiştir. Kullanılan modüler üs alma algoritmasının karmaşıklığı (8.3)‟de
verilmiştir [2, s.72].

O((lg n)3 ) (8.3)

66
8.5. KT-GVAS ‘da Sayısal Ġmza

KT-GVAS uygulamasında Sayısal İmza yapılarının kullanılmasına gerek


görülmemiştir. Bunun nedeni, şifreleme sisteminin çalışma yapısı içinde sayısal imza
mantığını da barındırmasıdır.

Her bir haberleşen çift açık ve özel anahtarlarını kullanarak ortak bir Rijndael
şifreleme anahtarı oluşturmakta ve anahtarla şifreleme / şifre çözme işlemi
gerçekleştirilmektedir. Anahtar her iki tarafa ait bilgilerin birleşimi ile elde
edilmektedir. Şöyle ki A kullanıcısı kendi özel anahtarı ve kullanıcı B‟nin açık
anahtarını kullanarak K şifresini oluşturmaktadır. Benzer şekilde B kullanıcısı da
kendi özel anahtarı ve A‟nın açık anahtarını kullanmaktadır. Kullanıcı A‟nın, B‟ye
mesaj gönderirken kullandığı anahtar kendi özel anahtarının bir fonksiyonudur. Alıcı
taraf B‟nin mesajı çözmek için kullandığı anahtarda göndericinin açık anahtarının bir
fonksiyonudur. Yani anahtar üretimindeki diğer parametreleri göz ardı edersek,
gönderici metni kendi özel anahtarı ile şifrelemekte, alıcı da göndericinin açık
anahtarı ile çözmektedir. Bu işlem de sayısal imzaların temel çalışma mantığına denk
düşmektedir. Bu nedenle sistemde ayrıca bir sayısal imza sistemi kurulmasına gerek
görülmemiştir.

8.6. KT-GVAS Kullanımı

Uygulama, Anahtar Üretim Merkezi ve normal kullanıcılar için ayrı olmak üzere iki
ayrı modülden oluşmaktadır.

8.6.1. Anahtar Üretim Merkezi Modülü

Anahtar Üretim Merkezi modülü sadece AÜM‟de koşturulacaktır. Bu modül önceki


bölümlerde detaylıca açıklanmış olan AÜM görevlerini gerçeklemektedir.

AÜM Sistem Paramatreleri bölümünde, Maurer Yacobi Kimlik Tabanlı Anahtar


Dağıtım Sisteminin kurulabilmesi için gerekli parametreler belirlenmekte, bu
parametrelerden değiştirilebilecek olanların değiştirilmesi imkanı sunulmaktadır.

67
AÜM Kullanıcı Özel Anahtarını Hesaplama bölümü ile, AÜM‟ye bağlanan ve
kimliğinden emin olunan kullanıcıya ait özel anahtar daha önce anlatılan şekillerde
hesaplanmakta ve sahibine iletilmektedir.

Şekil 8.5 KT-GVAS Anahtar Üretim Merkezi

68
8.6.2. Kullanıcı Modülü

Bu modül, sisteme dahil olan tüm kullanıcılarda koşacaktır. Kullanıcılar, birbirleri


arasındaki tüm mesajlaşma ve dosya alışverişi işlemlerini bu modülü kullanarak
gerçekleştireceklerdir.

Programa kullanım kolaylığı sağlama açısından tüm şifreleme, şifre çözme, anahtar
hesaplama işlemleri arka plana alınmış, kullanıcılara yansıtılmaması sağlanmıştır.

Kullanıcı modülü kullanılarak, kullanıcılar arası mesaj alışverişi, dosya transferi


gerçekleştirilebilir. Merkez bağlantısı kurularak, merkezden özel anahtarın transfer
edilmesi sağlanabilir.

Şekil 8.6 KT-GVAS Kullanıcı Modülü Ana Ekran

69
Mesajlaşma ve dosya transferi işlemlerinin gerçekleşmesi için, göndericinin alıcının
kimlik bilgisi olan IP numarasını girmesi gerekmektedir. Bundan sonra gönderici ve
alıcı makinalar arasında soket bağlantısı kurularak mesaj yada dosya şifrelenmiş bir
şekilde karşıya iletilir. Alıcı tarafta programın çalışıyor olması gerekmektedir. Gelen
mesaj veya dosya bilgisi alıcının bir işlem yapmasına gerek kalmadan alıcıya iletilir.

Şekil 8.7 KT-GVAS Kullanıcı Güvenli Mesajlaşma Ekranı

70
Şekil 8.8 KT-GVAS Kullanıcı-Merkez Bağlantısı Ekranı

71
9. SONUÇLAR VE TARTIġMA

Bu tez çalışması kapsamında, Kimlik Tabanlı Kriptosistem kavramı ve bu kavramı


içeren uygulamalar incelenmiş, ayrıca yerel alan ağı üzerinde güvenli veri iletimini
sağlamak üzere kimlik tabanlı bir güvenli veri aktarım uygulaması tasarlanmıştır.

Bilgisayarların günlük yaşamın vazgeçilmez bir parçası olması ve Internetin


yaygınlaşması ile birlikte birbirine bağlı bilgisayar sayısının çok artması sebebi ile
kişisel gizlilik ve bilgi güvenliğine dönük tehditler çoğalmıştır. Bu tehditlere karşı
en etkili silah kriptografik uygulamaların kullanılmasıdır. Kriptografi alanında
yapılan çalışmalarda oluşan bu doğal taleple birlikte son yıllarda artma göstermiştir.

1976 yılında Açık Anahtarlı Kriptografi kavramının bulunması bir devrim yaratmış
ve bundan sonra gerçekleştirilen kriptografik uygulamalarda açık anahtarlı
algoritmalardan sıklıkla yararlanılmıştır. Bundan sonraki yıllarda araştırmacılar yeni
kavramlar üzerinde kafa yormuşlar ve 1984 yılında Kimlik Tabanlı Kriptosistemler
ortaya atılmıştır. Kimlik Tabanlı Kriptosistemler şu ana kadar yaygın bir kullanım
alanı bulamamış, açık anahtarlı sistemlerin bir türevi olarak görülmüştür.

9.1. KTK’ların Artıları Eksileri

Kimlik Tabanlı Kriptosistemler, açık anahtar dağıtımı gerekliliğini ortadan


kaldırmaktadır. Göndericiler, alıcıların açık anahtarlarını (kimliklerini) önceden
bilecekleri için açık anahtar öğrenmeleri gerekmeyecektir. Bu sayede Açık Anahtar
Altyapılarının (PKI) kullanılması gerekmeyecektir. Açık anahtarların dağıtılmasını
sağlayan sertifikalar da kullanılmayacaktır.

Özel anahtarların üretilebilmesi için güvenilir bir anahtar üretim merkezine ihtiyaç
duyulmaktadır. Bir anlamda açık anahtar dağıtan CA‟ların yerini özel anahtarları
hesaplayıp dağıtan AÜM‟ler almıştır. Ancak AÜM‟lere yapılması gereken erişim

72
miktarının açık anahtar sunucularına göre daha kısıtlı olacağı söylenebilir. Her
kullanıcı AÜM‟den sadece kendi özel anahtarını alacaktır. Diğer durumda ise, her
kullanıcı haberleşeceği tüm kullanıcıların açık anahtarlarını ya sahiplerinden ya da
anahtar sunucularından elde etmek zorundadır.

Tasarlanan sistemin ya da genel olarak Kimlik Tabanlı Kriptosistemlerin avantajlı


noktalarından biri, alıcı sisteme kaydolmamış dahi olsa, göndericinin alıcıya güvenli
mesaj yollayabilmesidir [20]. Açık anahtarlı sistemlerde güvenli mesaj
yollayabilmenin ilk kuralı alıcının açık anahtarını bilmek, yani alıcının bir açık
anahtara sahip olması, sisteme dahil olmasıdır. Aksine, Kimlik Tabanlı
Kriptosistemlerde gönderici alıcının kimliğini – açık anahtarını – bildiği için alıcı
sisteme dahil olmasa dahi güvenli mesaj gönderebilir. Alıcı mesaj kendine ulaştıktan
sonra AÜM‟den kendi özel anahtarını alarak, gönderilmiş olan mesajı okuyabilir.

Anahtar Üretim Merkezi, tüm kullanıcıların özel anahtarlarını hesapladığından, bu


anahtarların hepsini bilecektir. Bu durumda Anahtar Üretim Merkezi‟nin çok
güvenilir olması gerekmektedir. Tüm kullanıcıların özel anahtarını bilmek, AÜM‟ye
istediğinde tüm kullanıcıların mesajlarını açabilme imkanı verecektir. Bu sebeple
Kimlik Tabanlı Kriptosistemlerin merkeze güvenin sağlanamayacağı ortamlarda
kullanılması pek olası değildir.

Anahtar Üretim Merkezinin varlığı şart olmasına rağmen, merkezle sürekli etkileşim
gerekmemektedir. Yani sistem ilk oluşturulup, özel anahtarlar dağıtıldıktan sonra,
AÜM sistemi oluşturan parametreleri de imha ederek kapatılabilir. Geri kalan
kullanıcılar, AÜM bir daha aktif olmadan da haberleşmelerini sürdürebilirler.

Açık anahtar elde edilmesi gerekliliğini ortadan kaldırması, PKI yapılarına ihtiyaç
duymaması KTK‟ların olumlu yönleri olarak gösterilebilirse, AÜM‟ye koşulsuz
güven duyulması gerekliliği de en olumsuz özelliği olarak göze çarpmaktadır. Bu
koşullar ışığında bir kimlik tabanlı kriptosistem uygulamasının merkezin
güvenilirliliğinin kuşku götürmediği özel ağlarda (şirketler,okullar gibi)
uygulanabilir olacağı söylenebilir.

73
9.2. Tasarlanan Sistem

Şimdiye kadar bir çok kimlik tabanlı kriptosistem önerilmiş olmasına rağmen, henüz
pratiklik ve güvenliği birlikte sağlayan bir sistem bulunamamıştır [21]. Yeni önerilen
sistemlerin dayandığı matematiksel temel gittikçe daha karmaşık bir hal almaktadır.
RSA veya El Gamal sistemlerinin açık anahtarlı kriptografide gösterdiği basitlik ve
güvenlik derecesini sağlayabilen bir kimlik tabanlı algoritma bulunamamıştır
[20,21]. Tez kapsamında tasarlanan uygulamada mevcut kimlik tabanlı şifreleme
algoritmalarının kullanılmaması bu nedene dayanmaktadır.

Uygulamada, Maurer-Yacobi Etkileşimsiz anahtar dağıtım sistemi ile Rijndael


simetrik algoritmasının birlikte kullanıldığı bir sistem tasarlanmıştır. Bu sayede
şifreleme Rijndael algoritması ile gerçekleştirilerek, simetrik bir algoritmanın
sağladığı işlem hızından yararlanılmıştır. Ayrıca şifreleme işleminin güvenilirliği
AES standardı olan Rijndael‟in güvenilirliğine denktir.

Rijndael‟in kullanacağı anahtarların üretilmesinde ise kimlik-tabanlı bir uygulama


olan Maurer-Yacobi anahtar dağıtım sistemi kullanılarak, kimlik-tabanlı bir sistemin
sağlayacağı avantajlardan yararlanmaya çalışılmıştır.

Bölüm 8-5 „de değinildiği üzere, şifreleme sistemi bir nevi sayısal imzayı da içinde
barındırdığı için, ayrıca bir sayısal imza sisteminin kullanılması gerekli
görülmemiştir.

Sistemde, AÜM‟nin pi rassal sayılarını üretmesi sırasında, Visual Basic 6.0


programlama dilinin standart rassal sayı üretme fonksiyonları kullanılmaktadır. Bu
fonksiyonlar, başlangıç değerini (seed) sistem saatinden almaktadır ancak istendiği
takdirde bu fonksiyonlara dışarıdan başlangıç değeri atanabilmektedir.

Başlangıç değerinin sistem saatinden alınması, bazı sorunlara yol açabilmektedir.


Rassal sayıların üretildiği saati tahmin edebilen ve aynı rassal sayı üretecine erişim
imkanı olan bir kişinin, saat bilgisini kullanarak, üretilmiş olan rassal sayıları tahmin
edebilme imkanı vardır [27]. Bu tehlikeyi önlemenin yolu rassal sayı üretecine
verilen başlangıç değerinin gerçekten rassal olmasını sağlamaktır. Bu konu Java gibi

74
bazı dillerde desteklenirken, Visual Basic standart fonksiyonlarında
desteklenmemektir. İleri ki aşamalarda, sisteme gerçek rassal başlangıç değerleri
üreten bir bileşenin eklenmesi, sistem güvenliğini olumlu olarak etkileyecektir.

Başlangıç değerinin değiştirilmesinin sistem performansınaa dönük herhangi bir


olumlu yada olumsuz etkisi olmamıştır. Bunun sebebi de farklı başlangıç değerleri
için dahi, programlama dilinin aynı rassal sayı üretecini kullanmasıdır. Üreteç aynı
kaldığı sürece, başlangıç değeri değişiminin performansa bir etkisi olmamaktadır
ancak başlangıç değerinin rassal olarak verilmesinin sağlanması sistem güvenliğini
arttıracaktır.

Rassal sayı üretim sürecinin sistem performansına etkisini gözlemlemek için farklı
rassal sayı üreteçlerinin implemente edilmesi gerekmektedir. Donanımsal rassal sayı
üreteçlerinin kullanılması da sistem güvenliğini arttıracak önemli bir faktör olacaktır.
Bundan sonraki aşamalarda değişik rassal sayı üreteçlerinin sistem performansına ve
güvenliğine etkileri incelenebilir.

9.3. ĠyileĢtirmeler

Tasarlanan sistemde, kullanıcıların kimlik bilgileri – dolayısı ile özel anahtarları –


aynı kaldığı sürece A ve B kullanıcıları ikili haberleşmelerinde hep aynı K AB
anahtarını kullanacaklardır. Bu durumun istenmemesi halinde, anahtarın belli
aralıklarla ya da her kullanımda değişmesi için iki farklı yöntem izlenebilir.

Ortak Anahtarın Zamana Bağlı Olarak DeğiĢmesi :

Birinci yöntemde, ortak anahtarın belli aralıklarla değişmesinin yolu, kullanıcı özel
anahtarlarının zamana bağlı olarak değişmesidir. Bunun için de kullanıcı açık
anahtarı olarak kimlik bilgisi ve bir zaman etiketinden oluşan katarın kullanılması ve
özel anahtarın bu kimlik bilgisine göre hesaplanması gerekecektir. Bu sayede özel
anahtarlar, dolayısı ile simetrik şifreleme anahtarı belli zaman aralıklarında
yenilecektir. Örneğin KT-GVAS‟da kimlik bilgisi olarak IP adresi yerine, IP adresi
ve gün bilgisinden oluşan bir katar kullanılırsa ve AÜM özel anahtarları bu katarlara

75
göre üretirse, üretilecek olan anahtarların sadece o gün için geçerli olması
sağlanabilecektir. Süresi dolan anahtar kullanılamayacaktır.

“10.18.1.54/////26.05.2002”

“160.75.2.20\\\\\\\\\2002”

Örneğin yukarıda verilen ilk ifade, belirtilen IP numarasına sahip olan sistemin,
belirtilen tarihteki kimlik bilgisi olabilir ve AÜM bu sisteme o gün için geçerli
olacak anahtarını verecektir. Geçerlilik süresi günden daha uzun da tutulabilir. Açık
anahtar sertifikalarında olduğu gibi yıllar seviyesine çıkarılabilir. Üstteki ikinci örnek
katar da bir yıl süresince geçerli olacak bir kimlik bilgisini göstermektedir.

Bu şekilde kimlik bilgisine bir zaman etiketi ekleyerek, oluşturulacak özel


anahtarların, açık anahtar sertifikalarında olduğu gibi bir geçerlilik süresine sahip
olmaları sağlanabilir. Bu süre sonunda oluşturulan özel anahtar geçerliliğini yitirir ve
yenilenmesi ihtiyacı doğar.

Ortak Anahtarın Her Kullanımda Yenilenmesi :

İkinci yöntemde simetrik şifreleme anahtarının her kullanımda değişmesini


sağlayabilmek için, göndericinin her seferinde bir rassal R sayısı seçmesi ve
hesapladığı KAB anahtarı ile R rassal sayısını bir f güvenli hash fonksiyonuna
sokması gerekecektir. Böylece Rijndael algoritmasında kullanılacak olan anahtar K,
güvenli hash fonksiyonunun üreteceği hash değeri olacaktır [22].

K  f ( K AB , R) (8.1)

Kullanıcı A, K anahtarını kullanarak mesajını şifreleyecek ve şifrelenmiş mesajla


birlikte kullanmış olduğu R rassal sayısını da Kullanıcı B‟ye yollayacaktır. Böylece
kullanıcı B, KAB ve R‟yi kullanarak aynı güvenli hash fonksiyonu sayesinde K
anahtarını elde edebilecektir. Bu sayede de şifrelenmiş mesajı çözebilecektir.

76
Bu yöntemin kullanılması durumunda, f fonksiyonuna parametre olarak bir zaman
etiketinin sokulması, dolayısı ile üretilecek anahtarın zamana da bağlı olmasının
sağlanması mümkündür.

77
KAYNAKLAR

[1] Schneier B., 1996,”Applied Cryptography, Second Edition”, John Wiley &
Sons Inc., New York

[2] Menezes A., Van Oorschot P., Vanstone S., 1996, “Handbook of Applied
Cryptography” , CRC Press,Florida

[3] Stinson D., 1995, “Cryptography Theory and Practice”, CRC Press, Florida

[4] FIPS PUB 46, 1977, “Data Encryption Standart”, National Bureau of
Standarts US Department of Commerce

[5] FIPS PUB 197, 2001, “Advanced Encrytion Standart”, National Bureau of
Standarts US Department of Commerce

[6] AES Resmi WEB Sitesi, www.nist.gov/aes, National Standarts and


Technologies Institute, USA

[7] Savage J., Web Book “A Cryptographic Compendium”,


http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/entry.htm

[8] Diffie W. and Hellman M.E. ,1976, “New Directions in Cryptography”,


IEEE Transactions on Information Theory, IT-22, 644-654

[9] Rivest R.L., Shamir A. and Adleman L.M., 1978, “A method for Obtaining
Digital Signatures and Public Key Cryptosystems”,
Communications of the ACM, 21, 120-126

[10] ElGamal T., 1985, “A Public Key Cryptosystem and a Signature Scheme
Based on Discrete Logarithms”, IEEE Transactions on
Information Theory, IT-31, 469-472

[11] Certicom Corp. , 2000, “Current Public-Key Cryptographic Systems”,


Certicom Corp. Whitepaper, http://www.certicom.com

[12] Lopez J., Dahab R., 2000, “An Overview of Elliptic Curve Cryptography”

[13] Rivest R.L., 1992, “The MD5 Message Digest Algorithm”, RFC 1321

[14] Rivest R.L., 1992, “The MD4 Message Digest Algorithm”, RFC 1320

78
[15] Kalski B.S.., 1992, “The MD2 Message Digest Algorithm”, RFC 1319

[16] FIPS PUB 180-1, 2000, “Secure Hash Standart (SHS)”, National Institute of
Standarts US Department of Commerce

[17] FIPS PUB 186-2, 2000, “Digital Signature Standart”, National Institute of
Standarts US Department of Commerce

[18] Maurer U., Yacobi Y. , 1991, “Non-Interactive Public-Key Cryptography”,


Advances in Cryptology: Proceedings of EUROCRYPT 91,
Springer-Verlag, 498-507

[19] Tsuji S, Itoh T, 1989, “An ID-Based Crytosystem Based on the Discrete
Logarithm Problem”, IEEE Journal on Selected Areas in
Communications, 7-4, 467-473

[20] Boneh D., Franklin M. , 2001, “Identity-Based Encryption from the Weil
Pairing”,

[21] Murakami Y, Sakai R, Kasahara M, 2000, “A New Probabilistic ID-Based


Non-Interactive Key Sharing Scheme”, IECIE Trans.
Fundamentals, Vol.E83-A No:1

[22] Maurer U.M., Yacobi Y., 1996, “A Non-Interactive Public-Key Distribution


System”, Designs, Codes and Cryptography, 9-3, 305-316

[23] Lim C.H., Lee P.J., 1993, “Modified Maurer-Jacobi‟s scheme and its
applications”, Advances in Cryptology: Proceedings of
AUSCRYPT 92, Springer-Verlag,308-323

[24] Shamir A., 1985, “Identity-based Cryptosystems and Signature Schemes”,


Advances in Cryptology: Proceedings of CRYPTO 84,
Springer-Verlag, 47-53

[25] Pohlig S.C., Hellman M.E., 1978, “An Improved Algoritm for Computing
Logarithms over GF(P) and its Cryptographic Signitifance”,
IEEE Transactions on Information Theory, 24, 106-110

[26] Hühnlein D., Jacobson M.J., Weber D., 2001, “Towards practical non-
interactive public-key cryptosystems using non-maximal
imaginary quadratic orders”, Lecture Notes in Computer
Science Vol. 2012 (Proceedings of SAC 2000), Springer-
Verlag, 275-287

[27] Knudsen J., 1998, “Java Cryptography”, O‟Reilly & Associates Inc., Boston

79
ÖZGEÇMĠġ

Murat Güncan, 1974 yılında Kırklareli‟de doğdu. İlk ve orta öğrenimini


Kırklareli‟de, lise öğrenimini Bursa ve Kırklareli‟de tamamladı. 1999 yılında İTÜ
Elektrik-Elektronik Fakültesi, Kontrol ve Bilgisayar Mühendisliği Bölümü‟nden
mezun oldu. Aynı yıl içinde İTÜ Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği
yüksek lisans programına başladı. Halen TÜBİTAK Marmara Araştırma Merkezi –
Bilişim Teknolojileri Araştırma Enstitüsü – Yazılım Sistemleri Grubu‟nda
araştırmacı olarak çalışmaktadır.

80

You might also like