Kırılmaz denilen sistemlerin ardındaki o zarif ve tek denklem: \(y^2 = x^3 + ax + b\). Bu form, noktaları sadece bir uzayda konumlandırmakla kalmaz; onları sihirli bir şekilde birbirine bağlayan, kırılamaz bir geometrik kural seti (Grup Yasası) oluşturur. Geometrik simetrinin ve sonsuzluğun buluştuğu yere hoş geldiniz.
Eğri, sürekli \(\mathbb{R}\) düzleminde değil, asal sayı modülünde tanımlanan \(\mathbb{F}_p\) sonlu alanında çalışır. Bu geçiş, eğriyi pürüzsüz bir çizgiden çıkarıp tahmin edilemez bir "nokta bulutuna" dönüştürerek kriptografik güvenliği sağlar.
Bilgisayarların kayan nokta aritmetiğindeki yuvarlama hataları, kriptografik sistemin güvenliğini bozar. Modüler aritmetik, tüm işlemleri deterministik ve hatasız bir yapıya hapsederek ECC protokollerinin tutarlılığını garanti eder.
Denklemdeki a ve b sabitleri, eğrinin genel yapısını, düğüm noktalarını ve karakteristik şeklini belirler. Bu parametreler, NIST, SECG ve Brainpool gibi küresel standartlarda eğri kimliğini tanımlar.
Eliptik Eğrilerin Geometrik Anatomisi
Modern kriptografinin—özellikle devasa blokzincir mimarilerinin, dijital imza altyapılarının ve internetin güvenliğini sağlayan kırılması pratik olarak imkansız TLS bağlantılarının—kalbini oluşturan eliptik eğriler, salt sayılardan ibaret olmayan, çok boyutlu uzaylarda tanımlanan olağanüstü zarif cebirsel geometrilerdir. Bu pürüzsüz eğriler, sadece analitik düzlemde görsel olarak büyüleyici bir simetri sunmakla kalmaz; asıl güçlerini, üzerlerindeki koordinat noktalarında gerçekleştirilen ve geleneksel aritmetikten tamamen farklı işleyen geometrik toplama ve skaler çarpım işlemleriyle gösterirler. Bu benzersiz işlemler silsilesi, dışarıdan gelebilecek her türlü analitik saldırıya karşı koyabilen, tersine mühendisliğe (geriye dönük hesaplamaya) kapalı ve şifreleme algoritmaları için kusursuz bir soyut grup yapısı (abstract group structure) inşa etmemize olanak tanır.
Kriptografi dünyasında bu karmaşık geometrik yapıları dijital sistemlere, mikroişlemcilere ve matematiksel protokollere güvenle entegre edebilmek için, karmaşadan arındırılmış evrensel bir denkleme ihtiyaç duyulur. Dünya çapındaki tüm şifreleme standartlarında (NIST, SECG, Brainpool) eliptik eğrileri ifade etmek, analiz etmek ve donanım seviyesinde işlem yapmak için kullanılan en temel ve algoritmik olarak en sadeleştirilmiş cebirsel dil, literatürde Kısa Weierstrass Formu (Short Weierstrass Form) olarak adlandırılan o meşhur ve kusursuz denkleme dayanır. Bu form, eğrinin doğasındaki tüm topolojik karmaşıklığı sadece iki sabit parametreye indirgeyerek, modern sistemler üzerinde muazzam bir hesaplama kolaylığı ve küresel bir standardizasyon sağlar:
Bu denklem, eliptik eğrilerin standart kalıbıdır. Tıpkı bir çemberin \(x^2 + y^2 = r^2\) formülü olduğu gibi, eliptik eğriler de bu kalıpla çizilir. "a" ve "b" sayılarını değiştirerek eğrinin şeklini istediğimiz gibi ayarlayabiliriz.
Bu denklemdeki \(a\) ve \(b\) katsayıları, eğrinin genel yapısını, "düğüm" (node) noktalarını ve karakteristik şeklini doğrudan belirleyen çok kritik sabitlerdir. Geleneksel matematikte bu değerler reel sayılar (\(\mathbb{R}\)) düzleminde çizilse de, şifreleme bilimi gereği bu sabitler ve denklemdeki tüm \((x, y)\) koordinat çiftleri her zaman sınırları belirlenmiş sonlu bir asal alan (\(\mathbb{F}_p\)) içerisinden seçilir.
Reel Uzay (\mathbb{R}) ve Sonlu Alanlar (\mathbb{F}_p) Arasındaki Fark
Matematiksel bir eliptik eğri yapısını, klasik analizdeki reel sayılar kümesi (\mathbb{R}) üzerinde görselleştirdiğimizde, karşımıza x-eksenine göre mutlak bir simetri arz eden, sonsuz noktadan oluşan ve herhangi bir kırılma içermeyen pürüzsüz, sürekli bir eğri grafiği çıkar. Bu sezgisel ve görsel grafik düzlemi üzerinde gerçekleştirilen nokta toplama işlemi, geometrik mantıkla "teğet-kesen yöntemi" (chord-and-tangent method) olarak adlandırılan zarif bir prensibe dayanır: İki noktayı birleştiren kesen doğrunun veya tek bir noktadan çizilen teğetin eğriyi kestiği üçüncü noktanın x-eksenine göre yansımaları, grubun cebirsel yapısını tanımlar.
Ancak modern bilişim sistemleri ve kriptografik protokoller, reel sayıların sunduğu o sonsuz hassasiyeti ve sürekliliği doğrudan işleyebilecek mimaride değildir. Bilgisayarlar, doğaları gereği sonlu bit derinliğine sahip donanımlardır ve reel sayıların virgüllü/ondalıklı yapısını işlerken ortaya çıkan yuvarlama (rounding) hataları ile kayan nokta aritmetiği (floating-point arithmetic), kriptografik sistemin deterministik yapısını tamamen bozarak güvenlik açıklarına kapı aralar. İşte tam bu noktada; kriptografik güvenliği sağlamak için eliptik eğriler, reel sayılar dünyasından koparılarak belirli bir asal sayı modülünde tanımlanan Sonlu Alan (\mathbb{F}_p) üzerine taşınır. Bu geçiş, eğriyi sürekli ve "kaygan" bir geometrik çizgiden çıkarıp, asal sayı modülündeki ayrık koordinat noktalarından oluşan, tahmin edilemez bir "nokta bulutuna" dönüştürür. Eğri denklemi bu sonlu alana aktarıldığında, bildiğimiz pürüzsüz form yerini kriptografik olarak güvenli, modüler bir forma bırakır:
Bu, önceki denklemin şifreleme (kriptografi) için uyarlanmış halidir. "mod p" ifadesi, işlemin sadece belirli bir sayı aralığında (saat kadranı gibi) dönüp durduğunu gösterir. Sürekli bir çizgi yerine sonsuz bir nokta bulutu oluşturur ama cebir kuralları aynı şekilde işlemeye devam eder.
Burada koordinatlar sürekli çizgiler oluşturmak yerine, \(\{0, 1, ..., p-1\}\) kümesi içerisinden seçilen ve denklemi sağlayan ayrık (diskret) tam sayı noktalarından oluşan bir bulut grafiği oluşturur. Fiziksel bir çizgi olmamasına rağmen, reel sayılardaki tüm cebirsel grup kuralları, teğet eğimleri ve aritmetik bağıntılar mod p dünyasında da kusursuz bir şekilde geçerliliğini korur.
Reel sayılarda çizilen bir eliptik eğriyi, tahtaya tebeşirle çizdiğiniz kesintisiz, pürüzsüz bir çizgi (sürekli) olarak düşünebilirsiniz. Parmağınızla bu çizgi üzerinde hiç kopmadan ilerleyebilirsiniz. Matematikteki "Teğet" veya "Kesen" doğrularını çizmek bu yüzden çok kolaydır.
Ancak kriptografideki Sonlu Alan (Mod p) dünyasına geçtiğimizde, o pürüzsüz çizgi adeta binlerce görünmez minik tebeşir tozuna parçalanıp ekrana rastgele saçılmış gibidir. Gözle baktığınızda ortada bir çizgi göremezsiniz; sadece ekranda dağınık duran kaotik bir "Nokta Bulutu" vardır. Bilgisayarlar bu parça parça noktaları tek tek saymayı (ayrık matematik) kusursuz yaparlar ama sonsuz pürüzsüzlükteki bir çizgiyi yuvarlama hatası yapmadan işleyemezler. İşte Bitcoin veya Ethereum şifrelemelerinin kırılmazlığı da, dışarıdan tamamen kaotik görünen bu "tebeşir tozu" bulutunun içinde aslında mükemmel bir matematiksel düzen (Grup Kuralları) saklamasından gelir!
Kullanım Kılavuzu: Morphing Curve ve Diskriminant
Bu simülasyon, Weierstrass eğrisinin \(y^2 = x^3 + ax + b\) formülünü görselleştirir, diskriminant güvenliğini izler ve parametre değişimine göre farklı tepki profilleri uygular.
Parametre Kontrolü
a ve b slider'ları: Eğrinin şeklini değiştirin. Diskriminant \(\Delta = 4a^3 + 27b^2\) değerini gerçek zamanlı izleyin; denklem kutusu parametre değişince kısa bir pulse animasyonu alır.
Durum göstergesi: \(\Delta = 0\) olduğunda kırmızı pulse nokta ile Tekillik Tespit Edildi; \(\Delta \neq 0\) olduğunda cyan nokta ile Kriptografik Olarak Güvenli. Sol üstteki rozet alanı gösterir: ℝ (sürekli) veya F97 (ayrık).
Preset Eğriler ve Tepki Profilleri
Bitcoin (secp256k1): a=0, b=7 — altın tonlu standard profil. Bölünmüş Eğri: a=-10, b=5 — mor/cyan çift bileşenli split profil. Tehlikeli Düğüm: a=-3, b=2 — kırmızı parçacık kaosu, tekillik halkası ve kırmızı vignette ile singular profil.
Önerilen: Bitcoin preset ile başlayın, ardından Tehlikeli Düğüm ile kriz senaryosunu test edin. Aktif preset panelde vurgulanır; diğer parametrelerde varsayılan safe profil devreye girer.
Ayrık Alan Geçişi ve Kamera
Asal Alana Parçala (Mod 97): Sürekli \(\mathbb{R}\) alanından ayrık \(\mathbb{F}_{97}\) alanına geçiş. 2500 parçacık nokta bulutuna dönüşür; tepki profili korunur (renk ve bloom buna göre güncellenir).
Kamera: OrbitControls ile döndürün. Sağ üstteki ◎ Merkezle butonu kamerayı varsayılan konuma döndürür. Discrete modda noktalar hafifçe yüzer; tekillik modunda dönüş hızı artar.
Tekil Olmama (Non-Singularity) Şartı ve Diskriminant
Bir eliptik eğri üzerinde tutarlı, öngörülebilir ve güvenli bir "Grup Yasası" (Group Law) işleminin tanımlanabilmesi, ayrıca eğri üzerindeki her bir noktada her zaman benzersiz ve tek bir teğet doğrusunun çizilebilmesi için, eğrinin matematiksel olarak tekil olmaması (non-singular) şarttır. Geometrik bir perspektiften baktığımızda "tekil olmama" durumu, eğrinin kendi üzerine katlanıp kendini kesmemesi, bir düğüm (node) oluşturmaması ve en önemlisi hiçbir noktasında matematiksel türevin tanımlanamayacağı "sivri bir köşe" veya "cusp" barındırmaması anlamına gelir. Eğer bir eğri tekil bir noktaya sahip olsaydı, o noktada grup yasası aksiyomları çöker ve kriptografik olarak güvenli bir matematiksel yapı inşa etmek imkansız hale gelirdi; çünkü tekil noktalar, ayrık logaritma problemini doğrusal veya çok daha basit fonksiyonlara indirgeyerek sistemin tamamen kırılmasına sebep olur.
Kriptografik uygulamalarda kullanılan asal sayı karakteristiği 3'ten büyük olan tüm alanlarda (ki günümüzdeki standart kriptografik sistemlerin neredeyse tamamını kapsar), bir eğrinin bu kusursuz pürüzsüzlüğe sahip olup olmadığı, eğri denklemindeki katsayılar üzerinden hesaplanan Diskriminant (\Delta) değeri ile belirlenir. Diskriminantın matematiksel olarak sıfırdan farklı (\Delta \neq 0) olması, eğrinin herhangi bir "çökme" yaşamadan, kriptografik işlemler için ihtiyaç duyulan o mükemmel ve pürüzsüz yapısını koruduğunun kesin bir kanıtıdır:
Bu formül bir kalite kontrol testidir. Seçtiğimiz "a" ve "b" sayılarının bu işlemi sıfır yapmaması gerekir. Eğer sıfır yaparsa, eğride bir "düğüm" veya "sivri uç" oluşur ve bu hatalı yolları kullanarak bilgisayar korsanları şifremizi kırabilir.
Eliptik eğri üzerindeki noktaları birbirine bağlayan "Toplama" işlemini, bir arabanın eğri şeklindeki bir otoyolda ilerlemesi gibi düşünün. Eğer otoyol pürüzsüzse, durduğunuz herhangi bir noktadan arabanızın yönünü (teğetini) matematiksel olarak kusursuz bir şekilde belirleyebilirsiniz.
Ancak eğer yol kendi üzerine katlanıp bir "düğüm (node)" oluşturursa veya sivri bir "köşe (cusp)" yaparsa, tam o bozuk noktaya geldiğinizde arabanın hangi yöne (hangi teğete) gideceği belirsizleşir. İşte Diskriminant (Δ) formülü, bu otoyolun başından sonuna kadar kusursuz olup olmadığını baştan denetleyen bir matematiksel müfettiştir. Eğer formülün sonucu Δ = 0 çıkarsa, otoyolda ölümcül bir çökme (düğüm veya köşe) var demektir ve üzerine kurulacak tüm kriptografik güvenlik sistemi çöker!
Eğer \(\Delta = 0\) olursa, eğri üzerinde türevin her iki bileşeninin de sıfır olduğu ve dolayısıyla teğetin tanımlanamadığı tekil bir nokta oluşur. Kriptografide bu durum iki farklı geometrik felakete yol açar:
| Tekillik Tipi | Cebirsel Durum | Geometrik Anlamı | Teğet Davranışı |
|---|---|---|---|
| Sivri Uç (Cusp) | \(a = 0\), \(b = 0\) | Eğri denklemi \(y^2 = x^3\) haline gelir. \((0,0)\) noktasında eğri keskin bir dönüş yaparak sivri bir uç oluşturur. | Tekil noktadaki türev sıfır olduğu için teğet doğrusunun eğimi tanımsızdır. |
| Düğüm / Kesişim (Node) | \(4a^3 + 27b^2 = 0\) (\(a, b \neq 0\)) | Eğri kendi kendisiyle kesişir. Örneğin \(y^2 = x^3 - 3x + 2\) denklemi \((1,0)\) noktasında kendi üzerinden geçer. | Kesişim noktasında eğrinin iki farklı dalı üst üste geldiği için bu noktadan geçen iki farklı teğet çizilebilir, benzersizlik kaybolur. |
Kriptografik Güvenlik Tehdidi: Tekil Eğri İzomorfizması
Kriptografik protokollerin temelini oluşturan eliptik eğriler, doğası gereği "tekil olmayan" (non-singular) yapılar üzerine inşa edilmelidir. Diskriminantı sıfır olan tekil eğriler, kriptografik güvenlik standartları tarafından kesinlikle yasaklanmıştır. Bu yasaklamanın temelinde, tekil bir eğrinin tekil olmayan noktalarının oluşturduğu grubun (\(E_{ns}\)), güncel hesaplama yöntemleriyle kolaylıkla çözülebilen, kriptografik açıdan "zayıf" veya "basit" gruplara izomorfik (matematiksel olarak eşyapılı) olması yatmaktadır. Bu durum, eliptik eğri ayrık logaritma probleminin (ECDLP) zorluğunu ortadan kaldırarak sistemi savunmasız hale getirir:
1. Cusp (Sivri Uç) İzomorfizması: Geometrik olarak bir "cusp" veya sivri uç barındıran tekil bir eğri üzerinde işlem yapıldığında, bu eğrinin tekil olmayan noktalar kümesi, tanımlı olduğu sonlu alanın (finite field) toplamsal grubuna izomorf hale gelir. Bu izomorfizma, eliptik eğri üzerindeki karmaşık bir işlemi, çok daha basit olan sonlu alanlardaki toplama işlemine indirgeyerek, ayrık logaritma problemini trivial (önemsiz) bir seviyeye düşürür:
Bu karmaşık semboller şu anlama gelir: Eğriniz hatalıysa (sivri uç varsa), o aşılmaz sanılan karmaşık matematik sistemi bir anda ilkokulda öğrendiğimiz basit toplama işlemine dönüşür. Kırılmaz kasanız artık oyuncak bir kilit gibidir.
Toplamsal grupta grup işlemi bildiğimiz modüler toplamadır: \(P + Q \equiv (x_1 + x_2) \pmod p\). Bu durumda Ayrık Logaritma Problemi (DLP) olan \(Q = k \cdot P\) eşitliği, basit bir modüler bölme/ters alma işlemine indirgenir:
Bilgisayar korsanı gizli şifrenizi (k) bulmak için milyarlarca deneme yapmak yerine, sadece bilinen iki sayıyı birbirine bölerek (bölme/ters alma) saniyeler içinde şifrenizi bulur.
Genişletilmiş Öklid Algoritması kullanılarak bu işlem mikrosaniyeler içinde çözülebilir ve tüm gizli anahtarlar anında ifşa olur.
İzomorfizmayı matematiksel bir "kılık değiştirme veya kısayol" gibi düşünebilirsiniz. Normal ve pürüzsüz bir eliptik eğride, Kriptografik Kasa'nın şifresi trilyonlarca karmakarışık çarktan oluşur ve en güçlü bilgisayarların bile bunu kırması milyarlarca yıl sürer.
Ancak eğrinizde bir "sivri uç (cusp)" hatası varsa, bu karmaşık ve aşılmaz çark sistemi sihirli bir şekilde ilkokulda öğrendiğimiz "Toplama ve Bölme" işlemine kılık değiştirir! Korsan, o karmaşık çarklarla uğraşmak yerine kasanın arkasındaki bu gizli paneli (izomorfizma) keşfeder ve sadece iki sayıyı birbirine bölerek (bölme işlemiyle) mikrosaniyeler içinde kasanızı açar. İşte bu yüzden tekil eğriler, kırılamaz sandığınız çelik bir kasanın arkasına kartondan bir kapı yapmak gibidir.
2. Node (Düğüm) İzomorfizması: Düğüme sahip bir eğrinin noktaları ise tanımlı olduğu sonlu alanın (veya kuadratik genişletmesinin) çarpımsal grubuna izomorftur:
Eğriniz hatalıysa (düğüm yapıyorsa), sistem bu kez çarpma tablosu mantığına geriler. Düz toplama kadar kolay olmasa da, güçlü bilgisayarların kullandığı "harita algoritmaları" (Index Calculus) sayesinde bu da kısa sürede kırılır.
Çarpımsal grupta Ayrık Logaritma Problemi, Dizin Hesabı (Index Calculus) adı verilen gelişmiş algoritmalarla alt-üstel (sub-exponential) zaman karmaşıklığında çözülebilir. Oysa eliptik eğrilerin güvenli olmasının temel nedeni, genel durumlarda DLP'nin sadece üstel (exponential) zaman alan Pollard's Rho gibi zor algoritmalarla çözülebilmesidir.
Eliptik eğri şifrelemesi, bir korsanı zifiri karanlık devasa bir labirentin içine bırakmak (Üstel Zaman - Pollard's Rho) gibidir. Korsan çıkışı bulmak için kelimenin tam anlamıyla labirentteki hemen hemen her bir duvarı eliyle yoklayarak denemek zorundadır. Bu yüzden standart eğriler tamamen kırılamaz kabul edilir.
Ancak eğrinizde bir "düğüm (node)" varsa ve bu yapı çarpımsal bir gruba kılık değiştirmişse (izomorfizma), korsan karanlıkta el yordamıyla aramak yerine matematiğin ona sunduğu güçlü bir "Harita (Index Calculus - Dizin Hesabı)" elde eder! Bu harita ona labirentin devasa bir kısmını bir anda atlama imkanı verir (Alt-Üstel Zaman). Sivri Uç (Cusp) hatasındaki gibi bir saniyede kırılmasa da, milyarlarca yıl sürmesi gereken kırma işlemi, modern bilgisayarlarla aylar veya haftalar içinde çözülebilir hale gelir!
Standardize Edilmiş Popüler Weierstrass Eğrileri
Modern kriptografik altyapılar, eliptik eğri şifrelemesinin (ECC) güvenliğini sağlamak adına titizlikle seçilmiş ve dünya çapındaki güvenlik otoriteleri tarafından onaylanmış eğri parametrelerine dayanır. Bu standart eğriler; diskriminantın sıfırdan farklı olması, gömme derecesinin yeterince yüksek tutulması ve MOV (Menezes-Okamoto-Vanstone), Frey-Rück (FR) saldırıları veya anomali açıkları gibi kriptanalitik zayıflıklara karşı dirençli olmaları için optimize edilmiştir. Kriptografik uygulamalarda kullanılan bu Weierstrass eğrileri, işlemci verimliliği ile yüksek güvenlik seviyeleri arasında ideal bir denge kurar.
| Eğri Standartı | a Değeri | b Değeri | Ana Ekosistem | Kriptografik Karakteristik |
|---|---|---|---|---|
| secp256k1 | \(0\) | \(7\) | Bitcoin, Ethereum, Web3 | Satoshi Nakamoto'nun seçimi. Koblitz yapısı sayesinde imza doğrulama işlemleri (ECDSA) muazzam hızlıdır. |
| secp256r1 (P-256) | \(-3\) | \(41058360...\) | Apple, Google, TLS (Web) | NIST ve NSA tarafından belirlenmiştir. \(b\) değeri rastgele bir tohumdan türetildiği için karmaşıktır. |
| BLS12-381 | \(0\) | \(4\) | ZK-Rollups, Ethereum 2.0 | \(F_{p^{12}}\) gibi devasa alan genişletmelerine ve Sıfır Bilgi İspatları (ZK-SNARKs) için eşleştirmelere (Pairings) özel tasarlanmıştır. |
| Parametre Felsefesi | a=0 (Özel Yapılı Eğriler) | a=-3 (Rastgele Eğriler) |
|---|---|---|
| Denklem Formu | \(y^2 = x^3 + b\) | \(y^2 = x^3 - 3x + b\) |
| Matematiksel Amacı | Endomorfizm adı verilen matematiksel kestirmelere izin verir. Eğri üzerindeki nokta çarpımları (skaler çarpım) %30'a kadar daha hızlı hesaplanır. | Jacobian koordinat sistemlerinde, nokta toplama algoritmalarının işlem maliyetini ciddi oranda düşürür. |
| Güven Tartışması | Parametreler (\(0\) ve \(7\)) o kadar basittir ki, arka kapı (backdoor) yerleştirilmesi imkansızdır. Saf matematiktir. | \(b\) değerini NSA ürettiği için kriptografi camiasında "Acaba bizim bilmediğimiz bir arka kapı mı var?" şüphesi her zaman yaşanmıştır. |
| Eğri Adı | Formülü | Alan Tanımı (\(p\)) | Güvenlik Seviyesi | Ana Kullanım Alanı |
|---|---|---|---|---|
| secp256k1 | \(y^2 = x^3 + 7\) (\(a=0, b=7\)) | \(2^{256} - 2^{32} - 977\) | 128-bit | Bitcoin, Ethereum ve EVM tabanlı tüm merkeziyetsiz blokzincir ekosistemleri. |
| NIST P-256 | \(y^2 = x^3 - 3x + b\) | \(2^{256} - 2^{224} + 2^{192} + 2^{96} - 1\) | 128-bit | TLS/SSL protokolleri, Apple Secure Enclave, Android Keystore ve e-Devlet kimlik doğrulama sistemleri. |
| secp384r1 | \(y^2 = x^3 - 3x + b\) | \(2^{384} - 2^{128} - 2^{96} + 2^{32} - 1\) | 192-bit | Hükümet düzeyinde yüksek güvenlikli askeri, diplomatik ve gizli veri şifreleme altyapıları. |
Rust ile Weierstrass Eğrisi ve Nokta Doğrulama
Kriptografik uygulamaların güvenilirliği, kullanılan matematiksel parametrelerin doğruluğuna ve uygulanan algoritmaların hata payı içermemesine bağlıdır. Rust dili, sahip olduğu güçlü tip güvenliği (type safety) ve bellek yönetimi özellikleriyle, eliptik eğri hesaplamaları ve kriptografik protokollere entegrasyon için ideal bir altyapı sunar. Aşağıdaki kod bloğu; Weierstrass formundaki eliptik eğri parametrelerini tanımlamak, eğrinin tekillik durumunu (diskriminant kontrolü aracılığıyla) analiz ederek "güvenli eğri" kriterlerini doğrulamak ve koordinat düzlemindeki noktaların eğri denklemi (\(y^2 = x^3 + ax + b\)) üzerinde kesin olarak yer alıp almadığını teyit etmek amacıyla tasarlanmış, genişletilebilir ve modüler bir yapıyı içermektedir:
pow() doğrudan tamsayı üssü
almaktadır. Küçük p=97 değeri için güvenlidir. Gerçek 256-bit asal sayılarla
çalışırken modüler üs alma (mod_pow) veya num-bigint kullanılmalıdır.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Point {
Coordinate(u128, u128),
Infinity,
}
#[derive(Debug)]
pub struct WeierstrassCurve {
pub a: u128,
pub b: u128,
pub p: u128, // Asal alan p parametresi
}
impl WeierstrassCurve {
/// Yeni bir Weierstrass eğrisi tanımlar ve parametrelerin tekillik durumunu doğrular.
pub fn new(a: u128, b: u128, p: u128) -> Result<Self, &'static str> {
// Diskriminant kontrolü: 4a³ + 27b² != 0 (mod p)
let a_cubed = a.pow(3) % p;
let b_squared = b.pow(2) % p;
let term1 = (4 * a_cubed) % p;
let term2 = (27 * b_squared) % p;
let discriminant = (term1 + term2) % p;
if discriminant == 0 {
return Err("Hata: Eğri tekildir (4a³ + 27b² = 0 mod p). Güvenli değildir!");
}
Ok(Self { a, b, p })
}
/// Bir noktanın bu eğri üzerinde olup olmadığını kontrol eder.
pub fn is_on_curve(&self, point: &Point) -> bool {
match point {
Point::Infinity => true, // Sonsuzdaki nokta her eğri üzerindedir
Point::Coordinate(x, y) => {
let lhs = (y * y) % self.p;
let x_cubed = x.pow(3) % self.p;
let ax = (self.a * x) % self.p;
let rhs = (x_cubed + ax + self.b) % self.p;
lhs == rhs
}
}
}
}
fn main() {
// secp256k1 benzeri basitleştirilmiş bir eğri: y² = x³ + 7 (mod 97)
let p = 97;
let curve = WeierstrassCurve::new(0, 7, p).unwrap();
println!("secp256k1-97 eğrisi başarıyla oluşturuldu.");
// Eğri üzerindeki noktaları test etme
let p1 = Point::Coordinate(32, 11);
let p2 = Point::Coordinate(10, 10);
println!("P1(32, 11) eğri üzerinde mi? {}", curve.is_on_curve(&p1));
println!("P2(10, 10) eğri üzerinde mi? {}", curve.is_on_curve(&p2));
}
SONSUZLUK NOKTASI: MATRİSİN SIFIR NOKTASI
1. Geometrik Açmazın Çözümü (The Cusp Dilemma)
Matematiksel bir eliptik eğri grubu (Group Law), 'eğri üzerindeki herhangi bir doğrudan geçen iki noktanın toplamı, yine eğri üzerindeki üçüncü bir noktada kesişmelidir' kuralına dayanır. Ancak geometrik bir açmaz vardır: Dikey doğrular eğriyi sadece iki noktada keser. 3. bir kesişim noktası yoktur. Matematikçiler bu açmazı, dikey doğruların uzayın sonsuzluğunda tek bir noktada, \(O\) (Point at Infinity) noktasında birleştiğini tanımlayarak çözer.
2. Matematiksel Rol: "Etkisiz Eleman" (Additive Identity)
Toplama işleminde 0 sayısının (\(5 + 0 = 5\)) üstlendiği 'Etkisiz Eleman' görevini, eliptik eğri matematiğinde Sonsuzluk Noktası (\(O\)) üstlenir. Eğri üzerindeki herhangi bir \(P\) noktası ile Sonsuzluk Noktası'nı topladığınızda (\(P + O\)), sonuç yine \(P\) noktasını verir. Bu tanım, eliptik eğri şifrelemesinin temelini oluşturan matematiksel Grup Yapısını mükemmel hale getirir. \(O\) olmazsa, şifreleme motoru çalışmaz.
3. Kriptografik Vizyon: Görünmeyenin Gücü (The Nullifier)
Bu 'Hayali' nokta, eliptik eğri kriptografisinin (ECC) kırılmaz denilen yapısını ayakta tutan görünmez sütundur. ECDSA, ZK-Rollups ve hatta Sıfır Bilgi İspatları (ZK-SNARKs) gibi fütüristik Web3 protokollerinin güvenliğini sağlayan Ayrık Logaritma Probleminin (ECDLP) çözülebilir olduğu matematiksel evreni bu nokta tamamlar. Görünmeyenin, görünen milyarlarca dolarlık dijital varlığı koruduğu matrisin sıfır noktasına hoş geldiniz.