Seed Phrase Oluşturma

Buse Taşcı
stm-blockchain
Published in
2 min readFeb 9, 2021
Photo by Markus Spiske on Unsplash

Tohum cümleleri(seed phrases) dijital cüzdanları yedeklemek ve geri yüklemek için kullanılan kelime listeleridir. Bu cümleler cüzdan yazılımları tarafından üretilip kullanıcıya sunulabilir ya da kullanıcı tarafından belirlenebilir. İkinci yöntem listenin hatırlanması açısından tercih edilebilir olsa da, kullanıcı tarafından kısa sürede rastgele(Golomb’s Randomness Postulates), anlamsız bir cümle üretilmesi zordur. Kullanıcının kolay hatırlanabilecek kelimeler seçebilmesi, akla ilk gelecek kelimelerin kullanıcının ilgi alanlarından seçilebilmesi sosyal mühendislik ataklarına açık olabileceğinden, güvenlik açığı yaratabilmektedir. Daha güvenli uygulamalar için cümlenin yazılım tarafından oluşturulması ve kullanıcı tarafından güvenli şekilde saklanması tercih edilmelidir.

Kullanılacak kelime listesinin uzunluğuna göre(12–24) rastgele bir sayı üretilir. 12 kelimeden oluşan bir tohum cümlesi için 128 bitlik bir sayı, 24 kelimeden oluşan bir tohum cümlesi için 256 bitlik bir sayı gereklidir. En az 128 bitlik anahtar kullanan algoritmalar mevcut sistemler için güvenli kabul edilmektedir. Ayrıca, 12 kelimenin kullanıcı tarafından saklanması da daha kolay olacağı için 12 kelimelik tohum cümleleri daha yaygın olarak kullanılmaktadır.

Phrase Üretimi

  • İlk olarak 128 bitlik rastgele bir sayı üretilir. Sayımız 207197144149201572017169886958653999907 olsun.
  • Daha sonra bu sayı 2lik tabana(binary) çevrilir. 128-bitlik binary dizimiz: 10011011111000001011011111101011000101010111111010000111110100000011111101011000000000011100000111101010101011110000101100100011
  • Bu sayıyı 11 bitlik 12 parçaya ayırmak için (11 x 12 = 132) sayının sonuna 4 bit daha eklenir. Bu 4 bit, ilk olarak üretilen sayının SHA-256 çıktısının ilk 4 bitidir. 132 bitlik yeni dizimiz: 100110111110000010110111111010110001010101111110100001111101000000111111010110000000000111000001111010101010111100001011001000111001
  • Daha sonra elde edilen 132 bitlik binary dizi, 11 bitlik parçalara ayrılır. Her parçanın tamsayı değeri hesaplanır. Her parçanın 11 bit olmasının sebebi kelimelerin 0–2047 arasında numaralandırılmış olmasıdır. Bu sayıya karşılık gelen kelime ilgili kütüphane ya da kelime listesinden (yaygın olarak kullanılan BIP-39 listesi) seçilir ve bu 12 kelimelik tohum cümlesi kullanıcıya sunulur.
10011011111 00000101101 11111010110 00101010111 11101000011 
1247 45 2006 343 1859
orange airport wide client tribe
11101000000 11111101011 00000000001 11000001111 01010101011
1856 2027 1 1551 683
tree wool abandon scrub fetch
11000010110 01000111001
1558 569
section either

Kullanılmak istenen kelime sayısına göre üretilecek rastgele sayı uzunluğu ve üretilen rastgele sayıya eklenecek bit sayısı için aşağıdaki tablo kullanılabilir.

Cüzdanla ilgili tüm anahtarlar bu tohum cümlesi kullanılarak üretilir. Bu kelimelerin sırası önemlidir ve tohum cümlesini saklamak kullanıcının sorumluluğundadır.

--

--