رفتن به محتوای اصلی
کوهستان
توضیح کوهستانرمزنگاریمقاله آموزشی· 4 دقیقه مطالعه· در قالب‌های محتوا

چگونه تابع هش یک‌طرفه و جفت‌کلید نامتقارن، اصالت امضای دیجیتال را تضمین می‌کنند

در حالی که تبلیغات تجاری اغلب امضاهای دیجیتال را با تاییدیه‌های ساده الکترونیکی یکی می‌دانند، امضاهای رمزنگاری‌شده واقعی برای پیوند دادن ریاضی یک هویت به وضعیت دقیق یک سند، به هش کردن یک‌طرفه و جفت‌کلیدهای نامتقارن متکی هستند. این سازوکار تضمین می‌کند که هرگونه تغییر در فایل، بلافاصله امضا را باطل کند.

به قلم نیما موسوی

به‌طور خلاصه

  • امضاهای دیجیتال از رمزنگاری برای پیوند دادن یک هویت خاص به وضعیت دقیق یک سند استفاده می‌کنند.
  • تابع هش، سند را به یک دایجست با طول ثابت فشرده می‌کند که در صورت تغییر فایل، تغییر خواهد کرد.
  • فرستنده این دایجست را با کلید خصوصی خود رمزنگاری می‌کند تا امضا ایجاد شود.

امضای فیزیکی و دست‌نویس، یک اثر بیومتریک مرتبط با شخص است، اما کاملاً مستقل از سندی است که روی آن نقش می‌بندد. می‌توانید آن را جعل کنید، کپی کنید یا حتی صفحه زیرش را جابه‌جا کنید. اما یک امضای دیجیتال رمزنگاری‌شده در یک جنبه اساسی تفاوت دارد: این امضا نه تنها به هویت فرستنده، بلکه به وضعیت دقیق و بیت‌به‌بیت سند در لحظه امضا شدن، از نظر ریاضی گره خورده است.[1][2]

فروشندگان نرم‌افزار مدام «امضاهای الکترونیکی» را به عنوان جایگزینی مدرن برای خودکار بازاریابی می‌کنند و اغلب تایپ کردن یک نام یا کشیدن یک خط‌خطی روی صفحه لمسی را با امنیت واقعی اشتباه می‌گیرند. اما امضای الکترونیکی صرفاً ثبت یک قصد و نیت است. یک امضای دیجیتال واقعی که تحت استاندارد امضای دیجیتال (DSS) منتشر شده توسط موسسه ملی استاندارد و فناوری (NIST) در سال ۱۹۹۴ اداره می‌شود، یک عملیات رمزنگاری مشخص است.[1][4]

برای درک اینکه واقعاً چه چیزی پشت زبان تبلیغاتی «رمزنگاری در سطح نظامی» پنهان شده است، باید این فرآیند را به دو نیمه مکانیکی مجزا تقسیم کرد: تابع هش یک‌طرفه و جفت‌کلید نامتقارن.[2][3]

این فرآیند نه با رمزنگاری، بلکه با هش کردن آغاز می‌شود. وقتی کاربری یک فایل PDF را امضا می‌کند، نرم‌افزار ابتدا کل فایل را از یک تابع هش رمزنگاری‌شده، که معمولاً SHA-256 است، عبور می‌دهد.[5][6]

تابع هش یک الگوریتم ریاضی است که ورودی با هر اندازه‌ای - چه یک جمله کوتاه و چه یک فایل ویدیویی ۴ گیگابایتی - را می‌گیرد و آن را به یک رشته کاراکتر با طول ثابت فشرده می‌کند که به آن «دایجست» (digest) می‌گویند. در مورد SHA-256، این خروجی همیشه دقیقاً ۲۵۶ بیت طول دارد.[1][5]

تابع هش هر سندی را به یک دایجست ۲۵۶ بیتی با طول ثابت فشرده می‌کند.

نکته حیاتی این است که این تابع کاملاً یک‌طرفه است. همان‌طور که ارائه‌دهنده خدمات هویتی Okta در مستندات فنی خود توضیح می‌دهد، تابع هش مانند یک خیابان یک‌طرفه عمل می‌کند؛ فایل اصلی را نمی‌توان از دایجست به‌دست‌آمده بازسازی کرد.[2]

علاوه بر این، هش به شرایط اولیه بسیار حساس است، ویژگی‌ای که به عنوان «اثر بهمنی» شناخته می‌شود. تغییر حتی یک ویرگول در یک قرارداد ۵۰۰ صفحه‌ای، دایجست ۲۵۶ بیتی نهایی را کاملاً تغییر می‌دهد. این موضوع یکپارچگی سند را تضمین می‌کند؛ اگر هش مطابقت داشته باشد، یعنی فایل حتی یک بایت هم تغییر نکرده است.[3][5]

اما هش به تنهایی فقط وضعیت سند را ثابت می‌کند، نه اینکه چه کسی آن را هش کرده است. هر کسی می‌تواند یک فایل را از SHA-256 عبور دهد. برای تضمین اصالت، سیستم نیمه دوم سازوکار را وارد بازی می‌کند: رمزنگاری نامتقارن که معمولاً از طریق الگوریتم RSA پیاده‌سازی می‌شود.[2][6]

در یک سیستم نامتقارن، کاربر دو کلید مرتبط از نظر ریاضی تولید می‌کند. کلید خصوصی به صورت مخفیانه در دستگاه کاربر نگهداری می‌شود، در حالی که کلید عمومی به صورت آزادانه در اختیار هر کسی که بخواهد هویت کاربر را تایید کند، قرار می‌گیرد.[3][5]

راهنمای مهندسی ByteByteGo این موضوع را با تاکید بر رابطه ریاضی دقیق بین کلیدها نشان می‌دهد: داده‌هایی که توسط یکی قفل شده‌اند، فقط توسط دیگری باز می‌شوند. در حالی که مشخصات فنی NIST و مستندات شرکت‌هایی مانند Okta و Docusign این سازوکارها را بدون ارائه نقل‌قول‌های مستقیم انسانی شرح می‌دهند، اجماع ریاضی در سراسر این صنعت یکپارچه باقی مانده است.[2][4][5]

وقتی نرم‌افزار امضا، دایجست هش ۲۵۶ بیتی سند را تولید می‌کند، آن دایجست خاص را با استفاده از کلید خصوصی فرستنده رمزنگاری می‌کند. این دایجست رمزنگاری‌شده همان «امضای دیجیتال» واقعی است. سپس به سند پیوست شده و برای گیرنده ارسال می‌شود.[5][6]

کلید خصوصی فرستنده، دایجست هش را رمزنگاری می‌کند تا امضای دیجیتال نهایی ایجاد شود.

پس از دریافت فایل، نرم‌افزار گیرنده مراحل تایید را به صورت معکوس انجام می‌دهد. ابتدا از کلید عمومی فرستنده برای رمزگشایی امضا استفاده می‌کند. اگر رمزگشایی موفقیت‌آمیز باشد، به طور قاطع ثابت می‌کند که امضا توسط کلید خصوصی مربوطه ایجاد شده است.[2][3]

در مرحله دوم، نرم‌افزار گیرنده به طور مستقل سند دریافت‌شده را از همان تابع هش SHA-256 عبور می‌دهد تا یک دایجست جدید تولید کند.[5][6]

در نهایت، نرم‌افزار دایجست جدید تولیدشده را با دایجست رمزگشایی‌شده مقایسه می‌کند. اگر این دو رشته ۲۵۶ بیتی کاملاً با هم مطابقت داشته باشند، سیستم همزمان دو واقعیت را تایید می‌کند: کلید خصوصی فرستنده فایل را مجاز دانسته است و فایل از لحظه امضا شدن هیچ تغییری نکرده است.[1][6]

فروشندگان اغلب این ریاضیات زیربنایی را پشت رابط‌های کاربری یکپارچه پنهان می‌کنند و جریان‌های کاری «ضد دستکاری» را می‌فروشند. اما این قابلیت کاملاً به دشواری ریاضی یافتن دو سند متفاوت که هش یکسانی تولید کنند (یک تصادم) یا تجزیه اعداد اول عظیمی که یک کلید RSA با طول ۲۰۴۸ بیت را تشکیل می‌دهند، بستگی دارد.[4][7]

اندازه اجزای استاندارد رمزنگاری در امضاهای دیجیتال مدرن.

با افزایش قدرت محاسباتی، استانداردها نیز باید سازگار شوند. موسسه NIST به طور دوره‌ای DSS را به‌روزرسانی می‌کند تا الگوریتم‌های قدیمی‌تری مانند SHA-1 را که با ارزان‌تر شدن قدرت پردازش در برابر حملات تصادم آسیب‌پذیر شده بودند، منسوخ کند. با این حال، سازوکار زیربنایی هش یک‌طرفه و جفت‌کلید نامتقارن همچنان معماری بنیادین اعتماد دیجیتال باقی می‌ماند و تنها منتظر استاندارد رمزنگاری بعدی است تا جایگزین ریاضیات زیرین آن شود.[1][4]

اصطلاحات کلیدی

تابع هش
یک الگوریتم ریاضی که ورودی با هر اندازه‌ای را به یک رشته کاراکتر با طول ثابت تبدیل می‌کند.
رمزنگاری نامتقارن
یک سیستم رمزنگاری که از دو کلید متفاوت اما مرتبط از نظر ریاضی استفاده می‌کند: یک کلید عمومی برای تایید و یک کلید خصوصی برای امضا.
دایجست
خروجی با طول ثابت که از عبور دادن یک فایل از یک تابع هش یک‌طرفه تولید می‌شود.
تصادم
یک آسیب‌پذیری نادر که در آن دو سند کاملاً متفاوت، دایجست هش دقیقاً یکسانی تولید می‌کنند.

پرسش‌های متداول

تفاوت بین امضای الکترونیکی و امضای دیجیتال چیست؟

امضای الکترونیکی یک اصطلاح حقوقی گسترده برای هر علامت دیجیتالی است که نشان‌دهنده قصد باشد، مانند تایپ کردن نامتان. اما امضای دیجیتال یک سازوکار رمزنگاری خاص است که از هش‌ها و جفت‌کلیدها برای ایمن‌سازی ریاضی سند استفاده می‌کند.

آیا می‌توان یک امضای دیجیتال را جعل کرد؟

از نظر ریاضی، جعل یک امضای دیجیتال نیازمند سرقت کلید خصوصی فرستنده یا شکستن الگوریتم رمزنگاری زیربنایی آن است که هر دوی این موارد با قدرت محاسباتی فعلی و مدیریت صحیح کلیدها، عملاً غیرممکن هستند.

اگر پس از امضا شدن سند، آن را تغییر دهم چه اتفاقی می‌افتد؟

تغییر حتی یک بایت از سند، هش رمزنگاری‌شده آن را تغییر می‌دهد. وقتی نرم‌افزار گیرنده هش جدید را با هش رمزنگاری‌شده در امضا مقایسه می‌کند، این دو با هم مطابقت نخواهند داشت و امضا بلافاصله باطل می‌شود.

بررسی عمیق دیدگاه‌ها

خلوص‌گرایان رمزنگاری

استدلال می‌کنند که تنها امضاهای قابل تایید از نظر ریاضی باید دارای اعتبار قانونی باشند.

این گروه که عمدتاً از مهندسان امنیت و رمزنگاران دانشگاهی تشکیل شده است، مرز دقیقی بین امضاهای الکترونیکی و دیجیتال قائل هستند. آن‌ها استدلال می‌کنند که پلتفرم‌های تجاری که به کاربران اجازه می‌دهند صرفاً روی «موافقم» کلیک کنند یا امضایی را روی صفحه بکشند، حس امنیت کاذبی ایجاد می‌کنند. از نظر آن‌ها، مگر اینکه فرآیند شامل یک کلید خصوصی نگهداری‌شده به صورت محلی باشد که هش رمزنگاری‌شده سند را رمزنگاری می‌کند، سیستم در برابر دستکاری‌های سمت سرور آسیب‌پذیر است و نباید برای توافق‌نامه‌های بسیار حساس به آن اعتماد کرد.

فروشندگان تجاری امضای الکترونیکی

کاهش دردسرهای کاربر را بر انزوای دقیق رمزنگاری ترجیح می‌دهند.

شرکت‌هایی که پلتفرم‌های جریان کاری اسناد را می‌سازند، استدلال می‌کنند که الزام هر کاربر به مدیریت جفت‌کلیدهای نامتقارن خود، از نظر تجاری غیرعملی و از نظر فنی برای عموم مردم بازدارنده است. در عوض، آن‌ها کلیدهای رمزنگاری را روی سرورهای خود مدیریت می‌کنند و پس از احراز هویت کاربر از طریق ایمیل یا پیامک، امضای دیجیتال را از طرف او اعمال می‌کنند. آن‌ها معتقدند که ترکیب سوابق حسابرسی، ثبت IP و رمزنگاری سمت سرور، یک راه‌حل الزام‌آور قانونی و از نظر عملی امن ارائه می‌دهد که در دنیای واقعی مورد استفاده قرار می‌گیرد.

نهادهای استانداردگذاری

بر منسوخ کردن الگوریتم‌های قدیمی و تاب‌آوری کوانتومی تمرکز دارند.

سازمان‌هایی مانند NIST، چشم‌انداز فعلی هش کردن و کلیدهای نامتقارن را به عنوان یک وضعیت موقت می‌بینند. نگرانی اصلی آن‌ها ظهور نهایی کامپیوترهای کوانتومی مرتبط با رمزنگاری است که می‌توانند الگوریتم «شور» (Shor) را برای شکستن جفت‌کلیدهای RSA که در حال حاضر امضاهای دیجیتال را ایمن می‌کنند، اجرا کنند. آن‌ها از مهاجرت مرحله‌ای به سمت الگوریتم‌های رمزنگاری پسا-کوانتومی حمایت می‌کنند و تاب‌آوری ریاضی را بر راحتی تجاری و سازگاری با سیستم‌های قدیمی ترجیح می‌دهند.

فروشندگان تجاری امضای الکترونیکی 40%خلوص‌گرایان رمزنگاری 30%نهادهای استانداردگذاری 30%
فروشندگان تجاری امضای الکترونیکی
با مدیریت کلیدهای رمزنگاری روی سرورهای متمرکز، تجربه کاربری را در اولویت قرار می‌دهند.
خلوص‌گرایان رمزنگاری
طرفدار مدیریت دقیق کلیدها در سمت کاربر و امضاهای قابل تایید از نظر ریاضی هستند.
نهادهای استانداردگذاری
بر تعریف الگوریتم‌های امن و آماده‌سازی برای تهدیدات دوران پسا-کوانتومی تمرکز دارند.

دیدگاه‌هایی که این گزارش پوشش نداده

  • متخصصان حقوقی که در حال بررسی قابلیت پذیرش امضاهای مبتنی بر سرور در دادگاه‌ها هستند.
  • کاربران نهایی که با دردسرهای مدیریت کلیدهای رمزنگاری خصوصی دست‌وپنجه نرم می‌کنند.

منابع

پوشش منابع

7 منبع

3 دیدگاه شناسایی‌شده

فروشندگان تجاری امضای الکترونیکی 40%خلوص‌گرایان رمزنگاری 30%نهادهای استانداردگذاری 30%
  1. [1]Wikipediaخلوص‌گرایان رمزنگاری

    Digital Signature Standard

    مطالعه در Wikipedia →
  2. [2]Oktaفروشندگان تجاری امضای الکترونیکی

    Digital Signatures: What They Are & How They Work

    مطالعه در Okta →
  3. [3]Sectigoنهادهای استانداردگذاری

    What are digital signatures & how do they work?

    مطالعه در Sectigo →
  4. [4]Docusignفروشندگان تجاری امضای الکترونیکی

    What Does Digital Signature Standard (DSS) Mean?

    مطالعه در Docusign →
  5. [5]ByteByteGoخلوص‌گرایان رمزنگاری

    How Digital Signatures Work

    مطالعه در ByteByteGo →
  6. [6]Mediumنهادهای استانداردگذاری

    Digital Signature with Hash Function — How it works

    مطالعه در Medium →
  7. [7]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان →

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

اخبار قالب‌های محتوا با پوشش کامل منابع و تحلیل دیدگاه‌ها، هر روز و رایگان.