سلام؛

بررسی سوالات و ابهامات متداول نشون میده عامه توسعه گران تفاوت Hash و Code و Encryption رو نمیدونن و اغلب این سه عنوان که مطلقا" به هم ربطی ندارن بجای دیگری بکار میرن ! سعی میکنم بدون وارد شدن به جزئیات بیش از حد فنی ، این سه عنوان رو کمی توضیح بدم .

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

Code : کد یا درهم ریزی یا هر اسم دیگه ای که روش میگذارن ، از یک جفت الگوریتم تشکیل میشه . اولی پیام یا فایل رو encode میکنه ( مثلا" : غیر قابل خواندن ) و دومی اون رو decode میکنه ( مثلا" : قابل خواندن ) . یعنی یک روش تولید و استفاده از Code همیشه از دو جزء متقارن تشکیل میشه که با داشتن یکی ، تولید اون یکی کار دشواری نخواهد بود . اگر شما یک فایل رو بگیرین و به هر کاراکتر 12 تا اضافه کنین و خروجی رو برای فرد دیگری بفرستین که او با خوندن هر کاراکتر و کسر 12 تا از هر کدوم ، بتونه به فایل اصلی دست پیدا کنه ، شما coding انجام دادین . نتیجه : کد صرفا" شکل پیام یا فایل رو بصورتی متقارن تغییر میده . نتیجه بعدی : کد لزوما از دو قسمت قرینه هم تشکیل میشه . کاربرد : انتقال پیام یا فایل روی محیطهائی که برای پردازش حروف و علائم از کدپیجهای متفاوت استفاده میکنن ، یا انتقال وصله های ایمیلها و ... . حوزه کاربرد : انتقال اطلاعات .


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

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


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

روشهای متقارن رمزنگاری : این روشهای از لزوما" یک الگوریتم و حداقل یک کلید استفاده میکنن . مثال : DES

روشهای غیر متقارن : این روشها از حداقل یک الگوریتم و حداقل دو کلید استفاده میکنن . مثال : RSA .

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

ایام به کام :)