تابع هش- این تابعی است که داده ها (فایل یا سند) را به یک کد دیجیتال کوتاه تبدیل می کند.

مثلا متن را بازنویسی می کنم
"شعبه Pivnichna از RGUITP"
کد y
745

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

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

تابع هش برای فشرده سازی سند M که امضا می شود به ده ها یا صدها بیت استفاده می شود. تابع هش h( ) اعلان (سند) M تاریخ ثابت را به عنوان آرگومان می گیرد و مقدار هش h(M)=N تاریخ ثابت را می چرخاند. لطفاً اطمینان حاصل کنید که اطلاعات هش شده به ارسال دوبار اعلان اصلی در روز قبل ارسال شده است. ردیابی نشان می دهد که مقادیر تابع هش h(M) را می توان در سند M ذخیره کرد و به شما امکان می دهد خود سند M را به روز کنید.

تابع هش در ارضای یک دسته کلی از ذهن ها مقصر است:

    تابع هش ممکن است به تمام تغییرات در متن M حساس باشد، مانند درج، حذف، تنظیم مجدد و غیره.

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

    این احتمال وجود دارد که مقادیر تابع هش دو سند جداگانه (صرف نظر از همتایان آنها) برابر باشد، ممکن است ناچیز باشد.

مثلا،مقدار مجموع کدهای کاراکتر اسکی 65(A)+66(B)+67(C)=198 است. در حالت ایده آل، مقدار تابع هش باید منحصر به فرد باشد. عدد 198 ممکن است فراتر از ABC بچرخد. در عمل، این همیشه امکان پذیر نیست (در حالتی که دو دنباله متفاوت از نمادها یک هش را به اشتراک می گذارند، به آن کلوسوس گفته می شود). شاخص هایی برای اعمال در تابع هش برگشت ناپذیری ذهنی: توبتو امکان به روز رسانی ردیف خروجی بعد از مقادیر وجود ندارد. لب به لب کلاسیک با این عملکرد: MD5 که برای بررسی یکپارچگی تصاویر ISO وارداتی استفاده می شود. برای MD5 و موقعیت‌های مشابه، واقعیت حتی منفی‌تر است: «سطح غیرممکن» عملکرد هش را کاهش می‌دهد و به‌عنوان مثال، اجازه می‌دهد با دانستن هش MD5 خود، رمز عبور انتخاب کنید.
توابع هش رمزنگاری به دو دسته تقسیم می شوند:

توابع هش بدون کلید (MDC (تغییر (دستکاری) شناسایی کد) - کد)،

- هش- کارکردجکلید(MAC (کد احراز هویت پیام) - Kodi).

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

توابع هش ضعیف،

توابع هش قوی.

یک تابع هش ضعیف، تابع یک طرفه H(x) نامیده می شود که ذهن امروزی را خوشحال می کند:

1) آرگومان x می تواند برای مدت طولانی در یک ردیف باشد.

2) مقدار H(x) ممکن است نزدیک به مقدار ثابت باشد.

3) محاسبه مقادیر H(x) آسان است.

4) برای هر x ثابتی از نظر محاسباتی شناخت دیگری غیرممکن است

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

هیچ رابطه روشنی بین داده های خروجی و کد هش وجود ندارد. بنابراین، واضح است که هیچ حجم عظیمی از داده برای تولید کدهای هش جدید وجود ندارد - اصطلاحاً برخورد. قابلیت اطمینان سکه نقش مهمی در تخمین "ظرفیت" تابع هش دارد.

کنترل مبالغ

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

برای سرعت محاسبات، ده‌ها و صدها برابر سریع‌تر، توابع هش رمزنگاری پایین‌تر در پیاده‌سازی سخت‌افزار بسیار ساده‌تر هستند.

معاوضه برای چنین نقدینگی بالایی فقدان ثبات رمزنگاری است - توانایی آسان برای تنظیم اعلان با مبلغی که از قبل پرداخت می کنید. همچنین اندازه چک جمع ها (تعداد معمولی: 32 بیت) را کمتر از هش های رمزنگاری (اعداد معمولی: 128، 160 و 256 بیت) در نظر بگیرید که به معنای احتمال برخورد نادرست است.

ساده ترین نسخه چنین الگوریتمی تقسیم پیام به کلمات 32 یا 16 بیتی و معنای آنهاست که مثلاً TCP/IP است.

به عنوان یک قاعده، قبل از چنین الگوریتمی، امکان پیاده‌سازی آسیاب‌های سخت‌افزاری معمولی، مانند تعدادی از بیت‌های آسیاب، برای رفتن به تاریخ معین وجود دارد. خانواده الگوریتم های t.z. "کد اضافی چرخه ای" همه اینها را برآورده می کند. برای مثال، CRC32 که در سخت افزار ZIP ذخیره می شود، از جمله این موارد است.

توابع هش رمزنگاری

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

Zastosuvannya heshuvannya

توابع هش همچنین در ساختارهای داده مختلف - جداول هش و درختان دکارتی استفاده می شود. روش های مختلفی برای استفاده از تابع هش وجود دارد:

  • ترکیب خوب داده ها
  • الگوریتم محاسبه سریع

داده های حیوانات

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

بررسی وجود عفو

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

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

چک کردن کلمه عبور

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

سیستم عامل می تواند گنو/لینوکس و مایکروسافت ویندوز XP باشد. داده ها از مقدار هش عبارات رمز عبور از سوابق حساب مشتریان ذخیره می شود.

من به سرعت به دنبال داده ها خواهم بود

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

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

لیست الگوریتم ها

  • SHA-2 (SHA-224، SHA-256، SHA-384، SHA-512)
  • RIPEMD-160
  • RIPEMD-320
  • اسنفرو
  • ببر (گرداب
  • IP Internet Checksum (RFC 1071)

پوسیلانیا

بنیاد ویکی مدیا 2010.

  • هشان محیان
  • کد هش

تعجب کنید که "عملکرد هش" در فرهنگ های دیگر چیست:

    تابع هش- تابعی که با هش کردن آرایه ای از داده ها از طریق تبدیل اضافی مقدار از یک کثرت (حتی) بزرگ مقدار (کلا) کمتر از مقدار غیرشخصی کار می کند. به انگلیسی: Hash function Div. همچنین: الگوریتم های رمزنگاری مالی... ... فرهنگ لغت مالی

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

    تابع هش یک طرفه- یک تابع هش، که اساساً یک تابع غیر قابل برگشت است. به زبان انگلیسی: یک طرفه تابع هش Div. همچنین: الگوریتم های رمزنگاری دیکشنری مالی فینام... فرهنگ لغت مالی

    TIGER - تابع هش- تابع هش TIGER که توسط Ros Anderson و Eli Beham در سال 1996 توسعه یافت. تابع هش TIGER یک تابع هش سوئدی جدید است که حتی توسط سوئدی در رایانه های فعلی، Zocrema و رایانه های 64 بیتی استفاده شده است. ببر... ... ویکی پدیا

    تابع هش یک طرفه- برای یک تابع یک طرفه، از نظر محاسباتی غیرممکن است که دو آرگومان مختلف را بشناسیم که مقادیر آنها ترکیب شده اند. [] موضوع حفاظت از اطلاعات EN تابع هش یک طرفه… مشاور ترجمه فنی

    ببر (عملکرد هش)- تابع هش ببر، که توسط Ros Anderson و Eli Beham در سال 1995 توسعه یافت. Tiger برای بازی های ویدئویی به ویژه سریع در رایانه های 64 بیتی در نظر گرفته شده است. ببر هیچ گونه محدودیتی برای ثبت اختراع ندارد، می توان آن را آزادانه به عنوان ... ویکی پدیا کپی رایت کرد

    عملکرد heshuvannya- Heshfunkiya 1. تابع، yak keru، فرآیند Dani's Dani در جدول هش، استعلام می کند (آدرس های بیش از - ارشد. 2. عملکرد، قطعه کولی ویدکریت را در رمزگذاری ryksovani dovzhini فشار می دهد. . ........ مشاور ترجمه فنی

    جدول هش- جدول هش برنامه ریزی شده دارای ساختار داده ای است که رابط آرایه انجمنی را پیاده سازی می کند و خود به شما امکان می دهد شرط ها (کلید، ارزش) را ذخیره کنید و سه عملیات ذخیره کنید: عملیات اضافه کردن شرط جدید، عملیات جستجو و عملیات. vidalnya… ویکی پدیا

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

    مجموعه توابع هش- یک تابع هش H تابع هش با دو بلوک داده ورودی مختلف x و y برخورد می کند به طوری که H(x) = H(y). برخورد برای اکثر توابع هش وجود دارد، اما برای توابع هش "خوب"، فراوانی آنها نزدیک به حداقل نظری است. در... ... ویکی پدیا

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

این چیه؟

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

مشخصات

بیایید نگاهی به ویژگی های کلیدی الگوریتم های ردیابی بیندازیم. میان اینها:

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

در میان دیگر مهمترین قدرت های توابع هش:

  • اهمیت جمع‌آوری توده‌های بلال از داده‌های طولانی مدت؛
  • بلوک های هش شده dovzhin ثابت را تشکیل دهید.
  • مقادیر تابع را در خروجی ها به صورت اتمی توزیع کنید.

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

Vimogi برای هش توابع

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

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

ساختار

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

چه نوع ساختاری می تواند تابع هش داشته باشد که می تواند برای اهداف مشابه استفاده شود؟ نمونه ای از این می تواند به شرح زیر باشد: H (هش، سپس هش) = f (T (متن)، H1)، که در آن H1 الگوریتم پردازش متن T است. این تابع T را به گونه ای هش می کند که بدون دانستن H1 ، به عنوان یک فایل معتبر عملاً غیرممکن باز می شود.

استفاده از توابع هش در عمل: اکتساب فایل

اکنون واضح است که استفاده از تابع هش عملی است. کار الگوریتم‌های پشتیبانی ممکن است در حین نوشتن اسکریپت‌های وارد کردن فایل‌ها از سرورهای اینترنتی گیر کند.

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

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

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

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

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

چک کردن رمزهای عبور

یکی دیگر از زمینه های احتمالی هش، سازماندهی الگوریتم های تأیید رمز عبور است که برای متمایز کردن دسترسی به این منابع و سایر منابع فایل نصب شده است. چگونه می توان این نوع توابع هش را تحت تأثیر چنین وظایفی قرار داد؟ خیلی ساده.

در سمت راست، در اکثر سرورهایی که دسترسی به آنها نیاز به جداسازی دارد، رمزهای عبور به شکل مقادیر هش ذخیره می شوند. این کاملاً منطقی است - اگر گذرواژه‌ها در فرم متن خروجی ارائه می‌شدند، هکرهایی که از دسترسی به آنها محروم بودند به راحتی می‌توانستند داده‌های مخفی را بخوانند. محاسبه رمز عبور بر اساس هش آسان نیست.

هنگامی که الگوریتم ها در نظر گرفته می شوند، روند بررسی دسترسی مشتری چگونه است؟ رمز عبور وارد شده توسط کاربر توسط آنچه در تابع هش ذخیره شده در سرور ثبت شده است تأیید می شود. به محض ذخیره مقادیر بلوک های متنی، کاربر دسترسی لازم به منابع را رد می کند.

به عنوان یک ابزار تأیید رمز عبور، می توان از ساده ترین تابع هش استفاده کرد. در عمل، هکرهای فناوری اطلاعات اغلب از الگوریتم‌های رمزنگاری پیچیده و بسیار پیچیده استفاده می‌کنند. به عنوان یک قاعده، آنها باید از استانداردهای تعیین شده برای انتقال داده ها از طریق یک کانال دزدیده شده پیروی کنند - به طوری که هکرها نتوانند رمز عبوری را که از رایانه کاربر به سرور منتقل می شود کشف یا کشف کنند - قبل از اینکه بتوانند به بلوک های متن هش شده دسترسی پیدا کنند.

مجموعه توابع هش

از نظر تئوری، تابع هش می تواند پدیده ای مانند برخورد را مدیریت کند. اصل این چیست؟ برخورد تابع هش وضعیتی است که دو فایل مختلف حاوی کد هش یکسانی هستند. این امکان پذیر است، زیرا انتهای دنباله هدف نمادها کوچک خواهد بود. در این صورت، قابلیت اطمینان بازیابی هش یک مزیت خواهد بود.

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

تاریخ ظاهر شد

بنیانگذاران تئوری تابع هش را می توان به جانشینان کارتر، وگمن، سیمونسون و بیربرائر نسبت داد. در نسخه‌های اول، الگوریتم‌های پیشرفته به‌عنوان ابزاری برای شکل‌دهی تصاویر منحصربه‌فرد از دنباله‌های نمادها از زمان‌های دور با روشی بیشتر برای شناسایی و بررسی ارتباط آنها استفاده می‌شد. هش خود شما، مطابق با معیارهای مشخص شده، مسئول 30-512 بیت است. به ویژه، قدرت قدرتمند این توابع به عنوان استفاده از آنها به عنوان منبعی برای جستجوی سریع فایل ها یا مرتب سازی آنها دیده می شد.

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

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

هنگام رمزگذاری، می توانید به طور گسترده از استانداردهای MD4 و MD5 استفاده کنید. یکی دیگر از الگوریتم های رمزنگاری محبوب SHA-1 است. Zokrem، VIN با اندازه هش 160 بیت مشخص می شود که بزرگتر از MD5 است - این استاندارد از 128 بیت پشتیبانی می کند. استانداردهای روسی که توابع هش را تنظیم می کنند عبارتند از GOST R 34.11-94 و همچنین GOST R 34.11-2012 که جایگزین آن شد. می توان تعیین کرد که مقدار هش که توسط الگوریتم های اتخاذ شده توسط فدراسیون روسیه منتقل می شود، 256 بیت می شود.

استانداردهایی که مورد بحث قرار می گیرند ممکن است از مبانی مختلفی طبقه بندی شوند. به عنوان مثال، کسانی هستند که از الگوریتم های بلوکی و تخصصی استفاده می کنند. سادگی محاسبه بر اساس استانداردهای نوع اول اغلب با دقت پایین آن همراه است. بنابراین، به عنوان جایگزینی برای الگوریتم‌های بلوک، می‌توان از الگوریتم‌هایی که عملیات محاسباتی غیرضروری کمتری را شامل می‌شوند، استفاده کرد. استانداردهایی که به طور کلی پذیرفته شده اند عبارتند از MD4، MD5 و SHA. بیایید به ویژگی های الگوریتم های هش ویژه با استفاده از گزارش SHA نگاه کنیم.

ویژگی های الگوریتم SHA

استفاده از تابع هش که بر اساس استاندارد SHA است، اغلب در توسعه قابلیت های امضای دیجیتال برای اسناد DSA استفاده می شود. همانطور که در بالا اشاره کردیم، الگوریتم SHA از هش 160 بیتی پشتیبانی می کند (که خلاصه ای از دنباله کاراکترها را ارائه می دهد). استاندارد، همانطور که در حال حاضر وجود دارد، تقسیم آرایه داده به بلوک های 512 بیتی است. در صورت لزوم، اگر باقیمانده بلوک به رقم تعیین شده نرسد، ساختار فایل با 1 و تعداد صفرهای لازم تکمیل می شود. همچنین در انتهای بلوک تایید کدی وارد می شود که تاریخ اطلاع رسانی را ثبت می کند. الگوریتم در نظر گرفته شده از 80 تابع منطقی استفاده می کند که از آنها 3 کلمه پردازش می شود که در 32 بیت ارائه شده است. همچنین استاندارد SHA دارای 4 ثابت به آن منتقل شده است.

ارتقاء الگوریتم های هش

ما بر اساس استاندارد روسی GOST R 34.11-94 و SHA آمریکایی که با دقت بیشتری به آنها نگاه کردیم، به ویژگی های توابع هش که با استانداردهای مختلف متفاوت است، بستگی داریم. اول از همه، اجازه دهید توجه داشته باشیم که الگوریتمی که فدراسیون روسیه را تجزیه می کند، 4 عملیات رمزگذاری را برای 1 چرخه منتقل می کند. این مربوط به 128 دور است. در یک دور، زمانی که SHA درگیر است، محاسبه حدود 20 تیم منتقل می شود، در حالی که در مجموع 80 دور وجود دارد، بنابراین، SHA به یک چرخه اجازه می دهد تا 512 بیت داده خروجی را پردازش کند. در آن زمان، همانطور که از استاندارد روسی استفاده می شود، عملیات در هر چرخه 256 بیت داده انجام می شود.

ویژگی های الگوریتم جدید روسی

ما تصمیم گرفتیم که استاندارد GOST R 34.11-94 با استاندارد جدیدی جایگزین شده است - GOST R 34.11-2012 "Stribog". ما جزئیات گزارش را دنبال خواهیم کرد.

با پیروی از این استاندارد، توابع هش رمزنگاری را می توان در ارتباط با الگوریتم های در نظر گرفته شده پیاده سازی کرد. می توان اشاره کرد که استاندارد جدید روسیه از بلوک داده ورودی 512 بیتی پشتیبانی می کند. مزایای اصلی GOST R 34.11-2012:

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

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

مشخصات توابع هش رمزنگاری

بیایید نگاهی بیندازیم که چگونه می توان از انواع الگوریتم هایی که مطالعه کرده ایم در زمینه رمزنگاری استفاده کرد. همانطور که در بالا گفته شد، مزیت کلیدی عملکردهای ضروری، مقاومت در برابر برخورد است. تقصیر مقادیر تابع هش فرمت‌شده نیست که تکرار می‌شوند، زیرا مقادیر از قبل در ساختار الگوریتم وجود دارند. توابع رمزنگاری که معیارهای دیگر را برآورده می کنند نیز ممکن است مشابه باشند. واضح است که از نظر تئوری هنوز امکان به روز رسانی فایل خروجی بر اساس هش وجود دارد، به خصوص اگر ابزار محاسباتی قدرتمندی در دسترس باشد. با این حال، چنین سناریویی باید به حداقل الگوریتم های رمزگذاری قابل اعتماد منتقل شود. بنابراین، محاسبه تابع هش حتی دشوارتر خواهد بود، زیرا ثبات محاسباتی آن با فرمول 2 (n/2) سازگار است.

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

طرح های تکرار شونده

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

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

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

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

الگوریتم بلوک

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

با این حال، همانطور که در بالا اشاره کردیم، با در نظر گرفتن انواع مختلف توابع هش، الگوریتم های بلوک اغلب با نیاز به تلاش محاسباتی بزرگ همراه هستند. اگر آنها در دسترس نباشند، سرعت پردازش فایل ممکن است برای کارهای عملی شامل توابع هش مختلف کافی نباشد. امروزه، با استفاده از الگوریتم‌هایی که در نظر گرفته‌ایم - MD5، SHA، رمزگذاری استانداردهای رمزنگاری روسی، می‌توان با تعداد کمی عملیات روی جریان‌های داده خروجی، به بالاترین سطح وظایف مشابه، قدرت رمزنگاری لازم را تحقق بخشید.

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

روش احراز هویت اسناد الکترونیکی محافظت در برابر انواع احتمالی فعالیت های مخربی را که ممکن است رخ دهد فراهم می کند:

  • ازدحام بیش از حد فعال- مهاجمی که با اتصال به محدودیت، از طریق اسناد (فایل ها) حرکت می کند و آنها را تغییر می دهد.
  • بالماسکه- مشترک C سندی را به نام مشترک A برای مشترک بارگذاری می کند.
  • یاغی- مشترک الف اعلام می کند که به طور اجباری به مشترک B اطلاع نداده است، بلکه به زور می خواسته است.
  • تغییر دادن- مشترک تغییر می کند یا سند جدیدی تشکیل می دهد و اعلام می کند که حساب خود را به عنوان مشترک A رد کرده است.
  • تکرار- مشترک C، قبل از ارسال، سندی را که مشترک برای مشترک B ارسال کرده است، تکرار می کند.

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

هنگام پردازش اسناد به صورت الکترونیکی، روش‌های سنتی برای ایجاد اصالت در پشت امضای دست‌نویس و مهر روی یک سند کاغذی کاملاً غیرقابل قبول است. راه حل های اساسی جدید شامل امضای دیجیتال الکترونیکی ( EDS).

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

  • متذکر می شوم که متن امضاها مشابه شخصی است که امضا کرده است.
  • به هیچ فردی این فرصت را نمی دهد که با درخواست های مرتبط با متن امضا شده موافقت کند.
  • یکپارچگی متن امضا شده را تضمین می کند.

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

سیستم EDS شامل دو رویه است: 1) رویه ارائه امضا. 2) روش تأیید امضا. رویه نصب امضا، کلید مخفی فرستنده اعلان و روش تأیید امضا، کلید مخفی فرستنده است.

هنگام تشکیل یک امضای دیجیتال دیجیتال، فرستنده آن را محاسبه می کند تابع هش h(M) به متنی که توسط M امضا شده است. محاسبه مقدار تابع هش h(M) یک بلوک کوتاه از اطلاعات m است که کل متن M را به عنوان یک کل مشخص می کند. سپس عدد m با کلید مخفی کارگردان رمزگذاری می شود. در این مرحله، یک جفت عدد انتخاب می شود - EDS برای متن داده شده M.

هنگام بازبینی EDS، اپراتور دوباره تابع هش m = h(M) متن M دریافت شده توسط کانال را محاسبه می کند، پس از آن، با استفاده از کلید خصوصی فرستنده، تأیید می کند که امضای مربوط به مقدار محاسبه شده m هش است. کارکرد.

یک نکته مهم برای سیستم EDSارسال جزئیات EDS یک مشتری بدون اطلاع از کلید امضای مخفی غیرممکن است.

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

امضای شما باید شامل اطلاعات زیر باشد:

  • تاریخ امضا؛
  • مدت تکمیل امضای کلید؛
  • اطلاعات شخصی که پرونده را امضا کرده است (F.I.0.، posada، نام کوتاه شرکت)؛
  • شناسه امضاکننده (نام کلید خصوصی)؛
  • امضای دیجیتال Vlasne.

2. توابع هش تک مستقیم

تابع هش هش- جزئیات و ترکیب) برای فشرده سازی سندی که امضا می شود به ده ها یا صدها بیت استفاده می شود. تابع هش h(·) اعلان (سند) M تاریخ ثابت را به عنوان آرگومان می گیرد و مقدار هش h(M)=N تاریخ ثابت را می چرخاند. لطفاً اطمینان حاصل کنید که اطلاعات هش شده به ارسال دوبار اعلان اصلی در روز قبل ارسال شده است. ردیابی نشان می دهد که مقادیر تابع هش h(M) را می توان در سند M ذخیره کرد و به شما امکان می دهد خود سند M را به روز کنید.

تابع هش در ارضای یک دسته کلی از ذهن ها مقصر است:

  1. تابع هش ممکن است به تمام تغییرات در متن M حساس باشد، مانند درج، حذف، تنظیم مجدد و غیره.
  2. تابع هش مسئول قدرت برگشت ناپذیری است، بنابراین به انتخاب سند M، که برای مقدار تابع هش ضروری است، اختصاص داده می شود.
  3. این احتمال وجود دارد که مقادیر تابع هش دو سند جداگانه (صرف نظر از همتایان آنها) برابر باشد، ممکن است ناچیز باشد.

اکثر توابع هش بر اساس یک تابع یک طرفه f(·) خواهند بود که با دو مقدار ورودی منهای n مقدار خروجی منهای n ایجاد می کند. این ورودی ها بلوکی از متن خروجی M و مقدار هش N i-1 از بلوک قبلی متن هستند (شکل 1).

عکس. 1. بر اساس یک تابع هش یک طرفه

Н i = f(М i، Н i-1).

مقدار هش که با وارد کردن بلوک باقیمانده متن محاسبه می شود، به مقدار هش تمام اطلاعات M تبدیل می شود.

در نتیجه، تابع هش تک مستقیم ابتدا خروجی تاریخ ثابت n (مستقل از تاریخ متن) را تشکیل می دهد.

توابع هش اساسی

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

Kheshuvannya با ظرفیت متوسط ​​اضافی n بیت انجام می شود. کدام مقدار cob بر اساس همه طرف های مقدار انتخاب می شود، به عنوان مثال، 0.

داده های ورودی به بلوک (k-n) بیت تقسیم می شوند. در هر تکرار هش کردن مقادیر مقدار میانی، محاسبه شده در تکرار قبلی، آخرین بخش (k-n) بیت از داده های ورودی ترکیب می شود و روی بلوک بیت بالا، که بالاترین است، اساسا بازآفرینی کرد. از طریق جنگ، تمام متن ورودی «مخلوط» با مقادیر cob با اندازه مشابه به نظر می رسد. با توجه به ماهیت تبدیل، تابع اصلی اغلب نامیده می شود فشرده کننده. مقدار مقدار اضافی پس از تکرار نهایی به عنوان خروجی تابع هش یافت می شود (شکل 2). گاهی اوقات، بیش از مقادیری که بیرون آمده است، تحولات اضافی ایجاد می شود. در این حالت عملکردی که فشرده می‌شود با دوام کافی طراحی شده است که دوباره طراحی شده است.

هنگام طراحی یک تابع هش در یک طرح تکراری، دو رابطه قدرت متقابل ایجاد می‌شود: نحوه برخورد با داده‌هایی که مضرب عدد (k-n) نیستند، و نحوه اضافه کردن باقیمانده سند به مجموع هش، در صورت لزوم. دو گزینه برای بهترین تغذیه وجود دارد. در نسخه اول سند، قبل از هش، یک فیلد تاریخ ثابت (مثلاً 32 بیت) اضافه می شود که در آن تاریخ خروجی در یک نمای دوتایی بر روی متن نوشته می شود. سپس بلوک داده ترکیبی با صفر تا نزدیکترین مضرب (k-n) اندازه بیت پر می شود. در یک گزینه دیگر، سند با یک بیت سمت راست "1" تکمیل می شود، و سپس تا یک عدد (k-n) از اندازه بیت با بیت های "0" تکمیل می شود. کدام گزینه به فیلد dozhni نیاز دارد - هر دو سند مختلف پس از تأیید بین بخش ها یکسان نمی شوند.

علاوه بر الگوریتم‌های رایج درهم‌سازی یک‌گذر، الگوریتم‌های rich-pass نیز وجود دارد. در این حالت، بلوک ورودی داده در مرحله گسترش چندین بار تکرار می‌شود و سپس به نزدیک‌ترین قسمت گسترش می‌یابد.


شکل 2. عملکرد هش تعاملی

توابع هش یک طرفه بر اساس الگوریتم های بلوک متقارن

تابع هش یک طرفه را می توان به عنوان یک الگوریتم بلوک متقارن استفاده کرد. واضح ترین رویکرد رمزگذاری پیام با استفاده از یک الگوریتم بلوکی مانند CBC یا CFB با استفاده از یک کلید ثابت و مقداری بردار اولیه IV است. بلاک باقی مانده از متن رمزی را می توان به عنوان هش مقدار پیام M مشاهده کرد. با این رویکرد، هرگز نمی توان یک تابع هش یک طرفه ایمن به دست آورد، بلکه فقط کد احراز هویت پیام MAC (کد احراز هویت پیام) قابل بازیابی است. .

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

در حالی که اکثر الگوریتم های بلوک 64 بیتی هستند، برخی از طرح های هش به گونه ای طراحی شده اند که مقدار هش به اندازه ای کوچک باشد که با مقدار آخرین بلوک برابری کند.

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

H 0 = I n، H i = E A (B) Å C، de Å - مدول جمع 2 (که شامل ABO می شود). من ن - دیاکه ویپادکووه کوچاتکوه معنی; A، B، می تواند مقادیر M i، H i-1، (M i Å H i-1) یا به عنوان ثابت را بگیرد.


شکل 3. طرح تشکیل تابع هش تنظیم شده است

پیام M به بلوک های M i از dowzhin پذیرفته شده تقسیم می شود که از طریق آنها پردازش می شود.

سه متغیر مختلف A، U، Z می توانند یکی از چهار مقدار ممکن را بگیرند، بنابراین در اصل، 64 نوع از این نوع طرح را می توان انتخاب کرد. از این میان، 52 گزینه بسیار ضعیف یا ناامن هستند. 12 طرح هش امن دیگر، که در آن‌ها همان مقدار هش قدیمی‌تر از آخرین بلوک است، در جدول 1 مجدداً مرتب شده‌اند.

میز 1
شماره طرحعملکرد Heshuvannya
1 H i = E H i-1 (M i) Å M i
2 N i = E H i-1 (M i Å N i-1) Å M i Å N i-1
3 H i = E H i-1 (M i) Å M i Å H i-1
4 H i = E H i-1 (M i Å H i-1) Å M i
5 Н i = Е M i (Н i-1) Å Н i-1
6 N i = E M i (M i Å N i-1) Å M i Å N i-1
7 N i = E M i (H i-1) Å M i Å N i-1
8 N i = E M i (M i Å N i-1) Å N i-1
9 H i = E M i Å H i-1 (M i) Å M i
10 H i = E M i Å H i-1 (H i-1) Å H i-1
11 H i = E M i Å H i-1 (M i) Å H i-1
12 H i = E M i Å H i-1 (H i-1) Å M i

چند طرح هش اول که در برابر همه حملات ایمن هستند در شکل 4 نشان داده شده است.


شکل 4. طرح های Chotiri برای heshuvannya ایمن

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

الگوریتم MD5

الگوریتم MD5(پیام خلاصه شماره 5) توسط رونالد ریورز. MD5 شامل 4 تبدیل است که چندین بار در سه مقدار 32 بیتی U، V و W تکرار می شوند:

F(U، V، W) = (U و V) یا ((NO U) و W) g (U، V، W) = (U و W) یا (V AND (NO T W)) h (U، V، W) = U XOR V XOR W k (U، V، W) = V XOR (U OR (NOT W)).

از ثابت های زیر در الگوریتم استفاده می شود:

  • ذرت ثابت مقادیر میانی - H=67452301 16، H=EFCDAB89 16، H=98BADCFE 16، H=10325476 16;
  • ثابت های اضافه شده در دور - y[j]=HIGHEST_32_BITS(ABS(SIN(j+1))) j=0...63، که در آن تابع HIGHEST_32_BITS(X) 32 بیت مهم را از رکورد دوگانه کسری اضافه می کند. عدد X، و عملوند SIN (j+1) است که از رادیان گرفته شده است.
  • آرایه به ترتیب انتخاب وسط ها در دور - z = (0، 1، 2، 3، 4، 5، 6، 7، 8، 9، 10، 11، 12، 13، 14، 15، 1، 6، 11 ، 0، 5، 10، 15، 4، 9، 14، 3، 8، 13، 2، 7، 12، 5، 8، 11، 4، 1، 4، 7، 10، 13، 0، 3، 6 ، 9، 12، 15، 2، 0، 7، 14، 5، 12، 3، 10، 1، 8، 15، 6، 13، 4، 11، 2، 9)؛
  • آرایه ای از مقادیر تخریب های چرخه ای بیت به سمت چپ - s = (7، 12، 17، 22، 7، 12، 17، 22، 7، 12، 17، 22، 7، 12، 17، 22، 5، 9، 14، 20، 5، 9، 14، 20، 5، 9، 14، 20، 5، 9، 14، 20، 4، 11، 16، 23، 4، 11، 16، 23، 4، 11، 16، 23، 4، 11، 16، 23، 6، 10، 15، 21، 6، 10، 15، 21، 6، 10، 15، 21، 6، 10، 15، 21).

در مرحله اولیه، بلوک داده ورودی با یک بیت "1" تکمیل می شود. سپس، چنین تعداد بیت "0" به بلوک اضافه می شود به طوری که مازاد تقسیم بلوک در 512 به 448 می شود. در نهایت یک مقدار 64 بیتی به بلوک اضافه می شود که کل باقیمانده را ذخیره می کند. سند جریان ورودی مضربی از 512 بیت است.

هنگامی که یک بلوک 512 بیتی نشان داده می شود، دارای 16 مقدار 32 بیتی X...X است، از تابعی عبور کنید که آن را فشرده می کند، که آن را با یک بلوک اضافی (H، H، H، H) مخلوط می کند:

(A,B,C,D) = (H,H,H,H) چرخه j از 0 تا 15 T = (A + f(B,C,D) + x] + y[j]) ROL s [ j] (A,B,C,D) = (D,B+T,B,C) پایان چرخه توسط j از 16 تا 31 T = (A + g(B,C,D) + x] + y [j]) ROL s[j] (A,B,C,D) = (D,B+T,B,C) پایان چرخه توسط j از 32 تا 47 T = (A + h(B, C, D ) + x] + y[j]) ROL s[j] (A,B,C,D) = (D,B+T,B,C) پایان چرخه توسط j از 48 تا 63 T = (A + k (B, C, D) + x] + y [j]) ROL s [j] (A, B, C, D) = (D, B + T, B, C) پایان چرخه (H، H، H، H) = (H+A، H+B، H+C، H+D)

هنگامی که تمام بلوک‌های 512 بیتی از طریق روش درهم‌آمیزی انجام می‌شوند، H,H,H,H هر ساعت تغییر می‌کنند و مقادیر 128 بیتی به خروجی تابع هش داده می‌شوند.

الگوریتم MD5، بر اساس توسعه پیشرفته Ronald Rivers MD4، ارزش بیشتری به حملات رمزنگاری خواهد داد. MD5 بسیار شبیه به MD4 است. اهمیت در ساده ترین تغییرات در الگوریتم های همپوشانی و در این واقعیت نهفته است که در MD4 48 پاس تبدیل اصلی وجود دارد، و در MD5 - 64. صرف نظر از محبوبیت زیاد، MD4 "بیشتر، اما به درستی" است، گاهی اوقات شر است. . انتشارات مربوط به حملات به الگوریتم بخشش به تازگی ظاهر شده است. سپس بیان شد که امکان یافتن دو بلوک ورودی از تابع فشرده سازی MD4 وجود دارد که خروجی جدیدی تولید کند. نارشتی، 1995، به سرنوشت نشان داده شد که برخورد چه معنایی دارد. "هش دو برابر کردن" به یک سند معتبر را می توان برای کمتر از نیم ساعت انجام داد و می توانید "هویت" یک سند جعلی را به دست آورید (یعنی وجود تنها چند کاراکتر ASCII با قوانین قدیمی "معقول" روتوش) - فقط در چند روز.

الگوریتم برای هش بدون فر SHA

الگوریتم هش بدون فر SNA (الگوریتم هش امن) بخش های NIST و NSA ایالات متحده در چارچوب استاندارد هش ایمن SHS (Secure Hash Standard) در سال 1992. الگوریتم هش برای تکالیف SNA برای vicoristan با الگوریتم امضای دیجیتال DSA ترکیب شده است.

هنگامی که یک پیام با طول کمتر از 264 بیت وارد می شود، الگوریتم SNA یک خروجی پیام 160 بیتی ایجاد می کند که خلاصه پیام MD (Message Digest) نامیده می شود. سپس این خلاصه اعلان به عنوان ورودی به الگوریتم DSA استفاده می شود، که امضای دیجیتال اعلان M را محاسبه می کند. تشکیل یک امضای دیجیتال برای خلاصه اعلان، و نه برای خود اعلان، فرآیند امضا را کارآمدتر می کند. در غیر این صورت، خلاصه اعلان بسیار کوتاهتر از خود اعلان خواهد بود.

همان خلاصه اطلاعیه منوط به محاسبه توسط خبرنگار است که حذف امضاها را تأیید می کند، در این صورت ورود به الگوریتم SNA با حذف اعلان M تعیین می شود.

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

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

پنج متغیر 32 بیتی به صورت زیر مقداردهی اولیه می شوند:

A = 0x67452301 B = 0xEFCDAB89 C = 0x98BADCFE D = 0x10325476 E = 0xC3D2E1F0

سپس حلقه سر با الگوریتم شروع می شود. 512 بیت اعلان در تمام بلوک های 512 بیتی موجود در اعلان دریافت می کند. پنج تغییر اول A، B، C، D، E با سایر تغییرات a، b، c، d، e کپی می شوند:

A = A، b = B، c = Z، d = D، e = E

چرخه سر شامل چهار چرخه 20 عمل پوستی است. عملیات پوسته یک تابع غیرخطی سه از پنج متغیر a، b، c، d، e را اجرا می کند و سپس یک اتصال و جمع وجود دارد.

الگوریتم SNA ممکن است مجموعه ای از توابع غیرخطی را ارائه دهد:

F t (X, Y, Z) = (X Ù Y) U ((Ø X) Ù Z) برای t = 0 ... 19, f t (X, Y, Z) = X Å Y Å Z برای t = 20...39، f t (X، Y، Z) = (X Y) Z (X Z) U (Y Z) برای t = 40...59، f t (X، Y، Z) = X Å Y Å Z برای t = 60...79 که t عدد عملیات است.

این الگوریتم همچنین شامل چندین ثابت است:

تا t = 0x5A827999 برای t = 0...19، تا t = 0x6ED9EVA1 برای t = 20...39، تا t = 0x8F1ВВСДС برای t = 40...59، تا t = 0xСА62С1D6 برای t = 60... 79.

بلوک پیام از شانزده کلمه 32 بیتی (M 0 ... M 15) به هشتاد کلمه 32 بیتی (W 0 ... W 79) با استفاده از یک الگوریتم اضافی تبدیل می شود:

W t = M t برای t = 0...15، W t = (W t-3 Å W t-8 Å W t-14 Å W t-16)<<< 1 для t = 16...79,
جایی که t - شماره عملیات، W t - t - بلوک فرعی اطلاعات توسعه یافته،<<< S - циклический сдвиг влево на S бит.

بر اساس معرفی آنها، چرخه اصلی هشتاد عملیات را می توان به شرح زیر توصیف کرد:

چرخه t در دمای 0 تا 79 = (a<<< 5) + f t (b, c, d) + е + W t + К t е = d d = с с = (b <<< 30) b = а а = ТЕМР конец_цикла

نمودار یک عملیات در شکل 5 نشان داده شده است.


شکل 5. طرح یک عملیات با استفاده از الگوریتم SHA

پس از اتمام حلقه سر، مقادیر a، b، c، d، e به A، C، D، E اضافه می شوند و الگوریتم برای پردازش بلوک داده 512 بیتی بعدی اقدام می کند. خروجی باقیمانده به عنوان ترکیبی از مقادیر A، U، Z، D، E تشکیل می شود.

گزینه های SHA و MD5 به شرح زیر است:

  • SNA از مقادیر هش 160 بیتی استفاده می کند که باعث می شود در برابر حملات brute-force و حملات روز ملی نسبت به MD5 که مقادیر هش 128 بیتی تولید می کند، مقاوم تر باشد.
  • تابع فشاری SHA از 80 کلمه تشکیل شده است و نه 64 کلمه مانند MD5.
  • گسترش داده‌های ورودی نه صرفاً با تکرار آنها به ترتیبی متفاوت، بلکه با فرمول تکراری انجام می‌شود.
  • فرآیند اختلاط ساده

استاندارد تابع هش ملی

استاندارد روسی GOST R 34.11-94به معنای یک الگوریتم و یک روش برای محاسبه یک تابع هش برای هر دنباله ای از کاراکترهای دوتایی است که شبیه به روش های رمزنگاری پردازش و محافظت از اطلاعات است. این استاندارد بر اساس الگوریتم رمزگذاری بلوک GOST 28147-89 است، اگرچه در اصل می توان از الگوریتم رمزگذاری بلوکی دیگری با یک بلوک 64 بیتی و یک کلید 256 بیتی استفاده کرد.

این تابع هش یک مقدار هش 256 بیتی تولید می کند.

تابع فشرده سازی Н i = f(М i، Н i-1) (جابجایی عملوند М i و Н i-1 با مقادیر 256 بیتی) با رتبه بعدی مشخص می شود:

  1. 4 کلید رمزگذاری Kj، j = 1...4 با اختلاط خطی M i، N i-1 و ثابت های مختلف C j ایجاد می شوند.
  2. کلید چرمی Kj برای رمزگذاری زیرکلمه های 64 بیتی hj کلمه Hi-1 در حالت جایگزینی ساده استفاده می شود:
    S i = E Kj (h j). دنباله حاصل از S 4 , S 3 , S 2 , S 1 به میزان 256 بیت در Clock Changer S ذخیره می شود.
  3. مقدار H i یک تابع تاشو، البته خطی، مخلوط S، M i، H i-1 است.

هنگام محاسبه مقدار هش باقیمانده M، مقادیر سه متغیر به هم پیوسته در نظر گرفته می شود:

N n - مقدار هش بلاک حافظه باقیمانده.
Z - مقدار جمع چک به دست آمده هنگام اضافه کردن 2 بلوک اعلان به ماژول.
ل – دووژینا یاد.

با سه تغییر و اضافه، بلوک M باقی مانده به صورت زیر در یک مقدار هش باقی مانده ترکیب می شود:

Н = f (Z Å М"، f (L، f(М، Н n))).

این تابع هش توسط استاندارد GOST R 34.11-94 برای استفاده از امضای دیجیتال الکترونیکی مطابق با استاندارد روسیه مشخص شده است.

3. الگوریتم های امضای دیجیتال الکترونیکی

فناوری سیستم EDS امکان مشاهده تعداد مشترکینی که اسناد الکترونیکی را یکی یکی امضا می کنند را منتقل می کند. یک جفت کلید برای هر مشترک ایجاد می شود: مخفی و خصوصی. کلید مخفی توسط مشترک در دبیرخانه ذخیره می شود و توسط او برای تشکیل یک امضای دیجیتال دیجیتال استفاده می شود. کلید خصوصی با سایر مشتریان مشترک است و برای تأیید امضای دیجیتالی صاحب سند الکترونیکی امضا شده استفاده می شود. در غیر این صورت، به نظر می رسد که کلید مخفی ابزار ضروری است که به شما امکان می دهد اعتبار سند الکترونیکی و امضای نویسنده را تأیید کنید. کلید خصوصی اجازه تعیین کلید خصوصی را نمی دهد.

برای تولید جفت کلید (مخفی و خصوصی) در الگوریتم های EDS، مانند سیستم های رمزگذاری نامتقارن، از طرح های ریاضی مختلفی استفاده می شود که بر اساس توابع یک طرفه ثابت هستند. این طرح ها به دو گروه تقسیم می شوند. این زیرفیلد بر اساس اصول محاسباتی پیچیده زیر است:

  • دانش فاکتورسازی (فاکتورسازی به عوامل) اعداد صحیح بزرگ؛
  • تنظیم لگاریتم گسسته

الگوریتم امضای دیجیتال RSA

اولین و شناخته شده ترین سیستم خاص EDS در کل جهان، سیستم بود RSA، که طرح ریاضی آن در سال 1977 شکسته شد. در موسسه فناوری ماساچوست، ایالات متحده آمریکا.

ابتدا باید یک جفت کلید (کلید مخفی و کلید خصوصی) را محاسبه کنید. که برای آن مدیر (نویسنده) اسناد الکترونیکی دو عدد اول بزرگ P و Q را محاسبه می کند و سپس واقعی آنها را پیدا می کند.

N = P * Q و مقدار تابع j (N) = (P-1) (Q-1).
بعد، راهنما تعداد E ذهن ها را محاسبه می کند: E £ j (N)، GCD (E, j (N)) = 1
آن عدد D از ذهن ها: D < N، E*D 1 (mod j (N)).

یک جفت اعداد (E, N) توسط یک کلید محافظت می شود. نویسنده این جفت شماره را به شرکای فهرست منتقل می کند تا امضای دیجیتالی آنها را تأیید کند. شماره D توسط نویسنده به عنوان یک کلید مخفی برای امضا ذخیره می شود.

طرح رسمی برای تشکیل و تأیید امضای دیجیتال RSA در شکل 6 نشان داده شده است.


شکل 6. طرح امضای دیجیتال RSA رسمی شده است

قابل قبول است که فرستنده بخواهد قبل از ارسال یک اعلان به M امضا کند. اولین پیام M (بلوک اطلاعات، فایل، جدول) با استفاده از یک تابع هش اضافی h(·) برای عدد صحیح m فشرده می شود:

M = h (M).

سپس امضای دیجیتال S را در سند الکترونیکی M، مقدار هش vikory m و کلید مخفی D را محاسبه می‌کنیم:

S = m D (mod N).

جفت (M, S) به عنوان یک سند الکترونیکی M که با امضای دیجیتال S امضا شده است به شریک نگهدارنده منتقل می شود و امضای S توسط صاحب کلید مخفی D تشکیل می شود.

پس از پذیرش شرط (M,S)، شرط‌گذار مقدار هش شرط M را به دو روش مختلف محاسبه می‌کند. ابتدا مقدار هش m" را با تبدیل رمزنگاری امضای S با کلید مخفی E به روز می کنیم:

M" = S E (mod N).

علاوه بر این، می توان نتیجه هش کردن پیام دریافتی M را با استفاده از یک تابع هش اضافی h(·) دانست:

M = h (M).

به محض اینکه برابری مقادیر محاسبه شده به دست آمد، سپس.

S E (mod N) = h (M)،
سپس مالک جفت (M, S) را صحیح تشخیص می دهد. ثابت شده است که فقط دارنده کلید مخفی D می تواند یک امضای دیجیتالی S را برای سند M ایجاد کند و محاسبه عدد مخفی D از عدد مخفی E با تقسیم ماژول N به ضریب ها آسان نیست.

علاوه بر این، می توان از نظر ریاضی ثابت کرد که نتیجه تأیید امضای دیجیتال S تنها در صورتی مثبت خواهد بود که هنگام محاسبه S، کلید مخفی D شناسایی شود که با کلید خصوصی E مطابقت دارد. بنابراین، کلید خصوصی E است. گاهی اوقات به نام "من با یک شناسه امضا کردم.

نقص در الگوریتم امضای دیجیتال RSA

  1. هنگام محاسبه ماژول N، کلیدهای E و D برای سیستم امضای دیجیتال RSA، لازم است تعداد زیادی ذهن اضافی را بررسی کنید که عملاً مهم است. ناشناخته بودن هر یک از این اذهان امکان جعل امضای دیجیتالی را از طرف کسی که چنین غیرقانونی را فاش می کند، فراهم می کند. در ساعت امضای اسناد مهم، اجازه چنین امکان نظری غیرممکن است.
  2. برای اطمینان از قدرت رمزنگاری امضای دیجیتال RSA، کاملاً ضروری است که جعل را مطابق با استاندارد ملی ایالات متحده برای رمزگذاری اطلاعات (الگوریتم DES) امتحان کنید. 10 18 لازم است هنگام محاسبه N، D و E مراقب باشید، تعداد کل برای پوست کمتر از 2512 (یا نزدیک به 10154) نباشد، که هزینه های محاسباتی زیادی را ایجاد می کند که بیش از 20 ... 30٪ از محاسبه هزینه های الگوریتم های دیگر از جمله امضای دیجیتال در حالی که در همان سطح از قدرت رمزنگاری صرفه جویی می شود.
  3. امضای دیجیتال RSA منجر به به اصطلاح حمله ضربی می شود. در غیر این صورت، الگوریتم امضای دیجیتال RSA به مهاجم این امکان را می دهد که بدون اطلاع از کلید مخفی، امضاهایی را در زیر چنین اسنادی تشکیل دهد که می تواند منجر به نتایج هش شود که می تواند توسط نتایج هش که قبلاً روی اسناد امضا شده است تعیین شود.

لب به لبمی توان تصور کرد که یک مهاجم می تواند سه پیام M1، M2، M3 را از این مقادیر هش بسازد.

M 1 = h (M 1)، m 2 = h (M 2)، m 3 = h (M 3)،

M 3 = m 1 * m 2 (mod N).

همچنین قابل قبول است که برای دو نفر م 1 و م 2 امضای قانونی آنها حذف شده باشد

S1 = m1D (mod N) S2 = m2D (mod N).

یک شخص مخرب دیگر می تواند به راحتی امضای S 3 را برای سند M 3 بدون دانستن کلید مخفی D محاسبه کند:

S 3 = S 1 * S 2 (mod N).

درست است، واقعی،

S 1 * S 2 (mod N) = m 1 D * m 2 D (Mod N) = (m 1 m 2) D (mod N) = m 3 D (mod N) = S 3.

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

الگوریتم امضای دیجیتال الگامال (EGSA)

نام EGSA شبیه کلمات E_Gama_ Signature Algorithm (الگوریتم امضای دیجیتال الگامال) است. ایده EGSA بر این واقعیت استوار است که برای اثبات عدم امکان عملی جعل امضای دیجیتال، می توان از یک کار محاسباتی پیچیده مانند فاکتورگیری یک عدد صحیح بزرگ - ایجاد یک لگاریتم گسسته استفاده کرد. علاوه بر این، ال گامال توانست ضعف آشکار الگوریتم امضای دیجیتال RSA را که با توانایی اضافه کردن امضای دیجیتال به پیام‌های خاص بدون اختصاص کلید مخفی مرتبط است، تشخیص دهد.

بیایید نگاهی دقیق تر به الگوریتم امضای دیجیتال بیندازیم ال جمال. برای ایجاد یک جفت کلید (کلید خصوصی - کلید مخفی)، ابتدا یک عدد صحیح بزرگ P و یک عدد صحیح بزرگ G را انتخاب کنید که در آن G< Р. Отправитель и получатель подписанного документа используют при вычислениях одинаковые большие целые числа Р (~10 308 или ~2 1024) и G (~10 154 или ~2 512), которые не являются секретными.

دایرکتوری شماره X، 1 را انتخاب می کند< Х £ (Р-1) , и вычисляет

Y = G X mod P.

شماره Y کلید خصوصی است که برای تأیید امضای فرستنده استفاده می شود. شماره Y به طور محرمانه به همه صاحبان اسناد بالقوه منتقل می شود.

عدد X کلید مخفی فرستنده برای امضای اسناد است و می توان آن را مخفی نگه داشت.

برای امضای یک پیام M، مدیر آن را با استفاده از تابع هش h(·) برای عدد کامل m درهم می کند:

M = h(M)، 1< m < (Р-1) , и генерирует случайное целое число К, 1 < К < (Р-1) , такое, что К и (Р-1) являются взаимно простыми. Затем отправитель вычисляет целое число а: а = G K mod Р и, применяя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа Х целое число b из уравнения m = Х * а + К * b (mod (Р-1)) .

یک جفت اعداد (a, b) یک امضای دیجیتال S ایجاد می کند:

S=(a,b) که در سند M نشان داده شده است.

سه عدد از اعداد (M، a، b) به دارنده منتقل می شود، همانطور که یک جفت اعداد (X، K) برای راز نگهداری می شود.

پس از دریافت اعلان امضا شده (M,a,b)، مالک باید بررسی کند که آیا امضای S=(a,b) اعلان M را تایید می کند یا خیر. گیرنده برای کدام مالک ابتدا باید عدد M را محاسبه کند.

M = h (M)، سپس. لطفا اطلاعیه M را بپذیرید.

سپس مالک مقادیر را محاسبه می کند

A = Y a a b (mod P) و اطلاعات را از M به کمک کننده تشخیص می دهد، زیرا A = G m (mod P) .

در غیر این صورت، برنده عادلانه بودن رابطه را بررسی می کند

Y a a b (mod P) = G m (mod P).

می توان از نظر ریاضی ثابت کرد که اگر امضای S = (a, b) در زیر سند M از کلید خصوصی X جدا شود که کلید خصوصی Y از آن حذف شود، اعتماد باقی مانده یکسان خواهد بود. به این ترتیب می توانید مطمئن شوید که نماینده بدون افشای خود کلید، به M اطلاع می دهد که دارنده این کلید مخفی X است و خود نماینده این سند را امضا کرده است.

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

لب به لب Viberemo: اعداد P = 11، G = 2 و کلید مخفی X = 8. ما مقادیر کلید خصوصی را محاسبه می کنیم:

Y = G X mod P = 28 mod 11 = 3.

فرض کنید پیام خروجی M با مقادیر هش m = 5 مشخص می شود.

به منظور محاسبه امضای دیجیتال برای اعلان M، مقدار هش m = 5 در ابتدا به عنوان یک عدد کامل K = 9 انتخاب می شود. اجازه دهید دوباره پیکربندی کنیم که اعداد K و (P-1) متقابلاً بخشیده می شوند. درست است، gcd (9،10) = 1. سپس عناصر a و b امضا را محاسبه می کنیم:

A = G K mod P = 2 9 mod 11 = 6 عنصر b مهم است، پسوندهای vikorist الگوریتم اقلیدسی: m = X * a + K * b (mod (P-1)).

وقتی m = 5، a = 6، X = 8، K = 9، P = 11

5 = 8 * 6 + 9 * b (mod 10) یا 9 * b = -43 (mod 10).

راه حل: b = 3. امضای دیجیتال یک جفت است: a = 6، b = 3. سپس فرستنده امضای اعلان را ارسال می کند. پس از پذیرش امضا و کلید خصوصی Y = 3، کاربر مقدار هش را برای اعلان M: m = 5 محاسبه می کند و سپس دو عدد را محاسبه می کند:

Y a a b (mod P) = 3 6 * 6 3 (mod 11) = 10 (mod 11); G m (mod P) = 25 (mod 11) = 10 (mod 11).

قطعات دو عدد کامل مساوی هستند، لطفاً اطلاعات را بپذیرید تا درست تشخیص داده شود.

لازم به ذکر است که طرح الگامال نمونه ای معمولی از رویکردی است که به پیام اجازه می دهد تا همزمان با احراز هویت پذیرفته شده (a, b) به یک فرم باز ارسال شود. در چنین مواردی، روش تعیین اعتبار اعلان دریافتی شامل تغییر نوع احراز هویت قبل از اعلان است.

طرح امضای دیجیتال ال گامال در مقایسه با طرح امضای دیجیتال RSA دارای تعدادی مزیت است:

  1. با سطح مشخصی از پایداری الگوریتم امضای دیجیتال، کل عددی که در محاسبات شرکت می‌کند رکوردی را تولید می‌کند که 25 درصد کوتاه‌تر است، که پیچیدگی محاسبه حداکثر را دو بار تغییر می‌دهد و امکان استفاده از حافظه را به میزان قابل توجهی سریع‌تر می‌کند. .
  2. هنگام انتخاب یک ماژول P، کافی است بررسی کنید که این عدد ساده است و عدد (P-1) دارای ضریب اول عالی است (پس برای بررسی فقط به دو عدد نیاز دارید).
  3. روش تشکیل امضا با استفاده از طرح الگامال امکان محاسبه امضای دیجیتال تحت پیام های جدید را بدون دانستن کلید مخفی (مانند RSA) نمی دهد.

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

الگوریتم امضای دیجیتال DSA

الگوریتم امضای دیجیتال DSA (الگوریتم امضای دیجیتال) ثبت نام در سال 91. به NIST USA برای ورود به استاندارد DSS (استاندارد امضای دیجیتال). الگوریتم DSA توسعه‌ای از الگوریتم‌های امضای دیجیتال ال گامال و کی. شنور است.

مدیر و صاحب سند الکترونیکی هنگام محاسبه اعداد بزرگ vikoristuyut: G و P - اعداد اول، پوست L بیت (512 £ L £ 1024). q یک عدد ساده با 160 بیت اضافی است (قسم‌دهنده عدد (P-1)). اعداد G، P، q باز هستند و برای تمام حاشیه ها قابل استفاده هستند.

دایرکتوری شماره X، 1 را انتخاب می کند< Х < q . Число Х является секретным ключом отправителя для формирования электронной цифровой подписи.

سپس مدیر مقادیر را محاسبه می کند

Y = G X mod P.

شماره Y کلید خصوصی برای تأیید امضای فرستنده است و به همه صاحبان اسناد منتقل می شود.

این الگوریتم همچنین یک تابع هش یک طرفه h(·) را تغذیه می کند. استاندارد DSS الگوریتم هش ایمن SHA (Secure Hash Algorithm) را مشخص می کند.

برای امضای یک سند M، مدیر آنها را از مقدار هش m هش می کند:

M = h(M)، 1

یک جفت اعداد (r,s) یک امضای دیجیتال ایجاد می کند

S = (r, s) تحت سند M.

به این ترتیب، اعلان با سه عدد (M,r,s) امضا می شود.

اعلان امضا شده Otrimuvach (M,r,s) ذهن ها را بررسی می کند

0 < r < q, 0 < s < q и отвергает подпись, если хотя бы одно из этих условий не выполнено. Затем получатель вычисляет значение w = (1/s) mod q , хэш-значение m = h(М) и числа u 1 = (m * w) mod q , u 2 = (r * w) mod q .

V = ((G u 1 * Y u 2) mod P) mod q و نظریه ذهن v = r را تأیید می کند.

از آنجایی که ذهن v = r منطبق است، پس امضای S = (r, s) در زیر سند M معتبر شناخته می شود.

از نظر ریاضی می توان ثابت کرد که اگر امضای S = (r, s) در زیر سند M از کلید خصوصی X جدا شود و کلید خصوصی Y از آن حذف شود، اعتماد باقی مانده یکسان خواهد بود. به این ترتیب، می توانید مطمئن شوید که مدیر اطلاعات همان کلید مخفی X را دارد (بدون افشای ارزش کلید X) و مدیر این سند M را امضا کرده است.

الگوریتم DSA با اقتباس از الگوریتم امضای دیجیتال ال گامال دارای مزایای اصلی زیر است:

  1. پس برای هر سطح قابل قبولی از دوام. برای هر جفت اعداد G و P (از 512 تا 1024 بیت)، اعداد q، X، r، s مشمول دو برابر شدن 160 بیت و کوتاه شدن امضا به 320 بیت هستند.
  2. اکثر عملیات با اعداد K، r، s، X، هنگام محاسبه یک امضا، مدول عدد q را 160 بیت دنبال می کنند، که زمان محاسبه امضا را افزایش می دهد.
  3. هنگام تبدیل امضا، اکثر عملیات با اعداد u 1 , u 2 , v, w نیز در پشت ماژول عدد q با 160 بیت اضافی انجام می شود که باعث افزایش سرعت استفاده از حافظه و زمان محاسبه می شود.

برخی از الگوریتم‌های DSA مستلزم این هستند که هنگام امضا و تأیید، امضا باید با عملیات پیچیده مدول q تکمیل شود:

S = ((m + rX)/K) (mod q)، w = (1/s) (mod q)،

که به شما اجازه نمی دهد حداکثر سرعت را تنظیم کنید.

لازم به ذکر است که اجرای واقعی الگوریتم DSA را می توان با محاسبات بعدی تسریع کرد. لطفاً توجه داشته باشید که مقدار r در اطلاعات مربوط به مقدار هش m ذخیره نمی شود. بعداً می توانید یک سری i-values ​​ایجاد کنید و سپس مقدار r را برای مقدار پوست محاسبه کنید. شما همچنین می توانید مقدار تبدیل K-1 را برای مقدار پوسته K از قبل محاسبه کنید. سپس با آگاهی مناسب از M، می توانید مقدار s را با توجه به مقدار r و K-1 محاسبه کنید. این محاسبات رو به جلو به طور قابل توجهی سرعت الگوریتم DSA را افزایش می دهد.

استاندارد ملی امضای دیجیتال

استاندارد امضای دیجیتال فعلی به عنوان تعیین شده است GOST R 34.10-94. الگوریتم امضای دیجیتال که توسط این استاندارد تعریف شده است، از نظر مفهومی به الگوریتم DSA نزدیک است. شما پارامترهای زیر را خواهید داشت:

P - یک عدد ساده عالی، از 509 به 512 بیت یا از 1020 به 1024 بیت افزایش یافته است.
q ضرب ساده یک عدد (p-1) است که جمع آن به 254...256 بیت می رسد.
a - عددی کوچکتر از (p-1) باشد، و به گونه ای باشد که q mod p = 1;
x - عدد دیاک، کمتر از q;
y = یک x mod p.

علاوه بر این، این الگوریتم از یک تابع هش تک مستقیم H(x) استفاده می کند. استاندارد GOST R 34.11-94 یک تابع هش را تعریف می کند که بر اساس ویکورستان الگوریتم متقارن استاندارد GOST 28147-89 است.

سه پارامتر اول p، q و باز هستند و برای انواع برنامه ها قابل استفاده هستند. عدد x کلید مخفی است. عدد y توسط کلید محافظت می شود. برای امضای پیام اعلان و سپس بررسی امضا، عبارات زیر ظاهر می شود.

  1. Koristuvach A یک عدد منحصر به فرد k و k ایجاد می کند
  2. Koristuvach A مقادیر r = (k k mod p) mod p، s = (x * r + k (H(m))) mod p را محاسبه می کند. اگر Н(m) mod q = 0، مقادیر Н(m) mod q برابر با یک است. اگر r=0 مقدار دیگر k را انتخاب کنید و دوباره شروع کنید.
    امضای دیجیتال از دو عدد تشکیل شده است: r mod 2256 و s mod 2256. کوریستوواچ A بر اعداد کوریستوواچف غلبه می کند.
  3. Koristuvach حذف امضاها را تأیید می کند، v = Н(m) q-2 mod q , z 1 = (s * v) mod q , z 2 = ((q-r) * v) mod q , u = ((و z) 1 * y z 2) mod p) mod p. اگر u = r، پس امضا معتبر است.

تفاوت این الگوریتم با الگوریتم DSA در این است که در DSA

S = (k -1 (x * r + (H(m)))) mod q،

قبل از سطح دیگری از تأیید چه کاری باید انجام دهید.

لطفا توجه داشته باشید که در استاندارد ملی EDS پارامتر q 256 بیت است. رمزنگارهای ورودی کاملاً با تقریباً 160 بیت تغذیه می شوند. اهمیت مقادیر پارامتر این است که تا زمانی که امضای ایمن تر حذف نشود، کاربرد توزیع کنندگان را در استاندارد دامپزشکی منعکس می کند.

این استاندارد از ابتدای سال 1995 روبل رتبه کسب کرده است.

ادبیات

  1. Romanets Yu.V.، Timofeev P.A.، Shangin V.F. حفاظت از اطلاعات از سیستم ها و شبکه های کامپیوتری. در اد. V.F. شانگینا. - نوع دوم، پردازش شده. تا اضافه کنید. - م.: رادیو و ارتباطات، 1380. - 376 ص: ill.
  2. Koneev I.R., Belyaev A.V. امنیت اطلاعات برای مشاغل - سنت پترزبورگ: BHV-Petersburg، 2003.

برنامه

یوتیوب دایره المعارفی

  • 1 / 5

    به منظور تابع هش اچبرای تکیه بر قدرت رمزنگاری، سه مزیت اصلی وجود دارد که بر عملکرد هش رمزنگاری تکیه دارد:

    این مزایا مستقل نیستند:

    • تابع معکوس در برابر برخوردهای نوع اول و نوع دیگر ناپایدار است.
    • عملکرد، ناپایدار به نوع اول؛ ناپایدار به کولیز از نوع دیگر. دروازه درست نیست

    اصول

    طرح ترتیبی تکراری

    p align="justify"> هنگام طراحی یک تابع هش بر اساس طرح های تکرار شونده، مشکلی با اندازه جریان داده ورودی ایجاد می شود. اندازه جریان داده ورودی به چند برابر ( k−n). به عنوان یک قاعده، قبل از شروع الگوریتم، داده ها به روشی که قبلاً شناخته شده بود گسترش می یابد.

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

    تابع فشرده سازی بر اساس الگوریتم بلوک متقارن

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

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

    به این ترتیب می توانیم 64 گزینه را برای توابع فشردن انتخاب کنیم. اکثر آنها یا بی اهمیت هستند یا ناامن. در زیر تصاویری از ایمن ترین طرح ها برای انواع حملات را مشاهده می کنید.

    Zastosuvannya

    امضای الکترونیک

    اجازه دهید مشتری برود نام، در پشت یک عبارت عبور احراز هویت وجود دارد، عبور، در سرور من سرور مقادیر تابع هش را ذخیره می کند اچ(عبور, آر 2) ، د آر 2 - شبه پادو، پشت شماره. مشتری درخواست را مجبور می کند ( نام, آر 1) د آر 1 یک عدد شبه vipadkove و در عین حال جدید است. سرور مقادیر را لغو می کند آر 2. مشتری مقادیر تابع هش را محاسبه می کند اچ(آر 1 , اچ(عبور, آر 2)) او آن را به سرور می فرستد. سرور نیز مقادیر را محاسبه می کند اچ(آر 1 , اچ(عبور, آر 2)) و او وسواس دارد. اگر مقادیر برآورده شوند، احراز هویت صحیح است.