رمزگذاری یا هشینگ؛ شما از کدامیک استفاده میکنید؟! + بررسی تفاوتهای میان این دو روش
رمزنگاری تبدیل دادهها به قالبی دیگر بوده و درهم سازی دادهها نیز به یک فرآیند یک طرفه گفته میشود.

به گزارش خبرنگار حوزه دریچه فناوری گروه فضای مجازی باشگاه خبرنگاران جوان، رمزنگاری و تغییر اطلاعات از حالت عادی و قابل فهم خود سالیان سال است که مورد استفاده قرار می گیرد و می توان از نمونه های کهن آن به اسب تروا اشاره کرد.
این تغییر اطلاعات انواع و اقسام گوناگونی دارد که از میان آنها میتوان به رمزنگاری و Hashing اشاره کرد.
اما این دو چه تفاوتی با یکدیگر دارند؟!
فرآیند رمزنگاری یا Encryption به تبدیل دادهها به قالبی که فقط افراد مجاز میتوانند آن را مشاهده کنند گفته میشود که در این تبدیل قالب داده تبدیل شده را در اصطلاح Cipher-Text مینامیم.
فرآیند رمزنگاری یا Encryption دارای قدمت چند هزار ساله است و به انواع و اقسام روشها از آسان تا سخت طبقهبندی میشود.
مهمترین نکتهای که در خصوص رمزنگاری وجود دارد این است که فرآیند رمزنگاری شما متناسب با اندازه و مقدار دادههای شما است و با اضافه شدن میزان دادههای اطلاعاتی به الگوریتمهای رمزنگاری طبیعتا Cipher-Textهای خروجی نیز دارای اندازه متناسبی است.
برخلاف الگوریتمهای درهم سازی یا Hashing در الگوریتمهای رمزنگاری یا Encryption میتوانید از دادههای رمزنگاری شده دادههای خود را بیرون بیاورید و به این عملیات رمزگشایی یا Decryption گفته میشود.
در فرآیند رمزگشایی شما حتما باید به عنوان یک کاربر مجاز کلید رمزگشایی الگوریتم رمزنگاری متناظر را بایستی داشته باشید تا بتوانید فرآیند رمزگشایی را به درستی انجام دهید.
الگوریتم رمزنگاری یا Encryptionای به عنوان الگوریتم رمزنگاری قوی شناخته میشود که بدون داشتن کلید رمزگشایی نشود به دادههای آن دسترسی پیدا کرد.
انواع مختلفی از الگوریتمهای رمزنگاری وجود دارد که مهمترین طبقهبندی آنها الگوریتمهای رمزنگاری متقارن و نامتقارن هستند، در الگوریتمهای رمزنگاری متقارن همان کلیدی که برای رمزنگاری استفاده شده است برای رمزگشایی نیز استفاده میشود، اما در الگوریتمهای رمزنگاری نامتقارن یا PKI از دو کلید عمومی و خصوصی برای رمزنگاری و رمزگشایی استفاده میشود که از درجهی امنیت بسیار بالایی برخوردار است.
Hash و Hashing چیست؟
هش (Hash) یک کنترل یا کلیدواژهی ۱۲۸ بیتی است و همانند اثر انگشت عمل میکند.
Hashing روشی است که برای بررسی یکپارچگی دیتا از آن استفاده میشود.
Hash یک تابع یکطرفه است به این معنی که اگر دو کامپیوتر متفاوت یک دیتا را دریافت کنند و یک تابع hash یکسان را روی آن اجرا کنند باید مقدار hash یکسانی را بدست آورند.
جالب است بدانید؛ امکان ندارد که شما یک hash یکسان را از بلوکهای دیتا متفاوت بدست آوردید؛ که به آن collision resistance گفته میشود.
خروجی Hash کوچک و با اندازه ثابت است که به آن digest، message digest یا simply the hash گفته میشود.
مثالی برای درک بهتر Hashing
یک مثال از استفاده hash برای بررسی یکپارچگی دیتا این است که فرستنده یک الگوریتم Hash را برای هر بسته از دیتا اجرا میکند و نتیجه را به بسته متصل میکند.
دریافت کننده بسته همان hash را روی بسته دریافتی اجرا میکند و نتیجه بدست آمده را با خروجی hash که فرستنده ارسال کرده است مقایسه میکند.
اگر مقایسه یکی بود به این معناست که بسته در حین ارسال تغییری نداشته و سالم به مقصد رسیده است.
اگر یک بیت از بسته ارسالی تغییر کند hash مقصد با hash ارسالی توسط مبدا متفاوت خواهد بود و مقصد متوجه خواهد شد که بسته مشکل دارد.
معرفی مشهورترین روشهای Hashing
Message digest ۵ (MD۵:در این الگوریتم digest ایجاد شده ۱۲۸ بیتی است.
(Secure Hash Algorithm ۱ (SHA-۱:در این الگوریتم digest ایجاد شده ۱۶۰ بیتی است.
(Secure Hash Algorithm ۲ (SHA-۲:در این الگوریتم digest ایجاد شده میتواند بین ۲۲۴ تا ۵۱۲ بیت باشد.
تفاوت میان Encryption و Hashing
درهم سازی دادهها یا همان Hashing به یک فرآیند یک طرفه گفته میشود که در آن هر نوع داده خروجی در نهایت تبدیل به یک رشته داده خروجی با یک اندازه ثابت میشود که به آن Hash Value یا مقدار تابع درهم سازی گفته میشود.
شما نمیتوانید از یک Hash Value داده خود را برداشت کنید، زیرا این نوع الگوریتمها کاملا یک طرفه هستند و بیشتر برای تسریع فرآیند جستجو و اطمینان از صحت دادهها در هنگام انتقال مورد استفاده قرار میگیرند.
الگوریتمهایی مثل MD و SHA از انواع الگوریتمهای درهم سازی یا Hashing هستند که بیشترین استفاده را دارند.
رمزنگاری یا Encryption به تبدیل دادهها به قالبی گفته میشود که فقط برای کاربران مجاز قابل مشاهده باشد و هیچ کاربر غیرمجازی نتواند داده واقعی را مشاهده کند.
به دادهای که رمزنگاری شده باشد در اصطلاح Cipher-Text گفته میشود، اندازه دادهای که رمزنگاری میشود با حجم داده ورودی آن تا حدود زیادی یکسان است و شما میتوانید از دادههای رمزنگاری شده داده خود را خارج کنید که به این فرآیند رمزگشایی گفته میشود.
الگوریتمهای رمزنگاری بصورت کلی به دو دسته متقارن با یک کلید برای رمزنگاری و همان کلید برای رمزگشایی و نامتقارن که دارای دو کلید عمومی و خصوصی برای رمزنگاری و رمزگشایی میشوند تقسیم بندی میشود.
انتهای پیام/