در رمزنگاری، تابع درهم ساز مرکل - دمگارد، روشی برای ایجاد توابع درهم ساز مقاوم در برابر برخورد، از طریق توابع فشرده سازی یک طرفه در برابر برخورد است[ ۱] : 145 . این ساختار در طراحی بسیاری از الگوریتم های درهم ساز معروف همچون MD5، SHA - 1 و SHA - 2 استفاده شده است.
ساخت مرکل - دمگارد در پایان نامه دکتری رالف مرکل در سال ۱۹۷۹ توصیف شد. [ ۲] رالف مرکل و ایوان دمگارد به طور مستقل ثابت کردند که: در صورتی اگر از طرح لایه گذاری مناسب استفاده شود و تابع فشرده سازی مقاوم باشد، تابع درهم سازی نیز مقاوم برخورد خواهد شد. [ ۳] [ ۴]
تابع درهم ساز مرکل - دمگارد برای ایجاد یک ورودی شامل تعداد ثابتی از عدد ثابت ( به عنوان مثال ۵۱۲ یا ۱۰۲۴ ) عمل می کند. این به این دلیل است که توابع فشرده سازی نمی توانند ورودی اندازه دل خواه را کنترل کنند. سپس تابع درهم ساز، نتیجه را به بلوک هایی با اندازه ثابت تقسیم می کند، و آن ها را دریک زمان با تابع فشرده سازی پردازش می کنند، هر بار یک بلوک ورودی را با خروجی راند قبلی ترکیب کرد.
برای اطمینان از ساخت و ساز، مارکل و دمگارد پیشنهاد کردند که پیامها با لایه ای که طول پیام اصلی را رمزگذاری می کند، قرار بگیرند. به این حالت لایه گذاری طولی یا تقویت مرکل - دمگارد گفته می شود.
در نمودار، تابع فشرده سازی تک جهتی با f نشان داده می شود و دو ورودی طول ثابت را به خروجی همان اندازه به عنوان یکی از ورودی ها تبدیل می کند. الگوریتم با یک مقدار اولیه شروع می شود، بردار مقداردهی اولیه ( IV. ( IV یک مقدار ثابت است ( الگوریتم یا پیاده سازی خاص ) برای هر بلوک پیغام، تابع فشرده سازی ( یا فشرده سازی ) f نتیجه را تا اینجا می گیرد، آن را با بلوک پیغام ترکیب می کند و یک نتیجه میانی تولید می کند. بلوک آخر با صفر به صورت نیاز و بیت با نمایش طول کل پیام اضافه می شود. ( برای مثال، به قسمت پایین مراجعه کنید )
برای مقاوم تر شدن بیشتر هش، نتیجه نهایی گاهی اوقات از طریق تابع نهایی تغذیه می شود. تابع نهایی می تواند چندین هدف از قبیل فشرده کردن یک حالت داخلی بزرگ تر را داشته باشد ( آخرین نتیجه ) به یک اندازه هش کوچک تر، یا تضمین یک اثر مخلوط سازی بهتر و اثر بهینه تری بر روی بیت های جمع هش باشد. تابع نهایی اغلب با استفاده از تابع فشرده سازی ساخته می شود؛ که در بعضی از اسناد اصطلاحات متفاوتی به کار رفته است: عمل لایه گذاری «نهایی کردن» نامیده می شود.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفساخت مرکل - دمگارد در پایان نامه دکتری رالف مرکل در سال ۱۹۷۹ توصیف شد. [ ۲] رالف مرکل و ایوان دمگارد به طور مستقل ثابت کردند که: در صورتی اگر از طرح لایه گذاری مناسب استفاده شود و تابع فشرده سازی مقاوم باشد، تابع درهم سازی نیز مقاوم برخورد خواهد شد. [ ۳] [ ۴]
تابع درهم ساز مرکل - دمگارد برای ایجاد یک ورودی شامل تعداد ثابتی از عدد ثابت ( به عنوان مثال ۵۱۲ یا ۱۰۲۴ ) عمل می کند. این به این دلیل است که توابع فشرده سازی نمی توانند ورودی اندازه دل خواه را کنترل کنند. سپس تابع درهم ساز، نتیجه را به بلوک هایی با اندازه ثابت تقسیم می کند، و آن ها را دریک زمان با تابع فشرده سازی پردازش می کنند، هر بار یک بلوک ورودی را با خروجی راند قبلی ترکیب کرد.
برای اطمینان از ساخت و ساز، مارکل و دمگارد پیشنهاد کردند که پیامها با لایه ای که طول پیام اصلی را رمزگذاری می کند، قرار بگیرند. به این حالت لایه گذاری طولی یا تقویت مرکل - دمگارد گفته می شود.
در نمودار، تابع فشرده سازی تک جهتی با f نشان داده می شود و دو ورودی طول ثابت را به خروجی همان اندازه به عنوان یکی از ورودی ها تبدیل می کند. الگوریتم با یک مقدار اولیه شروع می شود، بردار مقداردهی اولیه ( IV. ( IV یک مقدار ثابت است ( الگوریتم یا پیاده سازی خاص ) برای هر بلوک پیغام، تابع فشرده سازی ( یا فشرده سازی ) f نتیجه را تا اینجا می گیرد، آن را با بلوک پیغام ترکیب می کند و یک نتیجه میانی تولید می کند. بلوک آخر با صفر به صورت نیاز و بیت با نمایش طول کل پیام اضافه می شود. ( برای مثال، به قسمت پایین مراجعه کنید )
برای مقاوم تر شدن بیشتر هش، نتیجه نهایی گاهی اوقات از طریق تابع نهایی تغذیه می شود. تابع نهایی می تواند چندین هدف از قبیل فشرده کردن یک حالت داخلی بزرگ تر را داشته باشد ( آخرین نتیجه ) به یک اندازه هش کوچک تر، یا تضمین یک اثر مخلوط سازی بهتر و اثر بهینه تری بر روی بیت های جمع هش باشد. تابع نهایی اغلب با استفاده از تابع فشرده سازی ساخته می شود؛ که در بعضی از اسناد اصطلاحات متفاوتی به کار رفته است: عمل لایه گذاری «نهایی کردن» نامیده می شود.
wiki: ساختار مرکل–دمگارد