Monday, August 1, 2022

বিটকয়েন ব্লকচেইনে ECDSA-তে একটি দুর্বল লেনদেন এবং ল্যাটিস অ্যাটাকের সাহায্যে আমরা BTC কয়েনের একটি ব্যক্তিগত কী পেয়েছি

 

 

শুক্রবার, জুন 10, 2022

বিটকয়েন ব্লকচেইনে ECDSA-তে একটি দুর্বল লেনদেন এবং ল্যাটিস অ্যাটাকের সাহায্যে আমরা BTC কয়েনের একটি ব্যক্তিগত কী পেয়েছি


আমরা গ্রিড আক্রমণ সম্পর্কে কি জানি?

শুরুতে,  উপবৃত্তাকার বক্ররেখা ডিজিটাল স্বাক্ষর অ্যালগরিদম (ECDSA)  হল একটি সাধারণ ডিজিটাল স্বাক্ষর স্কিম যা আমরা আমাদের অনেক কোড পর্যালোচনায় দেখতে পাই। এটির কিছু পছন্দসই বৈশিষ্ট্য রয়েছে, তবে সাইড-চ্যানেল আক্রমণের মাধ্যমে ব্যক্তিগত কী পুনরুদ্ধার করা খুব ভঙ্গুর হতে পারে যা এক বিটেরও কম গোপনীয়তা প্রকাশ করে।

ECDSA ডিজিটাল সিগনেচার অ্যালগরিদমের একটি বিশেষ রূপ  (DSA)। DSA একটি মোটামুটি সাধারণ ডিজিটাল স্বাক্ষর স্কিম, যা তিনটি অ্যালগরিদম দ্বারা সংজ্ঞায়িত করা হয়েছে: কী প্রজন্ম, স্বাক্ষর এবং যাচাইকরণ৷ কী প্রজন্মের অ্যালগরিদম ব্যক্তিগত এবং সর্বজনীন কী তৈরি করে;  ব্যক্তিগত কী স্বাক্ষর তৈরির জন্য দায়ী;  এবং পাবলিক কী স্বাক্ষর যাচাই করার জন্য দায়ী।  স্বাক্ষর অ্যালগরিদম ইনপুট হিসাবে একটি বার্তা এবং একটি ব্যক্তিগত কী নেয় এবং একটি স্বাক্ষর তৈরি করে। যাচাইকরণ অ্যালগরিদম ইনপুট হিসাবে একটি বার্তা, একটি স্বাক্ষর এবং একটি সর্বজনীন কী নেয় এবং  স্বাক্ষরটি বৈধ কিনা তা নির্দেশ করে true বা  এর একটি মান প্রদান করে।false

DSA যেকোন গাণিতিক গোষ্ঠীর জন্য সংজ্ঞায়িত করা হয়, এবং এই স্কিমটি নিরাপদ যতক্ষণ না বিচ্ছিন্ন লগারিদম সমস্যাটি সেই গোষ্ঠীর জন্য কঠিন। একটি সাধারণভাবে ব্যবহৃত গোষ্ঠী হল পূর্ণসংখ্যা মডিউল একটি মৌলিক সংখ্যা p।

এই গ্রুপের সাথে আমাদের একটি গ্রুপ জেনারেটর জি এবং কিছু ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত  হ্যাশ  ফাংশন  থাকবে H। আমরা অনুমান করতে পারি  p , g এবং  H সাধারণ জ্ঞান হবে।

x মডুলো পূর্ণসংখ্যা থেকে  প্রথমে এলোমেলোভাবে একটি মান নির্বাচন করে কী জেনারেশন কাজ করে  p । তারপর মান গণনা করা হয় y = g^x mod p

স্বাক্ষরের ব্যক্তিগত কী হল  x , এবং সর্বজনীন কী হল  y ৷ সাইনিং কীটি অবশ্যই গোপন রাখতে হবে, কারণ এটিই স্বাক্ষর তৈরি করার অনুমতি দেয়।

স্বাক্ষর অ্যালগরিদম বার্তা  m এবং গোপন কী x থেকে একটি স্বাক্ষর তৈরি করে। প্রথমত, একটি র্যান্ডম গ্রুপ উপাদান তৈরি হয়  k । এটি একটি ননস হিসাবে পরিচিত, যা আক্রমণের ক্ষেত্রে গুরুত্বপূর্ণ।

তারপর মান গণনা করা হয়  r = g^k mod p এবং s = ( k^-1 ( H ( m ) + xr )) mod p

এখানে  k^- 1 , বিপরীত গ্রুপ, এবং  H ( m ) হ্যাশ m গণনা করার ফলাফল, এবং ফলাফলটিকে একটি পূর্ণসংখ্যা মডিউল p হিসাবে ব্যাখ্যা করে।

স্বাক্ষর একটি জোড়া হিসাবে সংজ্ঞায়িত করা হয়  ( r , s )(দ্রষ্টব্য: যদি একটি  r বা  মান sসমান হয়  0, তাহলে অ্যালগরিদম নতুন মানের সাথে পুনরায় চালু হয়  k )।

যাচাইকরণ অ্যালগরিদম ইনপুট হিসাবে একটি স্বাক্ষর  ( r , s ), একটি বার্তা  m এবং একটি সর্বজনীন কী y পায়৷ চলুন  ŝ = s^-1 , তাহলে অ্যালগরিদমটি সত্য হয়ে আসে যদি এবং শুধুমাত্র যদি  r , s ≠ 0 и r = ( g H ( m ) y r ) ŝ ।

এই বৈধতা পরীক্ষা কাজ করে কারণ  g^H( m ) y^r = g^H(m)+ xr = g^ks, এবং তাই (g^H(m)y^r)^ŝ = g^k = r

একটি ডিজিটাল স্বাক্ষর স্কিম নিরাপদ বলে মনে করা হয় যদি এটি জাল করা না যায়।

অপরিবর্তনীয়তার একটি আনুষ্ঠানিক ক্রিপ্টোগ্রাফিক অর্থ রয়েছে, তবে উচ্চ স্তরে এর অর্থ হল আপনি গোপন কীটি না জেনে স্বাক্ষর তৈরি করতে পারবেন না (যদি না আপনি গোপন কী থেকে তৈরি একটি ইতিমধ্যে বিদ্যমান স্বাক্ষর অনুলিপি না করেন)। একটি বিচ্ছিন্ন লগDSA অনুমান অধীনে জাল করা অসম্ভব  হতে প্রমাণিত   .

DSA একটি গাণিতিক দলের উপর সংজ্ঞায়িত করা হয়. DSA এই গাণিতিক গোষ্ঠী হিসাবে উপবৃত্তাকার বক্ররেখার গোষ্ঠীর সাথে ব্যবহার করা  হলে  , আমরা এটিকে বলি ECDSA। উপবৃত্তাকার বক্ররেখা গোষ্ঠীটি  উপবৃত্তাকার বক্ররেখা বিন্দু নিয়ে গঠিত, যেগুলো জোড়া  , যা  কিছু  ( x , y )কিছুর সমীকরণকে সন্তুষ্ট করে   । এই ব্লগ পোস্টের জন্য, আপনাকে যা জানতে হবে তা হল উপবৃত্তাকার বক্ররেখা ব্যবহার করে আপনি একটি সীমিত গোষ্ঠীকে সংজ্ঞায়িত করতে পারেন, যার অর্থ আপনি গ্রুপ জেনারেটর,  (উপবৃত্তীয় বক্ররেখা বিন্দু) , এবং  যোগ  এবং  বিন্দু গুণন ক্রিয়াকলাপগুলি  ঠিক আপনার মতোই পাবেন। পূর্ণসংখ্যা দিয়ে করতে পারেন। যেহেতু তারা একটি সীমিত গ্রুপ গঠন করে, জেনারেটর,y^2 = x^3 + ax + ba , bg g , একটি সীমাবদ্ধ আদেশ থাকবে,  pএই ব্লগ পোস্টটি ব্যাখ্যা করবে না বা আপনাকে জানার প্রয়োজন হবে না যে এই  উপবৃত্তাকার বক্ররেখাগুলি কীভাবে কাজ করে ।

ECDSA একই কাজ করে  DSA, কিন্তু একটি ভিন্ন গ্রুপের সাথে। গোপন কী x  এখনও একটি র্যান্ডম মান মডুলো পূর্ণসংখ্যা হবে  p । এখন সর্বজনীন কী  y এখনও হিসাবে গণনা করা হয়  y = g^x , ব্যতীত g এখন উপবৃত্তাকার বক্ররেখার একটি বিন্দু। এর মানে হল যে y উপবৃত্তাকার বক্ররেখার একটি বিন্দুও হবে (আগে y একটি পূর্ণসংখ্যা মডিউল p ছিল)। আরেকটি পার্থক্য হল কিভাবে আমরা r এর মান গণনা করি। আমরা এখনও আগের মতই একটি পূর্ণসংখ্যা মডিউল p হিসাবে একটি এলোমেলো নন্স k তৈরি করি। আমরা গণনা করব  g^k , কিন্তু আবার, g একটি উপবৃত্তাকার বক্ররেখার একটি বিন্দু, এবং তাই,  g^k এছাড়াও। অতএব, আমরা গণনা  ( x^k , y^k ) = g^k এবং সেট  করতে পারি r = x^k । এখন অর্থ s আগের মতো গণনা করা যেতে পারে, এবং আমরা আমাদের স্বাক্ষর পাই  ( r , s ), যা এখনও  p আগের মতোই একটি পূর্ণসংখ্যা মডিউল। চেক করার জন্য, আমাদেরকে ঠিক করতে হবে যে আমরা  r একটু ভিন্নভাবে গণনা করেছি।

সুতরাং, আগের মতই, আমরা   এর মান  গণনা( g^H(m)y^r)^ŝ করি  , কিন্তু এখন সেই মানটি উপবৃত্তাকার বক্ররেখার একটি বিন্দু, তাই আমরা  xসেই বিন্দুটির -সমন্বয় নিয়েছি এবং এটিকে আমাদের মানের সাথে তুলনা করি  r ।

 পুনঃব্যবহৃত ননসেস থেকে  গোপন কী পুনরুদ্ধার NONCES

এখন যেহেতু আমরা বুঝতে পারি এটি কী  ECDSA এবং এটি কীভাবে কাজ করে, আসুন এর  ভঙ্গুরতা প্রদর্শন করি । আবার, যেহেতু এটি একটি ডিজিটাল স্বাক্ষর স্কিম, তাই এটি অপরিহার্য যে  গোপন কীটি  বার্তায় স্বাক্ষরকারী ব্যক্তি ছাড়া অন্য কারো কাছে প্রকাশ করা হবে না।

যাইহোক, যদি স্বাক্ষরকারী কখনও স্বাক্ষর জারি করে এবং ব্যবহৃত ননসও জারি করে,  আক্রমণকারী  অবিলম্বে  গোপন কী পুনরুদ্ধার করতে পারে ।

ধরা যাক আমি  ( r , s ) একটি বার্তার জন্য  একটি স্বাক্ষর প্রকাশ করি m এবং ঘটনাক্রমে আবিষ্কার করি যে আমি একটি ননস ব্যবহার করেছি  k ৷

যেহেতু  s = ( k^-1 ( H ( m ) + xr )), আমরা সহজেই গোপন কী গণনা করতে পারি:

s = (k^-1(H(m) + xr))

ks = H(m) + xr

ks – H(m) = xr

x = r^-1(ks – H(m))

অতএব, স্বাক্ষরকারীকে কেবল তাদের  ব্যক্তিগত কী গোপন রাখতে হবে না , তবে তাদের তৈরি করা সমস্ত ননসেস গোপনীয়।

এমনকি যদি স্বাক্ষরকারী প্রতিটি  ননস NONCES গোপন রাখে , যদি সে ঘটনাক্রমে একটি ননস পুনরাবৃত্তি করে  ( NONCES  এমনকি বিভিন্ন বার্তার জন্য),  গোপন কীটিও অবিলম্বে পুনরুদ্ধার  করা যেতে পারে  

 বার্তাগুলিতে এবং   (যথাক্রমে) একই নন্স থেকে  ( r , s 1 ) দুটি  ( r , s 2 ) স্বাক্ষর তৈরি করা  যাক   - যেহেতু তাদের একই নন্স আছে, তাই r মানগুলি একই হবে, তাই আক্রমণকারীর পক্ষে এটি সনাক্ত করা খুব সহজ:m 1m 2k

s1 = k^-1(H(m1) + xr) and s2 = k^-1(H(m2) + xr)

s1 – s2 = k^-1(H(m1) – H(m2))

k(s1 – s2) = H(m1) – H(m2)

k = (s1 – s2)^-1(H(m1) – H(m2))

একবার আমরা  k উপরের সূত্রটি ব্যবহার করে ননস পুনরুদ্ধার করলে, আমরা পূর্বে বর্ণিত আক্রমণটি সম্পাদন করে প্রাইভেট কী পুনরুদ্ধার করতে পারি।

এক মুহূর্তের জন্য এই হজম করা যাক.

যদি  স্বাক্ষর NONCES না  করা কখনো প্রকাশ করা হয়,  গোপন কী অবিলম্বে  পুনরুদ্ধার করা যেতে পারে , যা  আমাদের সম্পূর্ণ স্বাক্ষর স্কিম ভঙ্গ করে ।

এছাড়াও, যদি দুটি ননস কখনও পুনরাবৃত্তি হয়, বার্তা যাই হোক না কেন,  আক্রমণকারী  সহজেই এটি সনাক্ত করতে পারে এবং অবিলম্বে  গোপন কীটি পুনরুদ্ধার করতে পারে , আবার আমাদের পুরো স্কিমটি ভেঙে দেয়।

এটি বেশ ভঙ্গুর এবং এটি শুধুমাত্র  হালকা আক্রমণ !

কিন্তু একটি  নতুন  ল্যাটিস অ্যাটাক  রয়েছে যা বিশদভাবে বর্ণনা করা হয়েছে  (জোয়াকিম ব্রেটনার এবং নাদিয়া হেনিঙ্গার)Йоахим Брайтнер и Надя Хенингер 

নথি  [পিডিএফ] :  পক্ষপাতমূলক ননস সেন্স: ক্রিপ্টোকারেন্সিতে দুর্বল ECDSA স্বাক্ষরের বিরুদ্ধে জালি আক্রমণ

বিটকয়েন ব্লকচেইনে, আমরা একটি নির্দিষ্ট লেনদেন পেয়েছি:

লেনদেন:  08d917f0fee48b0d765006fa52d62dd3d704563200f2817046973e3bf6d11f1f

বিটকয়েন ঠিকানার জন্য:  15N1KY5ohztgCXtEe13BbGRk85x2FPgW8E

এবং আমরা জাল স্বাক্ষর গুন করতে এবং গ্রিড প্রয়োগ করতে পেরেছি

যেখানে  GOOGLE COLAB-  এ প্যাকেজ ইনস্টল করার সাথে  Python স্ক্রিপ্ট  algorithmLLL.py ব্যবহার করে

ইনস্টল করুন >> সেজ + ইসিডিএসএ + বিটকয়েন + অ্যালগরিদম এলএলএল

 আমরা একটি দুর্বল লেনদেন থেকে  Private Key পেতে  পরিচালিত  .Bitcoin WalletECDSA

স্থাপন
স্থাপন
ব্যাশ স্ক্রিপ্ট চালান: lattice.sh
ব্যাশ স্ক্রিপ্ট চালান: lattice.sh
HEX ফরম্যাটে ফলাফল ব্যক্তিগত কী পাওয়া গেছে!
HEX ফরম্যাটে ফলাফল ব্যক্তিগত কী পাওয়া গেছে!
ফাইল: ONESIGN.txt (ECDSA স্বাক্ষর R, S, Z মান)
ফাইল: ONESIGN.txt (ECDSA স্বাক্ষর R, S, Z মান)
আমরা Python স্ক্রিপ্ট algorithmLLL.py-এর জন্য জাল স্বাক্ষর প্রচার করেছি
আমরা Python স্ক্রিপ্ট algorithmLLL.py-এর জন্য জাল স্বাক্ষর প্রচার করেছি
ফাইল: PRIVATEKEY.txt
ফাইল: PRIVATEKEY.txt
ফাইল: ADDRESS.txt
ফাইল: ADDRESS.txt
বিটএড্রেস ওয়েবসাইটে ব্যক্তিগত কী চেক করা হচ্ছে
বিটএড্রেস ওয়েবসাইটে ব্যক্তিগত কী চেক করা হচ্ছে

ব্যক্তিগত চাবি পাওয়া গেছে!

https://www.blockchain.com/btc/address/15N1KY5ohztgCXtEe13BbGRk85x2FPgW8E

0.001 BTC
0.001 BTC
ADDR: 15N1KY5ohztgCXtEe13BbGRk85x2FPgW8E
WIF:  5JCAmNLXeSwi2SCgNH7wRL5qSQhPa7sZvj8eDwxisY5hJm8Uh92
HEX:  31AFD65CAD430D276E3360B1C762808D1D051154724B6FC15ED978FA9D06B1C1 

 BITCOIN ক্রিপ্টোকারেন্সিতে দুর্বল ECDSA স্বাক্ষরের বিরুদ্ধে ডেটা এবং secp256k1 উপবৃত্তাকার বক্ররেখা ক্রিপ্টোগ্রাফির আর্থিক নিরাপত্তা নিশ্চিত করার জন্য এই ভিডিওটি  CRYPTO DEEP TECH পোর্টালের জন্য তৈরি করা হয়েছে

ভিডিওঃ  https://youtu.be/YP4Xj6gUcf4

টেলিগ্রাম :  https://t.me/cryptodeeptech

সূত্র:  https://cryptodeep.ru/lattice-attack


No comments:

Post a Comment

Shadow Key Attack: a fundamental threat of nonce leakage in Bitcoin transactions from the EUCLEAK mechanism via side channels of the Extended Euclidean Algorithm in YubiKey 5 devices and Infineon microcontrollers

  Crypto Deep Tech This paper presents a cryptanalytic study  of the  Shadow Key Attack   , a Bitcoin private key recovery method that explo...