1.3 Kümeler
Bir küme, herhangi iki elemandan eşsiz bir üçüncü elemanı türetmek için bir ikili işleme (binary operation) sahip bir takım küme elemanlarıdır. Eğer küme işlemini # işareti ile gösterecek olursak, yukarıda söylenen herhangi bir küme elemanı olan a ve b için, a#b tanımlıdır ve hatta bir kümenin elemanıdır. Ayrıca kümeler çağrışımsaldır yani a, b ve c kümenin herhangi birer elemanı olsun, a#(b#c) = (a#b)#c'dir. Kümenin herhangi bir elemanı olan a için bir adet birim (etkisiz) eleman (e) olmalıdır, a#e = e#a = a. Son olarak herhangi bir eleman olan a'nın bir tane tersi (a') olmalıdır, a#a' = a'#a = e.
Kümenin tüm elemanları olabilen a ve b için eğer a#b = b#a ise bu küme değişme özelliğine sahiptir. Aksi halde değişme özelliği yoktur. Şu noktaya dikkat çekelim, değişme özelliğine sahip olmayan bir küme için bazı durumlarda a#b = b#a eşitliği doğru olabilir - örneğin a ya da b birim eleman olursa.
Sınırlı sayıda eleman içeren kümeye sınırlı küme, aski durumda sınırsızdır denir.
Örnekler:
1. Tam sayılar (tüm sayılar, 0 ve negatif sayılar) adi toplama işlemiyle bir küme oluştursunlar. Birim eleman 0 olur ve a'nın tersi -a olur. Bu sınırsız ve değişebilen bir kümedir.
2. Pozitif rasyonel sayılar (tüm pozitif tam sayılar da dahil olmak üzere tüm pozitif kesirler) adi çarpma işlem olarak bir küme oluştursun. Birim eleman 1 sayısı ve r'nin tersi 1/r = r^-1. Bu da diğer bir sınırsız değişebilen kümedir.
3. Tam sayıların n ile modu, n > 0 herhangi bir tam sayı olmak üzere bir küme oluştursun. Bu küme genelde Z(n) (Çevirmenin yorumu: asal belgede n, Z'nin sağ altında gösterilmektedir, bu çeviride parantez içerisinde gösterilecektir.) şeklinde gösterilir. Elemanlar 0, 1, 2, ..., n-1 ve işlem toplamanın n ile bölümünden kalan şeklindedir:
Birim eleman 0 sayısıdır ve a'nın tersi n-a'dır (tersi kendisi olan 0 sayısı hariç).
4. Değişemeyen kümeye örnek olarak, 2'ye 2 tekil olmayan gerçek (reel) sayılardan (ya da rasyonel sayılardan) oluşan matrisler düşünelim, işlem matris çarpmasıdır:
Buradaki a, b, c ve d gerçek sayılardır (ya da rasyonel) ve ad-bc sıfır değildir. İşlem matris çarpmasıdır. Yukarıdaki matrisin tersi
ve birim elemanı
Bu bir sınırsız değişemeyen bir kümedir.
5. Ondalıklı sayıların bir bölümü sınırlı değişemez kümelere ilginç ve faydalı bir örnek olarak verilebilir: on elemanlı dihedral (Çevirmenin yorumu: kelime aslı gibidir, kısaca uçak kanatlarının yatay düzlemle yaptığı açıya denir, detaylı bilgi için bkz: [1] http://en.wikipedia.org/wiki/Dihedral_group, [2] http://tr.wikipedia.org/wiki/Dihedral) kümesi.
KANUN KÜME-1: Şifrecilerin gözde kümesi, tam sayıları n ile mod alandır, Z(n).
n = 10'a özel olarak, Z(10)'da toplama işlemi (x+y) mod 10 şeklinde tanımlanabilir, bu, 10'a böl ve kalanını al demektir. Tablo 1.3 nasıl olduğunu göstermektedir ve ayrıca 10 sayısı ile mod alınan tam sayıların toplama tablosu olarak da kullanılabilir.
1.4 Alanlar
Bir alan içerisinde bir çok yapıyı bulunduran bir nesnedir ki bu bölüm yalnızca bir özet niteliğindedir. Bir alan iki işleme sahiptir, bunları + ve * (adi toplama ve çarpma olmak zorunda olmamasına rağmen) olarak adlandıralım. +'yı kullanırsak, alanın tüm elemanları değişebilen bir küme kuracaktır. Bu kümenin birim elemanını 0 olarak ve a'nın tersini -a olarak gösterelim. *'yı kullanırsak, 0 hariç alanın tüm elemanları, birim elemanı 1 ile ve a'nın tersi a^-1 ile gösterilen başka bir değişebilen küme oluşturacaktır. (0 elemanının * işlemi altında tersi yoktur.) Ayrıca bir de dağılma özelliğine sahiptir, + ya da * ile bağlandığında: a*(b+c) = (a*b) + (a*c), a,b ve c tüm elemanlar için. Son olarak birşeyi hariç tutmalıyız, sıfıra bölünenler, bunlar sıfır üreten sıfır olamayan elemanlardır. Bu aşağıdaki fesih neteliğine eşdeğerdir:
eğer c sıfır değilse ve a*c = b*c ise a = b 'dir.
Örnekler:
1. Rasyonel sayıları (kesirler) Q olarak düşünelim, ya da gerçek sayıları R olarak, ya da karmaşık sayıları C olarak, bunlarda adi toplama ve çarpma işlemi kullanmak ( son durumda karmaşık sayılar dahil edilmiştir). Bunların tümü sınırsız alanlardır.
2. Tam sayıların p ile mod alındığını düşünelim, Z(p) olarak gösterilsin, p bir asal sayı olsun (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, ...). Bunu + kullanan bir küme olarak görelim (adi toplamanın ardından p'ye bölümünden kalandır). 0 olan elemanlar * altıda bulunmadığı bir küme oluşacaktır (p'ye bölümünden kalanın ardıdan yapılan adi çarpmadır). Burada birim eleman belirgin olarak 1'dir, ama sıfır olmayan a elemanının tersi açık değildir. Java'da tersi, (x*a)%p==1 olan bir x elemanı olmalıdır. Sayılar teorisinde genişletilmiş Öklit Algotirması olarak bilinen bir algoritma kullanılarak eşsiz bir x elemanı bulmak her zaman mümkündür. Bir sonraki bölümün bu başlığında, özet olarak: p'nin asal sayı olması ve a'nın sıfırdan farklı olması sebebiyle, p ve a'nın en büyük ortak bölenleri 1'dir. Şimdi genişletilmiş Öklit algoritması, x*a + y*p = 1 ya da x*a = 1 - y*p sağlayan x ve y sıradan tam sayılarını verecektir, ve bu bize eğer x*a'yı p'ye bölersen 1 kalanını alırsın demektedir, böylece bu x, a'nın tersi olur. ( Bir tam sayı olarak, x negatif olabilir, ve bu durumda Z(p)'nin bir elemanını alabilmesi için ona p eklenmelidir.)
KANUN ALAN-1: Şifrecilerin gözde alanı p'nin asal olduğu Z(p) ile gösterilen tamsayıların p ile modunu alandır.
Yukarıdaki alan p elemanlı olarak tektir. Diğer bir değişle, alan elemanlarının yeniden adlandırılmasıyla eşsizdir, yani alanın elemanları her zaman için bir başka işaret takımıyla gösterilebilir, fakat temel olarak aynıdır.
Ayrıca GF(p^n) şeklinde gösterilen, p^n'in elemanlarından herhangi birisi için n>1 geçerli olan eşsiz sınırlı bir alan daha vardır. Bilhassa şifrelemede p=2 özel durumu çok işe yarar. Bu durumda, n>1 olamak üzere 2^n adet eleman vardır. 2^8 = 256 durumu, örnek olarak, yeni Birleşmiş Milletler Gelişmiş Şifreleme Ölçünü'nünde (U.S. Advanced Encryption Standart - AES) kullanılmıştır. Bunu anlatmak Z(p) alanını anlatmaktan daha zordur. AES için çarma işlemi hakkındaki bölüm bu alanı daha detaylı anlatacaktır, fakat burada bazı özelliklerini özetlemek gerekirse: 256 tane elemanı vardır, 8-bitlik olası tüm katarları ifade eder. Bu alanda toplama bitsel özel veya (XOR) ya da yine bitsel olarak toplamanın mod 2 işlemiyle aynıdır. Sıfır elemanı 00000000'dır, ve birim eleman 00000001'dır. Şimdiye kadar iyi gittik, fakat çarma yapmak daha bir sorunlu: bir eleman, Z(p) alanında katsayılar içeren 7. dereceden bir polinomu ifade etmelidir (bir 0 ya da 1)ve bu polinomların özel bir çarpma hali kullanımalıdır. Ayrıntılar AES üzerine olan sonraki bölümde gelecektir.
KANUN ALAN-2: Şifrecilerin diğer bir gözde alanı GF(2^n)'dır.
cryptography etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
cryptography etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
19 Şubat 2011 Cumartesi
13 Ocak 2011 Perşembe
Şifrelemenin Kanunları - Bölüm 1
Şifrecilerin Gözdeleri
1.1 Özel Veya (XOR)
Özel veya olarak bilinen bu fonksiyon aynı zamanda xor olarak ya da bir daire içerisindeki artı işareti (+) olarak da gösterilebilir. a (+) b demek a ya da b fakat ikisi birden değil demektir. Matematikte normal veya (or) demek biri ya da diğeri veyahut ikisi birden demektir. Özel veya işlevi (function) C/C++/Java dillerinde mevcut olup şapka karakteri ^ ile ifade edilmektedir. (Dikkatli olun: şapka karakteri sık sık üstel ifadeler için kullanılır, fakat Java, C ve C++ dillerinde herhangi bir üstel operatör yoktur.) Java'da ayrıca özel veya mantıksal değişkenlerde de (boolean) kullanılabilmektedir.
KANUN XOR-1: Şifrecilerin gözde işlevi özel veyadır.
Özel veya şifrelemede devamlı olarak kullanılır. Bu işlev tek-seferlik şifrelemede, akış şifrelemesinde ve Gelişmiş Şifreleme Ölçünü (AES) ve bir çok yerde kullanılmaktadır.
Hatırlayalım, mantıksal sabit doğru (true) genellikle 1 olarak yanlış (false) ise 0 olarak yazılır. Özel veya toplama işlemi sonucunda mod 2 işlemini yapmakla aynıdır, yani sıradan bir toplama işlemini yaptıktan sonra sonucu 2 sayısına bölüp kalanı alma işlemidir. 0 ve 1 bit değerleri için aşağıdaki tabloda özel veya işlemi sonuçları verilmiştir.
Özel veya işlevinin bir çok ilginç özelliği vardır, a,b ve c bit değerlerini ya da dizilerini tutsun:
Yeni başlayan programcılar iki değişkenin değerini değiş tokuş yapmak için üçüncü bir geçici değişkene atama yaparak öğrenirler:
temp = a;
a = b;
b = temp;
Aynı sonucu xor işlevini kullanarak ek olarak üçüncü bir geçici alan ayırmadan gerçekleştirilebilir. a ve b değerlerinin bit dizileri olsun.
a = a xor b;
b = a xor b;
a = a xor b;
Özel veya işlevinin şifrelemede kullanımına örnek verecek olursak, xor işlevi sözde rastgele bit akışı olan ri ile şifrelenecek mesajımızın bitlerini içeren mi akışını alsın ve şifrelenmiş halinin ci akışı olarak çıkartsın ci = ri (+) mi. Şifrelenmiş veriyi çözümlemek için aynı sözde rastsal bit akışını (yani ri) ci'ye vererek mi akışını elde ederiz. ri (+) ci = ri (+) ri (+) mi = 0 (+) mi = mi, Şekil 1.1 (Figure 1.1) bu işlem gösterilmiştir.
KANUN XOR-2: Şifreciler özel veya işlevini çok sever çünkü ivedi bir şifreleme mekanizması sağlar.
1.2 Logaritma
Tanım olarak, y = logb(x) demek b^y = x (b üssü y eşittir x). Bir başka değişle: "y, b tabanında x'in logaritmasıdır" ya da "y, x'in taban b'deki logaritmasıdır" denir. Aynı zamanda logb(x) (yani y) ifadesinin b üssü şeklinde yazılarak x değeri elde edilebilir, b^(logb(x)) = x. Daha matematiksel bir ifadeyle logaritma, üssel işlevin (exponential) tersi bir işlevdir.
KANUN LOG-1: Şifrecilerin gözde logaritma işlevi 2 tabanında logaritmadır.
Şifrelemede logaritma 2 tabanındanın kullanılmasının bir sebebi de (çoğunlukla bilgisayar biliminde) bu alanda ikili (binary) sayı düzenine yoğunlaşılmış olmasıdır.
Öyle ise y = log2(x) demek 2^y=x demekle aynı ve logaritma 2 tabanında x'in 2 üssü şeklinde yazımından x'i elde ederiz. Şekillerle ifade edersek: eğer y = log2(x) ise o zaman x = 2^y = 2^(log2(x)). Öyle ise 2^10 = 1024 demek log2(1024)=10 demekle aynı. Fark ettiyseniz tüm y değerleri için 2^y>0 ve tersten gidersek log2(x) x<=0 olduğunda tanımsızdır.
Logaritmayı içeren bir kaç formül:
log2(ab) = log2(a) + log2(b), her a,b > 0
log2(a/b) = log2(a) - log2(b), her a,b > 0
log2(1/a) = log2(a^(-1)) = - log2(a), her a > 0
log2(a^r) = r log2(a), her a > 0, r
log2(a+b) = (Ups! Bunun için basit bir formül yok.)
Tablo 1.2 log2 için bir kaç örnek vermektedir.
Bazı hesap makineleri, Java gibi diller de dahil, doğrudan log2 işlevini desteklemiyorlar. Java 10 tabanından logaritmayı da desteklemiyor yalnızca e tabanında logaritmayı destekliyor ki buna "doğal" logaritma diyoruz. Logaritma 2 tabanında a ile logaritma e tabanında a çarpımının sonucu bir sabit olduğu için eğer "sihirli" sabiti biliyorsanuz bu sonucu hesaplamak çok kolay olacaktır. Formül şöyle:
log2(x) = loge(x) / loge(2) (matematik)
= Math.log(x)/Math.log(2.0); (Java)
Sihirli sabit: loge(2) = 0.69314 71805 59945 30941 72321, yada 1/loge(2) = 1.44269 50408 88963 40735 99246. (Benzer şekilde, log2(x) = log10(x)/log10(2) ve log10(2) = 0.30102999566398114.)
Yukarıdaki formülün ispatı şöyle:
2^y = x, ya da y = log2(x) -> her iki tarafında e tabanında logaritmasını alalım
loge(2^y) = loge(x)
y loge(2) = loge(x)
y = loge(x) / loge(2)
log2(x) = loge(x) / loge(2)
KANUN LOG-2: Bir tam sayının 2 tabanında logaritmasını almak, bize o sayıyı ikili düzende (binary) kaç tane bit ile ifade edebileceğimizi söyler.
Buna göre log2(10000) = 13.28771238, yani iki düzende bu sayıyı ifade etmek için 14 tane bit gereklidir. (Gerçektende, 10000(10) = 10011100010000(2).) İkinin tam katlarının özel bir durumu vardır: log2(1024) = 10 fakat bu sayıyı ikili düzende ifade etmek için 11 adet bit gerekmektedir. 10000000000(2).
Benzer şekilde, log10(x) bize onluk sistemde bu sayıyı ifade etmek için kaç tane raka kullanmamız gerektiğini söyleyecektir.
1.1 Özel Veya (XOR)
Özel veya olarak bilinen bu fonksiyon aynı zamanda xor olarak ya da bir daire içerisindeki artı işareti (+) olarak da gösterilebilir. a (+) b demek a ya da b fakat ikisi birden değil demektir. Matematikte normal veya (or) demek biri ya da diğeri veyahut ikisi birden demektir. Özel veya işlevi (function) C/C++/Java dillerinde mevcut olup şapka karakteri ^ ile ifade edilmektedir. (Dikkatli olun: şapka karakteri sık sık üstel ifadeler için kullanılır, fakat Java, C ve C++ dillerinde herhangi bir üstel operatör yoktur.) Java'da ayrıca özel veya mantıksal değişkenlerde de (boolean) kullanılabilmektedir.
KANUN XOR-1: Şifrecilerin gözde işlevi özel veyadır.
Özel veya şifrelemede devamlı olarak kullanılır. Bu işlev tek-seferlik şifrelemede, akış şifrelemesinde ve Gelişmiş Şifreleme Ölçünü (AES) ve bir çok yerde kullanılmaktadır.
Hatırlayalım, mantıksal sabit doğru (true) genellikle 1 olarak yanlış (false) ise 0 olarak yazılır. Özel veya toplama işlemi sonucunda mod 2 işlemini yapmakla aynıdır, yani sıradan bir toplama işlemini yaptıktan sonra sonucu 2 sayısına bölüp kalanı alma işlemidir. 0 ve 1 bit değerleri için aşağıdaki tabloda özel veya işlemi sonuçları verilmiştir.
Özel veya işlevinin bir çok ilginç özelliği vardır, a,b ve c bit değerlerini ya da dizilerini tutsun:
Yeni başlayan programcılar iki değişkenin değerini değiş tokuş yapmak için üçüncü bir geçici değişkene atama yaparak öğrenirler:
temp = a;
a = b;
b = temp;
Aynı sonucu xor işlevini kullanarak ek olarak üçüncü bir geçici alan ayırmadan gerçekleştirilebilir. a ve b değerlerinin bit dizileri olsun.
a = a xor b;
b = a xor b;
a = a xor b;
Özel veya işlevinin şifrelemede kullanımına örnek verecek olursak, xor işlevi sözde rastgele bit akışı olan ri ile şifrelenecek mesajımızın bitlerini içeren mi akışını alsın ve şifrelenmiş halinin ci akışı olarak çıkartsın ci = ri (+) mi. Şifrelenmiş veriyi çözümlemek için aynı sözde rastsal bit akışını (yani ri) ci'ye vererek mi akışını elde ederiz. ri (+) ci = ri (+) ri (+) mi = 0 (+) mi = mi, Şekil 1.1 (Figure 1.1) bu işlem gösterilmiştir.
KANUN XOR-2: Şifreciler özel veya işlevini çok sever çünkü ivedi bir şifreleme mekanizması sağlar.
1.2 Logaritma
Tanım olarak, y = logb(x) demek b^y = x (b üssü y eşittir x). Bir başka değişle: "y, b tabanında x'in logaritmasıdır" ya da "y, x'in taban b'deki logaritmasıdır" denir. Aynı zamanda logb(x) (yani y) ifadesinin b üssü şeklinde yazılarak x değeri elde edilebilir, b^(logb(x)) = x. Daha matematiksel bir ifadeyle logaritma, üssel işlevin (exponential) tersi bir işlevdir.
KANUN LOG-1: Şifrecilerin gözde logaritma işlevi 2 tabanında logaritmadır.
Şifrelemede logaritma 2 tabanındanın kullanılmasının bir sebebi de (çoğunlukla bilgisayar biliminde) bu alanda ikili (binary) sayı düzenine yoğunlaşılmış olmasıdır.
Öyle ise y = log2(x) demek 2^y=x demekle aynı ve logaritma 2 tabanında x'in 2 üssü şeklinde yazımından x'i elde ederiz. Şekillerle ifade edersek: eğer y = log2(x) ise o zaman x = 2^y = 2^(log2(x)). Öyle ise 2^10 = 1024 demek log2(1024)=10 demekle aynı. Fark ettiyseniz tüm y değerleri için 2^y>0 ve tersten gidersek log2(x) x<=0 olduğunda tanımsızdır.
Logaritmayı içeren bir kaç formül:
log2(ab) = log2(a) + log2(b), her a,b > 0
log2(a/b) = log2(a) - log2(b), her a,b > 0
log2(1/a) = log2(a^(-1)) = - log2(a), her a > 0
log2(a^r) = r log2(a), her a > 0, r
log2(a+b) = (Ups! Bunun için basit bir formül yok.)
Tablo 1.2 log2 için bir kaç örnek vermektedir.
Bazı hesap makineleri, Java gibi diller de dahil, doğrudan log2 işlevini desteklemiyorlar. Java 10 tabanından logaritmayı da desteklemiyor yalnızca e tabanında logaritmayı destekliyor ki buna "doğal" logaritma diyoruz. Logaritma 2 tabanında a ile logaritma e tabanında a çarpımının sonucu bir sabit olduğu için eğer "sihirli" sabiti biliyorsanuz bu sonucu hesaplamak çok kolay olacaktır. Formül şöyle:
log2(x) = loge(x) / loge(2) (matematik)
= Math.log(x)/Math.log(2.0); (Java)
Sihirli sabit: loge(2) = 0.69314 71805 59945 30941 72321, yada 1/loge(2) = 1.44269 50408 88963 40735 99246. (Benzer şekilde, log2(x) = log10(x)/log10(2) ve log10(2) = 0.30102999566398114.)
Yukarıdaki formülün ispatı şöyle:
2^y = x, ya da y = log2(x) -> her iki tarafında e tabanında logaritmasını alalım
loge(2^y) = loge(x)
y loge(2) = loge(x)
y = loge(x) / loge(2)
log2(x) = loge(x) / loge(2)
KANUN LOG-2: Bir tam sayının 2 tabanında logaritmasını almak, bize o sayıyı ikili düzende (binary) kaç tane bit ile ifade edebileceğimizi söyler.
Buna göre log2(10000) = 13.28771238, yani iki düzende bu sayıyı ifade etmek için 14 tane bit gereklidir. (Gerçektende, 10000(10) = 10011100010000(2).) İkinin tam katlarının özel bir durumu vardır: log2(1024) = 10 fakat bu sayıyı ikili düzende ifade etmek için 11 adet bit gerekmektedir. 10000000000(2).
Benzer şekilde, log10(x) bize onluk sistemde bu sayıyı ifade etmek için kaç tane raka kullanmamız gerektiğini söyleyecektir.
Etiketler:
cryptography
12 Ocak 2011 Çarşamba
The Laws of Cryptography
Hi, this is my first translation project in cryptography. I am very glad to say that I started to translate the masterpiece of Mr. Neal R. Wagner (http://www.cs.utsa.edu/~wagner/) who is Retired as Assoc. Prof. from UTSA ( The University of Texas at San Antonio - http://www.cs.utsa.edu/) which is called The Laws of Cryptography (http://www.cs.utsa.edu/~wagner/lawsbookcolor/laws.pdf) into Turkish. I asked him for the permission to translate his book into Turkish by a personal email conversation. It is an honor for me to do this important job. My purpose is making people who live in Turkey as an computer engineer paying attention to cryptography a little. Although, he emphasized on importance of English in cryptograpy, I would like to translate a part of the book. Because somebody has to trigger it. I hope I will succeed.
Thank you again Mr. Neal R. Wagner.
Merhaba, bu benim şifreleme alanındaki ilk çeviri projem. Şunu söylemekten çok mutluyum ki Texas Üniversitesinde görev almış emekli Profesör Sayın Neal R. Wagner'ın şaheseri diyebileceğimiz Şifrelemenin Kanunları isimli kitabını Türkçe'ye çevirmeye başladım. Kendisinden kişisel bir eposta görüşmesiyle kitabının Türkçe'ye çevirilme iznini istedim. Bu çeviriyi gerçekleştirmek benim için bir onurdur. Amacım Türkiye'de yaşayan bilgisayar mühendisi arkadaşlarımın ilgilisini biraz olsun şifreleme alanına çekebilmektir. Kendisinin bana şifrelemede İngizce'nin önemini vurgulamasına rağmen, kitabının bir kısmını çevirmek istiyorum. Çünkü birileri bu işi başlatmalı. Umarım başarabilirim.
Sayın Neal R. Wagner'a tekrar teşekkür ederim.
Not: Çevirileri ilerleme kaydettikçe bölüm bölüm girdi yapacağım. Kendilerinin de izniyle bazı kısımlarda kendi yorum ve eklemelerim olabilir.
Thank you again Mr. Neal R. Wagner.
Merhaba, bu benim şifreleme alanındaki ilk çeviri projem. Şunu söylemekten çok mutluyum ki Texas Üniversitesinde görev almış emekli Profesör Sayın Neal R. Wagner'ın şaheseri diyebileceğimiz Şifrelemenin Kanunları isimli kitabını Türkçe'ye çevirmeye başladım. Kendisinden kişisel bir eposta görüşmesiyle kitabının Türkçe'ye çevirilme iznini istedim. Bu çeviriyi gerçekleştirmek benim için bir onurdur. Amacım Türkiye'de yaşayan bilgisayar mühendisi arkadaşlarımın ilgilisini biraz olsun şifreleme alanına çekebilmektir. Kendisinin bana şifrelemede İngizce'nin önemini vurgulamasına rağmen, kitabının bir kısmını çevirmek istiyorum. Çünkü birileri bu işi başlatmalı. Umarım başarabilirim.
Sayın Neal R. Wagner'a tekrar teşekkür ederim.
Not: Çevirileri ilerleme kaydettikçe bölüm bölüm girdi yapacağım. Kendilerinin de izniyle bazı kısımlarda kendi yorum ve eklemelerim olabilir.
Etiketler:
cryptography
Kaydol:
Kayıtlar (Atom)