How to use digital signature in gpg

  • فرض کنید شخص A قصد فرستادن یک فایل (رمز شده یا رمز نشده) برای شخص B را دارد.
  • شخص A برای این که مطمئن شود فایل اصلی به شخص B می‌رسد از امضای دیجیتال استفاده می‌کند.
  • شخص A برای امضای دیجیتال باید از کلیدی استفاده کند که تنها و فقط و فقط در اختیار خودش است یعنی کلید خصوصی
  • پس در نتیجه شخص A برای اعمال امضای دیجیتال بر روی یک فایل از کلید خصوصی خودش استفاده می‌کند.
  • در نتیجه شخص B برای Verify کردن امضای دیجیتال از کلید عمومی شخص A استفاده می‌کند.
  • نکته : برای زدن امضای دیجیتال پای یک فایل نیازی نیست تا حتما ان فایل یک فایل رمزشده باشد. می‌تواند یک فایل متنی ساده و بدون رمز باشد.
  • به منظور اعمال امضای دیجیتال به صورت زیر عمل کنید.

  • در دستور بالا امضای دیجیتال با کلید خصوصی با شناسه‌ی 8C13D74 برای پرونده‌ی file.txt در نظر گرفته می‌شود.
  • با اجرای دستور بالا یک پرونده با نام file.txt.asc ساخته می‌شود که محتوای آن به صورت زیر است.

  • عبارت hi در واقع محتوای پرونده‌ی file.txt می‌باشد.
  • در مثال بالا فایل به صورت متنی و ascii بود. حال فرض کنید یک فایل باینری در اختیار دارید در این صورت طبیعتا نمی‌توان امضای دیجیتال را به آخر فایل اضافه کرد.
  • در این صورت امضای دیجیتال درون یک فایل دیگر با همان نام ریخته می‌شود.
  • برای اعمال امضای دیجیتال در داخل یکی فایل دیگر به صورت زیر عمل نمایید.

  • در دستور بالا محتوای امضای دیجیتال به صورت ASCII درون پرونده‌ی file.txt.sig ریخته می‌شود.
  • حال کافیست دو پرونده‌ی file.txt و file.txt.sig برای شخص B فرستاده شود.

  • حال شخص B با استفاده از کلید عمومی شخص A که در اختیارش است ، می‌تواند این امضای دیجیتال را Verify کند. برای این منظور به صورت زیر عمل کنید.

  • در دستور بالا اصلا نیازی نیست که از سویچ recipient– استفاده شود. این موضوع به صورت خودکار توسط ابزار gpg حل می‌شود.
  • در صورتی که دستور بالا به درستی اجرا شود یا به طور دقیق تر در صورتی که امضای دیجیتال صحیح باشد ، با پیغام good signature روبه‌رو خواهید شد.