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

به گزارش خبرنگار حوزه دریچه فناوری گروه فضای مجازی باشگاه خبرنگاران جوان، رمزنگاری و تغییر اطلاعات از حالت عادی و قابل فهم خود سالیان سال است که مورد استفاده قرار می گیرد و می توان از نمونه های کهن آن به اسب تروا اشاره کرد. این تغییر اطلاعات انواع و اقسام گوناگونی دارد که از میان آن ها می توان به رمزنگاری و 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 گفته می شود، اندازه داده ای که رمزنگاری می شود با حجم داده ورودی آن تا حدود زیادی یکسان است و شما می توانید از داده های رمزنگاری شده داده خود را خارج کنید که به این فرآیند رمزگشایی گفته می شود. الگوریتم های رمزنگاری بصورت کلی به دو دسته متقارن با یک کلید برای رمزنگاری و همان کلید برای رمزگشایی و نامتقارن که دارای دو کلید عمومی و خصوصی برای رمزنگاری و رمزگشایی می شوند تقسیم بندی می شود.
انتهای پیام/
برخلاف الگوریتم های درهم سازی یا 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 گفته می شود، اندازه داده ای که رمزنگاری می شود با حجم داده ورودی آن تا حدود زیادی یکسان است و شما می توانید از داده های رمزنگاری شده داده خود را خارج کنید که به این فرآیند رمزگشایی گفته می شود. الگوریتم های رمزنگاری بصورت کلی به دو دسته متقارن با یک کلید برای رمزنگاری و همان کلید برای رمزگشایی و نامتقارن که دارای دو کلید عمومی و خصوصی برای رمزنگاری و رمزگشایی می شوند تقسیم بندی می شود.
انتهای پیام/
گفتگو با هوش مصنوعی
💬 سلام! میخوای دربارهی «رمزگذاری یا هشینگ؛ شما از کدامیک استفاده می کنید؟! + بررسی تفاوت های میان این دو روش» بیشتر بدونی؟ من اینجام که راهنماییت کنم.