Uluslararası Veri Şifreleme Algoritması
Uluslararası Veri Şifreleme Algoritması, (IDEA) ( İngilizce: International Data Encryption Algorithm ) 1991 yılında Xuejia Lai ve James Massey tarafından tasarlanmış bir blok şifreleme algoritmasıdır. Bilinen en güçlü algoritmalardandır.[1][2]
IDEA, şifrelenecek olan 64 bitlik metin ve 128 bitlik anahtarı kullanarak 64 bitlik şifrelenmiş metni oluşturur. IDEA algoritması çeşitli matematiksel işlemlerin karışımından oluşmaktadır. Bu işlemler çarpma, toplama ve xor gibi matematiksel işlemlerdir.
IDEA şifreleme şemasında kullanılan anahtarların üretimi ve şifreleme – deşifreleme işlemleri aşağıdaki gibi yapılır.
Anahtar Üretimi
128 bit uzunluğunda K = k1 ... k128 kullanılarak 52 adet 16 bit uzunluğunda Ki(r) alt anahtar bloklarını elde edebilmek için;
1.) K1(1) ... K6(1) , K1(2) ... K6(2) , ... , K1(8) ... K6(8) , K1(9) ... K4(9) alt anahtar grupları sıralanır.
2.) K 8 adet 16 bit uzunluğunda bloğa ayrılarak ilk 8 alt anahtar olarak tanımlanırlar.
3.) K dairesel olarak 25 bit sola kaydırılır, sonuç 8 bloğa bölünerek yeni 8 alt anahtar yaratılmış olur. 52 alt anahtarın tümü yaratılıncaya kadar bu işleme devam edilir.
Şifreleme Algoritması
M=m1 ... m64 mesajını yukarıdaki algoritmayı kullanarak oluşturulan K = k1 ... k128 anahtarı ile şifrelemek için;
1.) ( X1, X2, X3, X4 ) ← ( m1 ... m16 , m17 ... m32 , m33... m48, m49... m64 )
2.) for r=1 to 8 do
a.) X1 ← X1 ⊙ K1(r) , X4 ← X4⊙ K4(r) , X2 ← X2 ⊞ K2(r) , X3 ← X3 ⊞ K3(r) b.) t0 ← K5(r)⊙ (X1 ⊕ X3 ), t1← K6(r)⊙ (t0 ⊞ (X2 ⊕ X4 ) ), t2 ← t0 ⊞ t1 c.) X1 ← X1 ⊕ t1 , X4 ← X4⊕ t2 , a ← X2 ⊕ t2 , X2 ← X3⊕ t1 , X3 ← a
3.) Y1 ← X1 ⊙ K1(9) , Y4← X4 ⊙ K4(9) , Y2 ← X3 ⊞ K2(9) , Y3 ← X2 ⊞ K3(9)
4.) Y=( Y1 , Y2 , Y3 , Y4 ) şifrelenmiş metni elde edilir.
Deşifreleme Algoritması
Şifreleme de uygulanan işlemlerin ters işlemleri uygulanarak aynı algoritma kullanılarak şifre çözümleme işlemi yapılabilmektedir.
K1(r) şifreleme alt anahtarlarından;
r. devir | K'1(r) | K'2(r) | K'3(r) | K'4(r) | K'5(r) | K'6(r) |
r=1 | (K1(10-r))-1 | -K2(10-r) | -K3(10-r) | (K4(10-r))-1 | K5(9-r) | K6(9-r) |
2<=r<=8 | (K1(10-r))-1 | -K3(10-r) | -K2(10-r) | (K4(10-r))-1 | K5(9-r) | K6(9-r) |
r=9 | (K1(10-r))-1 | -K2(10-r) | -K3(10-r) | (K4(10-r))-1 | ------- | -------- |
yardımıyla elde edilecek olan K'i(r) alt anahtarları kullanılırsa deşifreleme işlemi gerçekleştirilmiş olur.
Avantajları
- Algoritmalar hızlıdır.
- Algoritmaların donanımla gerçeklenmesi kolaydır.
- "Gizlilik" güvenlik hizmetini yerine getirir.
Dezavantajları
- Ölçeklenebilir değil.
- Güvenli anahtar dağıtımı zor.
- "Bütünlük" ve "kimlik doğrulama" güvenlik hizmetlerini gerçeklemek zor.
Kaynakça
- ↑ "International Data Encryption Algorithm" (İngilizce). princeton.edu. 7 Nisan 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160407061249/http://www.princeton.edu/~achaney/tmve/wiki100k/docs/International_Data_Encryption_Algorithm.html. Erişim tarihi: 4 Mayıs 2013.
- ↑ "IDEA (International Data Encryption Algorithm)" (İngilizce). quadibloc. 4 Aralık 2015 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20151204223533/http://www.quadibloc.com:80/crypto/co040302.htm. Erişim tarihi: 4 Mayıs 2013.