وبلاگ دولوپر98

امضای دیجیتال چیست و ساختار آن چگونه است؟

امضای دیجیتال

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

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

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

تابع هش

هش کردن یکی از عناصر اصلی در ساختار امضای دیجیتال است. فرآیند هش کردن شامل انتقال اطلاعات از هر سایزی، به یک خروجی با سایز ثابت است. این عمل با الگوریتم های مخصوصی انجام می شود، که با نام تابع هش معروف هستند. خروجی ای که توسط تابع هش ساخته می شود، با عنوان ارزش هش یا message digest شناخته می گردد.

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

رمز نگاری کلید عمومی

رمز نگاری کلید عمومی یا PKC، به یک سیستم رمز نگاری اشاره دارد که از یک جفت کلید استفاده می کند: یک کلید عمومی و یک کلید خصوصی. این دو کلید از لحاظ ریاضیات به یک دیگر مرتبط هستند، و می توان از آن ها برای رمز نگاری اطلاعات و همچنین ساخت امضای دیجیتال استفاده کرد.

رمز نگاری کلید عمومی، به عنوان یک ابزار رمزنگاری، بسیار امن تر از روش های ابتدائی رمزگذاری متقارن است. با این که سیستم های قدیمی تر برای رمز نگاری و رمز گشایی اطلاعات از کلید یکسان استفاده می کنند، PKC اجازه رمز نگاری داده ها با کلید عمومی، و رمز گشایی داده ها با کلید خصوصی مربوطه را می دهد.

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

در برخی مواقع، ممکن است امضاهای دیجیتال شامل رمزنگاری شوند، اما همواره این چنین نیست. برای مثال، بلاک چین بیت کوین، از PKC و امضای دیجیتال استفاده می کند، اما بر خلاف چیزی که اکثر مرم عقیده دارند، هیچ گونه رمز نگاری در این فرآیند به کار نرفته است. از لحاظ تکنیکی، بیت کوین از Elliptic Curve Digital Signature Algorithm برای تایید تراکنش ها استفاده می کند.

نحوه عملکرد امضای دیجیتال

در زمینه ارزهای رمز پایه، یک سیستم امضای دیجیتال معمولا شامل سه مرحله ابتدایی می شود. این مراحل عبارت اند از:

هش کردن اطلاعات

اولین قدم، هش کردن پیغام یا اطلاعات دیجیتال است. این کار با ارسال اطلاعات از طریق یک الگوریتم هش کردن انجام می شود، تا یک هش ولیو ایجاد شود. همان طور که اشاره شد، ممکن است سایز پیام ها تفاوت زیادی با یک دیگر داشته باشد، اما هنگامی که هش شوند، تمامی هش ولیوهای آن ها یک طول خواهند داشت. این ابتدایی ترین ویژگی یک تابع هش است.

هر چند، هش کردن اطلاعات، از ملزومات ساخت یم امضای دیجیتال نیست، چرا که افراد می توانند از یک کلید خصوصی برای امضای پیغامی که هش نشده باشد استفاده نمایند. اما برای ارزهای دیجیتال، این اطلاعات همیشه هش شده هست، چرا که کار کردن با دایجست هایی با طول یکسان، کل فرآیند را بسیار آسان تر می سازد.

امضا کردن

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

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

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

تایید

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

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

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

اهمیت امضای دیجیتال

معمولا از امضاهای دیجیتال برای رسیدن به سه هدف استفاده می شود: یکپارچگی اطلاعات، شناسایی و عدم تکذیب استفاده می شود.

موارد استفاده

امضاهای دیجیتال را می توان در انواع مختلفی از اسناد و گواهی های دیجیتال به کار برد. به همین خاطر آن ها موارد استفاده متعددی دارند. برخی از معمول ترین موارد استفاده امضاهای دیجیتال عبارت اند از:

محدودیت های امضای دیجیتال

چالش های اصلی که طرح های امضای دیجیتال با آن ها رو به رو می شوند، حداقل بر سه الزام تکیه دارند:

امضای دیجیتال در برابر امضای الکترونیک

امضای دیجیتال یک عبارت تکنیکی است که نتیجه یک فرآیند رمز نگاری شده را توضیح می دهد، که می تواند اعتبار دنباله ای از اطلاعات را تایید کند. اما عبارت امضای الکترونیکی یا e-signature، یک عبارت قانونی است که به صورت قانونی تعریف می شود.

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

امضاهای الکترونیکی برای این که دارای اعتبار باشند، باید شامل این سه مورد شوند:

امضای دیجیتال به خودی خود می تواند این نیازها را برطرف کند و به عنوان یک امضای الکترونیکی در نظر گرفته شود:

امضاهای دیجیتال شناسایی شده، اثباتی رمز نگاری شده بر این هستند که یک سند توسط ماهیت مربوطه امضا شده و آن سند جایگزین نشده است، اما همه امضاهای الکترونیکی نمی توانند این چنین ضمانتی را ایجاد کنند.

سخن آخر

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

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

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

خروج از نسخه موبایل