Post
Topic
Board Türkçe (Turkish)
Re: GPU ile Eliptik Eğri Aritmetiği ve Programlama Hakkında
by
mamuu
on 23/12/2020, 05:31:10 UTC
Ayrıca dikkat edersen benim paylaştığım kodlarda literal bir değer yok, bu da anlaşılmasını kolaylaştırıyor fakat sen 5, 27, 31 gibi sayılar kullanıyorsun hiç bir şey anlamıyorum. Bu sayılar nereden geldi ve ne için oradalar?

Merhaba John_Ahmet

300 burada private key aslında


330*G = N = EllipticCurve ( (330*G).x , (300*G).y)

Kusura bakma dikkatli olmaya çalışıyorum 5,27,31 bu sayılar nokta indirgemede kullandığım sayılar ECDSA ile direkt alakası yok. Sadece Eliptik Eğri Aritmetiği ile ilgili.

senin merak ettiğin ise imza yani mesaj nasıl şifreleniyor.

RSA'in imza algoritması (aralarında asal sayılarla çalışır)

ECDSA imza algoritması (aralarında asal noktalarla çalışır.)

ECDSA da işlem yapmak için ise Eliptik Eğri aritmetiğini bilmek gerekir.

Benim yoğunlaştığım konu sadece eğri matematiği

RSA için Şadi hocanın videosunu izlemeni öneririm. http://bilgisayarkavramlari.com/2008/03/19/rsa/





imza algoritmasında rastgele seçilen sayıyı tekrar kullanıp başka bir imza oluşturursan
burada bir güvenlik açığı oluşur. Sony Ps3 gibi aynı durum android telefonlarda 2014 yılında random fonksiyonun kendini tekrar etmesi ile bitcoin üzerinde de yaşandı.
R values diye geçer

İstediğin gibi anlatmaya çalışacağım.

Büyükharfler nokta tanımlasın -> J
Küçükharfler sayı -> j


PrivateKey = x
PublicPoint = X
RandomKey = b


b * G = (bx,by)

ECDSA imza algoritmasında kullanılan R = bx tir


secp256k1 de

sayılarda 0 olan uzaklığı hesaplamaya çalışırsın yani Base 0 dır

noktalarda ise G ye olan uzaklığı hesaplarsın. Yani Base G dir

G = Point( gx, gy, curve=secp256k1))


x * G =  EllipticCurve(xx,xy, curve=secp256k1) = X tir.

buradaki
x private key

X PublicPoint tir diyelim aslında publickeyle aynı şeydir

bizim bitcoinde kullandığımız publickey PublicPoint teki xy ve xx ile ilgili


Comporessed Pubickey için

xy çift ise -> "02"+hex(xx)
xy tek ise -> "03"+hex(xx)


UnComporessed Publickey için

"04"+hex(xx)+hex(xy)


yani buradan da anlaşılacağı üzere PublicPoint e bağlı xx ve xy değerleri secp256k1 bir kullanan tüm işlemlerde kullanılıyor
imza algoritması veya cüzdan oluşturulması.

Bu imza ilgili işlemleri anlattıktan sonra

walletlar birbirine ECDSA ile ilişkili
transactionlar birbirine ECDSA ile ilişkili
bloklar birbirine ECDSA ile bağlı ile ilişkili

düz mantıkla bunlarda chain i oluşturuyor diyebiliriz.