Professional Documents
Culture Documents
1933
1933
HAZĠRAN 2002
ÖNSÖZ
ii
ĠÇĠNDEKĠLER
KISALTMALAR v
TABLO LĠSTESĠ vi
ÖZET viii
SUMMARY ix
1. GĠRĠġ 1
1.1. Konu 1
1.2. ÇalıĢmanın Amacı 3
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
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
vi
ġEKĠL LĠSTESĠ
Sayfa No
vii
ÖZET
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.
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.
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.
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.
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.
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.
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Ġ)
K K
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.
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.
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.
zi f i ( K , x1 ,......, xi 1 ) (2.3)
Anahtar dizisinin i. elemanı zi, metnin i. elemanı xi‟yi (2.4) de ki şekilde şifreler.
c i e zi (x i ) (2.4)
6
Literatürde, önerilmiş ve uygulama alanı bulmuş çok sayıda blok şifreleyici
mevcuttur. Bunlardan DES ve Rijndael aşağıda incelenecektir.
Ş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.
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
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)
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
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, 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.
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
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)
ci xi zi , i 1 (2.9)
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
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.
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 :
x 0 IP(x) L 0 R 0 (2.10)
Li Ri 1
(2.11)
Ri Li 1 f ( Ri 1 , K i )
3. IP-1 ters fonksiyonu R16L16 „ya uygulanır ve şifrelenmiş metin y elde edilir.
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.
Metin = x
IP
L0 R0
f K1
1.sarmal
L1 R1
L15 R15
f K16
16. sarmal
+
L16 R16
13
DES Algoritmasının temel akış diyagramı Şekil2.6 da 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)
A J
(32 bit) (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)
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
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
PC 1( K ) C0 D0 (2.15)
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.
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
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.
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].
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.
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.
Matris Dört satır ve Nb adet kolondan oluşan matris. Herbir hücre bir
bayt içermekte.
21
Metin
AddRoundKey()
Yineleme 1
SubBytes()
ShiftRows()
MixColumns()
AddRoundKey()
Yineleme Nr-1
SubBytes()
ShiftRows()
MixColumns()
AddRoundKey()
SubBytes()
ShiftRows()
AddRoundKey()
ġifrelenmiĢ
Metin
Ş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.
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.
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}
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.
i = Nk
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.6. Güvenlik
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].
26
3. AÇIK-ANAHTARLI KRĠPTOGRAFĠ (ASĠMETRĠK KRĠPTOGRAFĠ)
KA KÖ
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 Ö )
28
3.1. Çarpanlara Ayırma 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.
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.
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
x R s 2 - 2x P mod p (3.5)
y R - y P s(x P - x R )
3. Tersini alma
4. Etkisiz Eleman
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)
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.
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)
ġifreleme
C M b mod n (3.9)
M C a mod n (3.10)
Güvenlik
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.
ġ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)
1
M (a x ) b (3.13)
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
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.
Güvenlik
Ş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)
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
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
35
1 1
Dk ( y ) ( y1c1 mod p, y 2 c2 mod p)
(3.19)
ay 0 (c1 , c2 )
Güvenlik
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
h H (M ) (4.1)
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.
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.
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.
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.
39
KS KP
ĠmzalanmıĢ OnaylanmıĢ
Mesaj Mesaj
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.
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
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ı :
Ġmzanın Doğrulanması :
41
5.2. El Gamal Ġmza Sistemi
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.
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)
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ı
y=gx mod p
Ġ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.
r ( g k mod p) mod q
(5.5)
s (k 1( H (m) xr )) mod q
Ġmza Doğrulama :
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
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ı 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.
45
6.1. Diffie-Hellman Anahtar DeğiĢim Yöntemi
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.
2. U au
mod p değerini hesaplar ve bunu V kullanıcısına yollar.
4. V, av
mod p değerini hesaplar ve bunu U kullanıcısına yollar.
K ( av ) au mod p ( au ) av mod p
K au av mod p (6.1)
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.
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.
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
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.
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ı.
50
Kullanıcı A Kullanıcı B
IDB KPB
ĠmzalanmıĢ Mesaj
Mesaj Mesaj
Anahtar Üretim
KPA KPB
Merkezi
a = b-1 mod n
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.
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.
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
hi g ai (mod p) (1 i n) (7.7)
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)
Ş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
1i n
i
y1i
(mod p)
(7.9)
( g ai ) (mod p)
y1i
z1
1i n
z1 g 1i n
ai y1i mod p 1
(mod p) g s1 (mod p) (7.10)
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 :
değerini hesaplar.
55
Yukarıda kısaca değinilen koşul durumda, sistemin güvenilirliği ayrık logaritma
probleminin karmaşıklığına dayanmaktadır.
m : mesaj
s,t : imza
t = re (mod n) hesaplar.
56
Onaylama koşulu şu şekilde yazılabilir :
Alıcı taraf (1) de verilen onaylama koşulunu kullanarak imzanın geçerli olup
olmadığını sınayabilir.
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.
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.
Sistem Parametreleri :
Kullanıcı Kaydı :
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
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.
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.
59
7.3.2.2. ĠyileĢtirmeler ve Güvenlik
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.
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.
Kullanıcı F
Kullanıcı A
Internet
Kullanıcı B
Kullanıcı E
Kullanıcı C
Kullanıcı D
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.
[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.
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.
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
64
sA sB
A B
IDB IDA
KAB
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
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
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.
66
8.5. KT-GVAS ‘da Sayısal Ġmza
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.
Uygulama, Anahtar Üretim Merkezi ve normal kullanıcılar için ayrı olmak üzere iki
ayrı modülden oluşmaktadı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.
68
8.6.2. Kullanıcı Modülü
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.
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.
70
Şekil 8.8 KT-GVAS Kullanıcı-Merkez Bağlantısı Ekranı
71
9. SONUÇLAR VE TARTIġMA
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.
Ö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.
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.
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.
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.
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
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.
K f ( K AB , R) (8.1)
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
[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
[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
[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”,
[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
[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Ġġ
80