ডিজিটাল স্বাক্ষর হলো আধুনিক আইনের চোখে সনাতন হস্তাক্ষরিত স্বাক্ষরের ক্রিপ্টোগ্রাফিক রূপ—যা গণিতের মাধ্যমে দলিলের পরিবর্তনহীনতা (Integrity), পরিচয় নিশ্চিতকরণ (Authentication) এবং অস্বীকৃতিহীনতা (Non-repudiation) নিশ্চিত করে। কিন্তু একক চাবির ওপর নির্ভরতা একটি একক বিপর্যয় বিন্দু (Single Point of Failure) তৈরি করে: চাবি হারালে বা চুরি হলে সব শেষ। এই অধ্যায়ে আমরা বিশ্লেষণ করব শনর স্বাক্ষরের (Schnorr) গাণিতিক সৌন্দর্য, ECDSA-এর মারাত্মক ননস ঝুঁকি এবং কীভাবে শামির সিক্রেট শেয়ারিং দিয়ে কেন্দ্রীয় কর্তৃত্ব দূর করা যায়।

১. শনর ডিজিটাল স্বাক্ষর ও রৈখিকতার জাদু

১৯৮৯ সালে ক্লজ শনর কর্তৃক উদ্ভাবিত শনর স্বাক্ষর (Schnorr Signature) হলো ক্রিপ্টোগ্রাফির সবচেয়ে বিশুদ্ধ ও মার্জিত স্বাক্ষর ব্যবস্থা। ধরা যাক (G) হলো (q) প্রাইম অর্ডারের গ্রুপ, (g) হলো জেনারেটর, এবং প্রাইভেট কি (x)-এর পাবলিক কি হলো (X = g^x):

  1. কমিটমেন্ট: স্বাক্ষরকারী একটি গোপন ক্ষণস্থায়ী ননস (r leftarrow mathbb{Z}_q) নিয়ে তৈরি করে (R = g^r)।
  2. চ্যালেঞ্জ: ফিয়াট-শামির পদ্ধতিতে চ্যালেঞ্জ হ্যাশ হিসাব করা হয়: (e = H(R parallel X parallel m) in mathbb{Z}_q)।
  3. রেসপন্স: স্বাক্ষর রেসপন্স scalar হিসাব করা হয়:
    [
    s = r + e cdot x pmod q
    ]

চূড়ান্ত স্বাক্ষর হলো জোড়া ((R, s))। ভেরিফায়ার কেবল সমীকরণটি পরীক্ষা করে:

[
g^s stackrel{?}{=} R cdot X^e
]

শনর স্বাক্ষরের সবচেয়ে বৈপ্লবিক দিক হলো এর রৈখিকতা (Linearity): সমীকরণে কোনো অপ্রয়োজনীয় ভাগ বা জটিলতা নেই। এই রৈখিকতার কারণে একাধিক ব্যক্তি তাদের পাবলিক কি যুক্ত করে (MuSig2) একটি একক স্বাক্ষর তৈরি করতে পারে, যা বাইরে থেকে দেখলে সাধারণ একজন ব্যক্তির স্বাক্ষরের মতোই মনে হয়।

২. ECDSA: কাজের ধারা ও ননস পুনরাবৃত্তির বিপর্যয়

নব্বইয়ের দশকে শনর স্বাক্ষরের ওপর পেটেন্ট থাকার কারণে স্ট্যান্ডার্ড কমিটিগুলো বাধ্য হয়ে তৈরি করেছিল ECDSA (Elliptic Curve Digital Signature Algorithm)। এটি বহুল ব্যবহৃত হলেও সামান্যতম প্রোগ্রামিং ভুলের কারণে এটি সম্পূর্ণ ভেঙে পড়ে।

প্রাইভেট কি (d_A) দিয়ে বার্তা (z) স্বাক্ষরের ধাপ:

  1. একটি র্যান্ডম ননস (k leftarrow mathbb{Z}_n^*) নির্বাচন।
  2. কার্ভ বিন্দু ((x_1, y_1) = [k]G) নির্ণয়, যেখানে (r = x_1 bmod n)।
  3. স্বাক্ষর নির্ণয়: (s = k^{-1} (z + r d_A) bmod n)।

ECDSA-এর সবচেয়ে ভয়াবহ দুর্বলতা হলো: ননস (k) যদি কখনো দুটি ভিন্ন বার্তায় একই ব্যবহৃত হয়, তবে বিয়োগ করলেই সমীকরণ থেকে (k) বের হয়ে আসে:

[
s_1 – s_2 = k^{-1}(z_1 – z_2) implies k = rac{z_1 – z_2}{s_1 – s_2} pmod n
]

(k) বের হওয়ার সাথে সাথেই আক্রমণকারী সরাসরি মাস্টার প্রাইভেট কি (d_A) উদ্ধার করে ফেলে। ২০১০ সালে সনি প্লেস্টেশন ৩ (PS3)-এর নিরাপত্তা ঠিক এই ভুলের কারণে ধূলিসাৎ হয়ে গিয়েছিল। আধুনিক সিস্টেমে এই ঝুঁকি এড়াতে RFC 6979 মেনে ডিটারমিনিস্টিক ননস ব্যবহার করা হয়।

৩. শামির (k, n) থ্রেশহোল্ড সিক্রেট শেয়ারিং

১৯৭৯ সালে আদি শামির চাবি সুরক্ষার জন্য উদ্ভাবন করেন সিক্রেট শেয়ারিং (Secret Sharing): একটি মূল চাবি (S)-কে (n) টুকরো করে এমনভাবে বণ্টন করা যাতে যেকোনো (k) টুকরো একত্রিত হলে মূল চাবিটি নিখুঁতভাবে উদ্ধার হয়, কিন্তু (k – 1) টুকরো থাকলে চাবি সম্পর্কে ০ বিট তথ্যও পাওয়া যায় না।

এটি কাজ করে সসীম ফিল্ডে লাগ্রাঞ্জ পলিনোমিয়াল ইন্টারপোলেশনের (Lagrange Interpolation) ওপর:

  1. ডিলার মূল চাবিটিকে পলিনোমিয়ালের কনস্ট্যান্ট পদ (a_0 = S) ধরে এবং (k-1) টি র্যান্ডম সহগ নিয়ে একটি ((k-1)) মাত্রার বহুপদী তৈরি করে:
    [
    f(x) = S + sum_{j=1}^{k-1} a_j x^j pmod p
    ]
  2. অংশগ্রহণকারী (i)-কে শেয়ার হিসেবে দেওয়া হয় বিন্দু ((i, f(i)))।

যেকোনো (k) সংখ্যক বিন্দু দেওয়া থাকলে লাগ্রাঞ্জ বেসিস পলিনোমিয়াল (ll_i(x)) দিয়ে পুরো সমীকরণটি উদ্ধার করে (x = 0) বসালেই গোপন চাবি (S) ফিরে পাওয়া যায়:

[
S = f(0) = sum_{i=1}^k y_i prod_{j
eq i} rac{-x_j}{x_i – x_j} pmod p
]

এর নিরাপত্তা ইনফরমেশন-থিওরেটিক বা পরম: (k-1) টি বিন্দু দেওয়া থাকলে সসীম ফিল্ডের প্রতিটি সম্ভাব্য মান (S’)-এর জন্য একটি করে সম্পূর্ণ বৈধ পলিনোমিয়াল বিদ্যমান থাকে, ফলে গণিতবিদ বা সুপারকম্পিউটার কারোর পক্ষেই আসল চাবি অনুমান করা সম্ভব নয়।