Kriptografi – Kriptoyu Para Birimine Dönüştürmek
Bu makale, şifrelemenin temellerinden şifrelere kadar kripto para birimleri ve kriptografinin arkasındaki temel teknolojiyi araştırmaktadır.
Bu derinlemesine inceleme makalesinde, kripto paraların arkasındaki temel teknolojilerden biri olan kriptografi hakkında konuşuyor ve kriptografiye giriş olarak şifreleme, hash fonksiyonları ve şifrelerin temellerini ele alıyoruz.
Kriptografiye Giriş
Kriptografi, en basit ifadeyle, iletişimi gizli hale getirmektir. Buradaki ‘gizli’ ifadesi, tüm iletişimleri izleyebilen bir dinleyicinin varlığında bile, amaçlanan mesajın diğerlerinden gizli tutularak alıcıya ulaştırılabileceği anlamına gelmektedir.
Kriptografi, gizlilik için arzu edilen özellikleri elde etmek için genellikle matematiksel teknikler kullanır. Genellikle sıradan düz metnin, yalnızca hedeflenen alıcının çözebileceği bir metin olan şifreli metne dönüştürülmesi süreciyle ilişkilendirilir. Düz metni şifreli metne dönüştüren işlem şifreleme olarak bilinirken, şifreli metinden düz metne dönüştürme işlemi şifre çözme olarak adlandırılır. Şifreleme (veya şifre çözme), şifreleme veya şifre çözme gerçekleştirmek için bir algoritmadır – bir prosedür olarak izlenebilen bir dizi iyi tanımlanmış adım.
Kriptografi yeni bir şey değil, sadece kripto para birimleri için de değil. Bankacılık işlem şifreleri, e-posta hesap şifreleri ve e-ticaret işlemleri gibi bilgilerin korunması gereken günlük hayatta yaygın olarak kullanılmaktadır.
Blok zinciri ve kripto paralar kriptografiyi cüzdanlar, işlemler, güvenlik ve gizliliği koruyan protokoller için çeşitli şekillerde kullanır. Mesela:
- Bir işlemde kullanılan açık anahtarlı kriptografi
- Bitcoin madenciliği için Hashing
- Bloklarda işlem konumlandırma için Merkle Ağaçları
Neredeyse diyebiliriz ki kriptografiyi anlamıyorsanız, kripto para birimlerini de anlamıyorsunuz demektir. Daha iyi öğrenmek için kriptografi dünyasının derinliklerine dalalım.
Simetrik ve Asimetrik Şifreleme ve Hash Fonksiyonları
Kriptografik algoritmaların sınıflandırılması, şifreleme ve şifre çözme için kullanılan anahtar sayısına dayanmaktadır: simetrik şifreleme, asimetrik şifreleme ve hash fonksiyonları.
Her birinin birbiri için yeri doldurulamaz özel uygulamaları vardır. Örneğin, özel/açık anahtar çiftlerini oluşturmak için asimetrik şifreleme gerekirken, benzersiz dijital parmak izleri üretmek için hash fonksiyonlarına ihtiyaç vardır.
Simetrik Şifreleme
Simetrik şifreleme hem şifreleme hem de şifre çözme için tek bir anahtar kullanır. Mesajı gönderen, düz metni şifrelemek için anahtarı kullanır ve şifre metnini alıcıya gönderir, alıcı da mesajın şifresini çözmek ve düz metni kurtarmak için aynı anahtarı uygular. Simetrik anahtar sistemleri daha hızlı ve basittir (asimetrik anahtar sistemlerine kıyasla), ancak anahtar önceden bilinmiyorsa gönderici ve alıcı arasındaki anahtar değişimi sorununu çözmezler.
Simetrik kriptografi şemaları ayrıca blok şifreler ve akış şifreleri olarak ikiye ayrılır.
Blok şifreler
Blok şifreler girdiyi sabit boyutlu (örneğin 128 bit) bloklara ayırır ve blokların her biri gizli anahtarla çeşitli işlevler tarafından işlenir. Algoritma, blok uzunluğunu, anahtarı ve süreçte kullanılan işlevleri belirler.
Yaygın olarak kullanılan bazı blok şifreler şunlardır:
Veri Şifreleme Standardı (DES)
- Blok uzunluğu = 64 bit
- Anahtar uzunluğu = 56 bit
IBM’de oluşturulan DES, 1970’lerin başında en popüler blok simetrik şifrelerden biriydi ve en kapsamlı şekilde incelenen şifreleme algoritmalarından biridir. Ulusal Standartlar Bürosu (ABD) tarafından 1976 yılında federal bir standart olarak kabul edilmiş ve 1981 yılında özel sektör için Veri Şifreleme Algoritması olarak ANSI standartlarına dahil edilmiştir.
Yirmi birinci yüzyılın başında DES, temel olarak nispeten kısa gizli anahtar uzunluğu nedeniyle güvensiz kabul ediliyordu ve bu da onu kaba kuvvet saldırılarına karşı savunmasız hale getiriyordu.
Gelişmiş Şifreleme Standardı (AES)
- Blok uzunluğu = 128 bit
- Anahtar uzunluğu = 128, 192 veya 256 bit
Modern bir blok simetrik şifre olan AES, dünyadaki en popüler şifrelerden biridir. Vincent Rijmen ve Joan Daemen tarafından 1997 yılında geliştirilmiş ve daha sonra 2002 yılında Amerika Birleşik Devletleri’nde federal şifreleme standardı olarak onaylanmıştır.
AES sağlam ve güvenli bir şifre olarak kabul edilir. Yıllar boyunca, farklı AES uygulamalarına karşı çeşitli saldırılar olmuştur, ancak bunlar özel durumlarla ilgilidir ve AES algoritmasının kendisine yönelik bir tehdit olarak görülmemektedir.
Üçlü DES (3DES)
- Blok uzunluğu = 64 bit
- Anahtar uzunluğu = 56, 112 veya 168 bit
3DES şifresi, 1970’lerin başında icat edilen ve 56 bitlik bir anahtarla korunan DES şifrelemesinin çok zayıf olduğu ve o zamanın modern bilgisayarları kullanılarak kırılmasının kolay olduğu ortaya çıktığı için geliştirilmiştir.
Akış şifreleri
Akış şifreleri blok şifrelere göre daha esnektir, çünkü zamana göre değişen bir şifreleme dönüşümü kullanarak bir düz metin mesajının tek tek karakterlerini (genellikle ikili rakamlar) teker teker şifrelemek için tasarlanmıştır. Buna karşın, blok şifreler düz metin bloklarını aynı anda sabit bir şifreleme dönüşümü kullanarak şifreleme eğilimindedir.
Genel olarak, akış şifrelerindeki donanım blok şifrelerden daha hızlıdır. Akış şifreleri ayrıca arabelleğe alma sınırlı olduğunda veya karakterlerin alındıklarında ayrı ayrı işlenmesi gerektiğinde daha uygundur ve bazı durumlarda zorunludur (örneğin, bazı telekomünikasyon uygulamalarında). Hata yayılımı sınırlı olduğundan ya da hiç olmadığından, akış şifreleri iletim hatalarının yüksek olasılıkta olduğu durumlarda da avantajlı olabilir.
Bazı popüler akış şifreleri şunlardır:
RC4
- Anahtar uzunluğu = 2.048 bite kadar
RC4, popüler protokollerde yaygın olarak kullanılan bayt odaklı işlemlere sahip değişken anahtar boyutlu bir akış şifresidir. Örneğin, İnternet trafiğini korumak (TLS olarak bilinen Taşıma Katmanı Güvenliği) veya kablosuz ağları korumak (Kablolu Eşdeğer Gizlilik veya WEP) için kullanılır.
Tek Kullanımlık Ped (OTP)
- Anahtar uzunluğu = mesaj uzunluğu
One-Time Pad’in (OTP) arkasındaki teori, anahtarın en azından mesajla (düz metin) aynı uzunlukta olması ve gerçekten rastgele sayılardan oluşması gerektiğidir. Düz metnin her harfi OTP’den bir öğe ile ‘karıştırılır’. Bu, anahtar bilinmediğinde düz metinle hiçbir ilişkisi olmayan bir şifreli metinle sonuçlanır. Alıcı uçta, orijinal düz metni almak için aynı OTP kullanılır.
Salsa20
- Anahtar uzunluğu = 32 bayt
Salsa20, 2004’ten 2008’e kadar devam eden ve akış şifrelerinin geliştirilmesini teşvik etmesi beklenen eSTREAM projesine sunulan bir şifredir. İyi tasarlanmış ve verimli bir algoritma olarak kabul edilir. Salsa20 şifreleri ailesine yönelik bilinen ve etkili bir saldırı bulunmamaktadır.
Asimetrik Şifreleme
Asimetrik şifreleme, Açık Anahtar Şifreleme (PKC) olarak da bilinir. Şifreleme ve şifre çözme için iki farklı anahtar kullanır. Gizli tutulması gereken anahtara özel anahtar, gizli tutulmaması gereken anahtara ise açık anahtar adı verilir. Örneğin, A B’ye bir mesaj göndermek ve B’nin mesajı anlayabilecek tek kişi olmasını sağlamak istiyorsa, A mesajı açık anahtarı kullanarak şifreleyebilir, böylece yalnızca B özel anahtarı kullanarak mesajın şifresini çözebilir.
İlk olarak 1976 yılında Stanford Üniversitesi profesörü Martin Hellman ve yüksek lisans öğrencisi Whitfield Diffie tarafından kamuoyuna açıklanan asimetrik şifreleme, iki tarafın ortak bir gizli anahtarı paylaşmak zorunda kalmadan güvenli olmayan bir iletişim kanalı üzerinden güvenli iletişim kurabileceği iki anahtarlı bir şifreleme sistemi olarak tanımlanmaktadır.
Açık anahtar ve özel anahtar farklı olsa da matematiksel olarak ilişkilidirler. Ancak matematiksel ilişki yalnızca şifreleme ve şifre çözme sırasında kullanılabilir ve başkaları açık anahtarı bilseler bile özel anahtarı türetemezler.
Asimetrik kriptografi algoritmaları kripto para birimlerinde yaygın olarak kullanılmaktadır. Örneğin, cüzdan adresi bir açık anahtardan oluşturulur ve yalnızca özel anahtara sahip olanlar içindeki parayı kullanabilir.
Bazı popüler asimetrik şifreleme şemaları şunlardır:
RSA
Açık anahtar ve özel anahtar keyfi olarak seçilmez. Bunların belirli prosedürler aracılığıyla oluşturulması gerekir. Açık anahtar iki büyük tamsayıdan (e, n) ve özel anahtar iki büyük tamsayıdan (d, n) oluşur. Üç sayı e, d ve n, biraz daha fazla matematik gerektiren özel bir şekilde ilişkilidir:
Tüm İngilizce düz metinleri Arapça sayılara dönüştüren bir kodlayıcı kullandığınızı varsayalım. Örneğin, “Hey! Hey! Hey!”, “7!” olarak çevrilir. 7! 7!’ ve ‘bitconnnnnnect’ ‘83333331’ olarak çevrilir. Şimdi, Alice Bob’a ‘Merhaba’ mesajını (‘2’ olarak çevrilir) göndermek istiyor.
Alice’in mesajı Bob’a göndermesinin en kolay yöntemi Bob’a doğrudan ‘2’ demesidir. Ancak Alice ve Bob mesajlarının başkaları tarafından görülmesini istemezler. Neyse ki Bob RSA’yı biliyor. Bir açık/özel anahtar çifti oluşturmuş ve Alice’ten sağladığı açık anahtarı kullanarak ‘2’ mesajını kodlamasını istemiştir.
Alice daha sonra Bob’un açık anahtarını (5, 14) kullanarak ‘2’ mesajını şifreler ve şifrelenmiş mesaj ‘Sunucu Hatasını Çevir’ anlamına gelen ‘4’ olur. Bir dinleyici mesajlarını görse bile, neden ‘4’ gönderdiklerine dair hiçbir fikri olmayacaktır.
Bob ‘4’ün Alice’in gerçek mesajı olmadığını bilir. Daha sonra kimseye (Alice’e bile) söylemediği özel anahtarıyla mesajın şifresini çözer. Özel anahtar (11, 14)’tür ve bazı şifre çözme prosedürleri uygulayarak Bob gerçek mesajın ‘2’ olduğunu bulur.
Yukarıdaki sürecin nasıl işlediğini bir tabloda gösterelim:
Bob’un tarafında sadece şifrelenmiş ‘4’ mesajını alır. Ancak özel anahtarıyla şifre çözme işlemini uygulayarak gerçek mesaj olan ‘2’yi başarıyla kurtarmıştır.
Peki, açık anahtarı (5, 14) ve özel anahtarı (11, 14) nasıl elde ederiz?
Bu işleme RSA anahtar üretimi denir.
İlgilenenler için RSA şifrelemesine göz atın.
Eliptik Eğri Kriptografisi (ECC)
ECC, RSA’ya alternatif bir asimetrik şifreleme algoritmasıdır. Benzer şekilde, kullanıcıların bir açık/özel anahtar çifti oluşturmasına izin verir, ancak kullanılan algoritmalar/prosedürler RSA’dan farklıdır.
Örneğin, eliptik eğri için (aşağıya bakınız) formül y2 = x3 + ax + b’dir; burada a ve b eğrinin şeklini belirleyen katsayılardır.
Eğri üzerinde belirli bir nokta ile başlıyoruz. Daha sonra, yeni bir nokta bulmak için bir fonksiyon (nokta fonksiyonu olarak adlandırılır) kullanırız. Son noktamıza gelene kadar eğrinin etrafında zıplamak için nokta fonksiyonunu tekrarlıyoruz. Algoritma üzerinden yürüyelim:
Bu harika bir trapdoor fonksiyonudur çünkü başlangıç noktasının (A) konumu ve bitiş noktasına (E) ulaşmak için gereken atlama sayısı biliniyorsa, bitiş noktasını bulmak çok kolaydır. Öte yandan, yalnızca başlangıç ve bitiş noktalarının konumları biliniyorsa, oraya varmak için kaç atlama yapıldığını bulmak neredeyse imkansızdır. Bu örnekte, açık anahtar ve özel anahtarı şu şekilde tanımlayabiliriz:
- Açık Anahtar: Başlangıç noktası A, bitiş noktası E
- Özel Anahtar: A’dan E’ye atlama sayısı
Daha genel olmak gerekirse, belirli bir eliptik eğri için (aşağıda gösterildiği gibi), açık anahtar (P, G), burada P başlangıç noktası ve G bitiş noktasıdır (önceden tanımlanmış özel bir [constant] EC noktası) ve özel anahtar k’dır (k bir tam sayıdır ve P = k * G).
Diffie-Hellman Anahtar Değişim Algoritması
Diffie-Hellman algoritması, genel bir ağ üzerinden kriptografik anahtar alışverişi yaparken özel iletişim için kullanılabilecek ortak bir sır oluşturmak için kullanılır.
Geleneksel olarak, iki taraf arasındaki şifreli iletişim, güvenilir bir kurye tarafından taşınan kağıt anahtar listeleri gibi bazı güvenli fiziksel kanallar aracılığıyla anahtarların değiş tokuş edilmesini gerektiriyordu. Diffie-Hellman anahtar değişim yöntemi, birbirleri hakkında önceden bilgisi olmayan iki tarafın güvensiz bir kanal üzerinden ortaklaşa gizli bir anahtar oluşturmasına olanak tanır. Bu anahtar daha sonra bir simetrik anahtar şifresi (yukarıda tartışıldığı gibi) kullanarak sonraki iletişimleri şifrelemek için kullanılabilir.
Algoritmayı basitleştirmek için, bu şifreleme prosedürünü sunmak üzere aşağıdaki resmi kullanıyoruz. Lütfen başlangıçtaki P harfinin eliptik bir eğride rastgele seçildiğini ve G’nin P’nin ilkel bir kökü olduğunu unutmayın. a ve b’nin özel anahtarları rastgele seçilir.
Alice ve Bob artık bu anahtarı önceden bilmeden aralarındaki mesajı şifrelemek için aynı gizli anahtarı (3) kullanabilirler.
Hash Fonksiyonları
Mesaj özetleri ve tek yönlü şifreleme olarak da adlandırılan özet işlevleri, düz metni özet değeri (veya özet) adı verilen sabit uzunlukta bir metne sıkıştırır. Hash değerini düz metne geri döndürmek imkansızdır.
Bir hash fonksiyonu üç güvenlik özelliğini yerine getirmelidir:
1) Çarpışmaya Dayanıklı
Hash fonksiyonuna uygulandığında aynı çıktıya sahip olan iki farklı girdi dizesi bulmak hesaplama açısından mümkün değildir.
Şu şekilde ifade edilebilir:
H(x) = H(y) olduğu x ve y’yi bulmak zordur, ancak x y’ye eşit değildir.
Çok daha büyük bir t girdi uzayından (herhangi bir dizgi) sabit bir çıktı uzayına (2^256) geçtiğimiz için çarpışmalar olması gerektiğini lütfen unutmayın.
Uygulama: Mesaj Özeti olarak Hash. H(x) = H(y) olduğunu biliyorsak, x = y olduğunu varsaymak güvenlidir.
Örnek: Daha önce gördüğümüz bir dosyayı tanımak için hash’ini hatırlayın. Bu işe yarar çünkü hash küçüktür.
2) Gizli
H(x) verildiğinde, x’i bulmak mümkün değildir. Bu, x’in hashlenmiş versiyonu verildiğinde x’i bulamayacağımız şeklinde açıklanabilir.
Gizleme Özelliğinin Uygulanması: Bağlılık
Bu, bir değeri (bir sayı) alıp bir zarfın içine koyarak mühürlemenin ve bu zarfı herkesin görebileceği bir şekilde masanın üzerine koymanın dijital benzetmesidir; böylece zarfın içinde ne olduğu ve herkesten gizli olduğu taahhüt edilmiş olur. Daha sonra zarf açılabilir ve değer çıkarılabilir, ancak zarf mühürlüdür. Bu yüzden bir değere bağlı kalın ve onu daha sonra açıklayın.
Taahhüt algoritması iki şey yapar:
1. Bir mesaja bağlanır: İki değer döndürür – bir taahhüt ve bir anahtar. Taahhüt, masanın üzerine konan zarfla aynıdır; onu açmak için anahtar gereklidir.
2. Daha sonra, birisine orijinal mesajı açıklarız ve ona taahhüt ve anahtarı sağlayarak orijinal mesaja karşılık geldiğini doğrulamasına izin veririz.
3) Bulmaca Dostu
Birisi belirli bir hash fonksiyonunu hedeflemek istiyorsa, y’nin belirli bir değerini kazanın. Girdinin bir kısmı rastgele seçilirse, hash fonksiyonu değerini hedeflemek için başka bir değer bulmak zordur.
Hash fonksiyonunun bir y çıktısı verildiğinde, k rastgele bir dağılımdan seçilirse, k|x’in hash’i(xile birleştirilmiş k) y olacak şekilde bir x bulmak mümkün değildir: H(k|x) = y.
Popüler Hash Fonksiyonları
Mesaj Özeti (MD)
MD ailesi MD2, MD4, MD5 ve MD6 hash fonksiyonlarından oluşur. İnternet Standardı RFC 1321 olarak kabul edilmiştir ve 128 bitlik bir hash fonksiyonudur.
MD5 özetleri, aktarılan dosyaların bütünlüğü hakkında güvence sağlamak için yazılım dünyasında yaygın olarak kullanılmaktadır. Örneğin, dosya sunucuları genellikle dosyalar için önceden hesaplanmış bir MD5 sağlama toplamı sağlar, böylece bir kullanıcı indirilen dosyanın sağlama toplamını bununla karşılaştırabilir.
Güvenli Hash Fonksiyonu (SHA)
SHA ailesi dört SHA algoritmasından oluşur: SHA-0, SHA-1, SHA-2 ve SHA-3. Aynı aileden olmalarına rağmen, yapısal olarak farklıdırlar.
SHA-0, 1993 yılında ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından yayınlanmıştır. Birkaç zayıf yönü vardı ama çok popüler olmadı.
Daha sonra, 1995 yılında SHA-1, SHA-0’ın iddia edilen zayıflıklarını düzeltmek için tasarlanmıştır. SHA-1 algoritmasının tamamına karşı çarpışmalar, parçalanmış saldırı kullanılarak üretilebilir ve hash fonksiyonu kırılmış olarak kabul edilmelidir.
SHA-2 ailesinin dört SHA çeşidi daha vardır: Hash değerlerindeki bit sayısına bağlı olarak SHA-224, SHA-256, SHA-384 ve SHA-512. SHA-256 ve SHA-512 yaygın olarak kullanılır. SHA-512, SHA-256’dan daha güvenlidir ve 64 bit makinelerde genellikle SHA-256’dan daha hızlıdır.
Ekim 2012’de NIST, yeni SHA-3 standardı olarak Keccak algoritmasını seçti. Keccak, verimli performans ve saldırılara karşı iyi direnç gibi birçok avantaj sunar.
RIPEMD
RIPEMD, RIPEMD, RIPEMD-128 ve RIPEMD-160’ı içeren bir kriptografik hash fonksiyonları ailesidir. Bu algoritmanın 256 ve 320 bitlik versiyonları da mevcuttur. RIPEMD-160 geliştirilmiş bir sürümdür ve ailede en yaygın kullanılan sürümdür.
Son Sözler: Kriptografinin Pratikte Uygulanması
Kriptografinin şaşırtıcı derecede uzun bir geçmişi vardır, ancak gelecekte kullanım için görünüşte sonsuz olasılıkları olan bir geçmişi vardır. Bu süreç günümüz kripto para birimlerinin ve cüzdanlarının temelini oluşturmaktadır.
Farklı kripto cüzdan türleri hakkında daha fazla bilgi için, okuyun Kripto Cüzdan Nedir? Yeni Başlayanlar İçin Rehber.
Durum Tespiti ve Kendi Araştırmanızı Yapın
Bu makalede listelenen tüm örnekler yalnızca bilgilendirme amaçlıdır. Bu tür bilgileri veya diğer materyalleri yasal, vergi, yatırım, finans, siber güvenlik veya diğer tavsiyeler olarak yorumlamamalısınız. Burada yer alan hiçbir şey, Crypto.com tarafından herhangi bir madeni para, jeton veya diğer kripto varlıklarına yatırım yapmak, satın almak veya satmak için bir talep, öneri, onay veya teklif teşkil etmez. Kripto varlıkların alım satımından elde edilen getiriler, bulunduğunuz ülkede sermaye kazancı vergisi de dahil olmak üzere vergiye tabi olabilir. Crypto.com ürünlerinin veya özelliklerinin herhangi bir açıklaması yalnızca açıklama amaçlıdır ve bir onay, davet veya talep teşkil etmez.
Geçmiş performans, gelecekteki performansın garantisi veya öngörücüsü değildir. Kripto varlıkların değeri artabilir veya azalabilir ve satın alma fiyatınızın tamamını veya önemli bir miktarını kaybedebilirsiniz. Bir kripto varlığı değerlendirirken, mümkün olan en iyi kararı vermek için araştırma ve durum tespiti yapmanız çok önemlidir, çünkü herhangi bir satın alma işlemi tamamen sizin sorumluluğunuzda olacaktır.
Arkadaşlarınla Paylaş
Kripto yolculuğunuza başlamaya hazır mısınız?
Crypto.com ile bir hesap oluşturmak için
adım adım kılavuzunuzu alın
Gönder düğmesine tıklayarak bu belgeyi okuduğunuzu kabul etmiş olursunuz. Crypto.com Gizlilik Bildirimi kişisel verilerinizi nasıl kullandığımızı ve koruduğumuzu açıkladığımız yer.