এনক্রিপশন যেখানে বার্তার গোপনীয়তা রক্ষা করে, সেখানে মানব সভ্যতার আইন ও লেনদেনের জন্য সমপরিমাণ জরুরি হলো অখণ্ডতা (Integrity) এবং অনস্বীকার্যতা (Non-Repudiation)—অর্থাৎ এটি প্রমাণ করা যে বার্তাটি প্রেরক নিজেই পাঠিয়েছেন এবং পরবর্তীতে তিনি তা অস্বীকার করতে পারবেন না। প্রাচীনকালে রাজা-বাদশাহদের মোমের সিলমোহর বা কাগজের দস্তখত এই কাজ করত। কিন্তু ডিজিটাল বিশ্বে যেখানে প্রতিটি বাইট অবিকল কপি করা যায়, সেখানে একমাত্র গাণিতিক প্রতিরক্ষা হলো ডিজিটাল স্বাক্ষর অ্যালগরিদম (ECDSA, Ed25519)। তবে এই ব্যবস্থা এতটাই সংবেদনশীল যে এর একটি মাত্র ক্ষণস্থায়ী প্যারামিটারে দৈবতার সামান্য ত্রুটি ঘটলে সম্পূর্ণ প্রাইভেট কী বিশ্ববাসীর সামনে উন্মুক্ত হয়ে যায়।
১. উপবৃত্তাকার ডিজিটাল স্বাক্ষর (ECDSA)-এর কার্যপ্রণালী
একটি উপবৃত্তাকার বক্ররেখার জেনারেটর $G$-এর সাপেক্ষে প্রাইভেট কী $d$ এবং পাবলিক কী $Q = d cdot G$ হলে:
স্বাক্ষর তৈরির ধাপসমূহ:
- বার্তার হ্যাশ নির্ণয়: $e = text{Hash}(m)$।
- সম্পূর্ণ দৈবভাবে একটি ক্ষণস্থায়ী ননস (Nonce) $k in [1, n-1]$ নির্বাচন।
- বক্ররেখার বিন্দু গণনা: $(x_1, y_1) = k cdot G$।
- প্রথম উপাদান: $r = x_1 bmod n$।
- দ্বিতীয় উপাদান:
[
s = k^{-1} (e + r cdot d) bmod n
] - ডিজিটাল স্বাক্ষরটি হলো জোড়া সংখ্যা: $sigma = (r, s)$।
পাবলিক ভেরিফিকেশন:
যে কেউ পাবলিক কী $Q$ এবং স্বাক্ষর $(r, s)$ দিয়ে যাচাই করতে পারে: $u_1 = e cdot s^{-1}, u_2 = r cdot s^{-1}$ হিসেব করে $u_1 G + u_2 Q$ বিন্দুর $x$-স্থানাঙ্ক ঠিক $r$-এর সমান কি না। সমতা মিললেই স্বাক্ষরটি আইনগত ও গাণিতিকভাবে সিদ্ধ হয়।
২. ক্ষণস্থায়ী ননস (Nonce) পুনরাবৃত্তি বিপর্যয়
$k$-কে বলা হয় ননস (Number used once), কারণ প্রতিটি স্বাক্ষরে এটি সম্পূর্ণ নতুন ও দৈব হতে হয়। যদি কোনো প্রোগ্রামিং ভুলের কারণে দুটি ভিন্ন বার্তা $m_1$ ও $m_2$ একই $k$ দিয়ে স্বাক্ষর করা হয়, তবে দুটি স্বাক্ষরেই $r$ হুবহু এক হবে! আক্রমণকারী সাথে সাথে সমীকরণ বিয়োগ করে ফেলে:
[
s_1 – s_2 = k^{-1} (e_1 – e_2) implies k = frac{e_1 – e_2}{s_1 – s_2} pmod n
]
$k$ বের হয়ে যাওয়ার পর মাত্র এক লাইনের পাটিগণিতে মূল প্রাইভেট কী $d$ উদ্ধার করা যায়:
[
d = r^{-1} (s_1 k – e_1) pmod n
]
২০১০ সালে সনির প্রকৌশলীরা তাদের PlayStation 3 বুটলোডারে $k$-এর মান স্থির (Hardcoded) রেখেছিলেন। হ্যাকাররা সনির মূল মাস্টার প্রাইভেট কী উদ্ধার করে সম্পূর্ণ ডিভাইস জেলব্রেক করে ফেলে। ২০১৩ সালে অ্যান্ড্রয়েডের সিকিউর-র্যান্ডম বাগ ব্যবহার করে হ্যাকাররা কোটি কোটি টাকার বিটকয়েন চুরি করে।
৩. ডিটারমিনিস্টিক ননস: RFC 6979 ও Ed25519
দৈব জেনারেটরের ওপর নির্ভরতা দূর করতে আধুনিক বিশ্বে RFC 6979 স্ট্যান্ডার্ড চালু করা হয়েছে, যেখানে $k$-কে বার্তা ও প্রাইভেট কী-এর হ্যাশ হিসেবে ডিটারমিনিস্টিক উপায়ে গণনা করা হয় ($k = text{HMAC}(d, m)$)। এছাড়া আধুনিক Ed25519 অ্যালগরিদম এই ঝুঁকি সম্পূর্ণ নির্মূল করেছে।