بلاکچین, رمزنگاری

انواع رمزنگاری متقارن (جریانی و بلوکی)

رمزنگاری و رمزگشایی

رمزهای جریانی و بلوکی

بطور کلی یک پیام رمزی به فرستنده (Sender) اجازه می‏ دهد تا با بهره گیری از کلید مخفی، پیام آشکار (Input Message (plaintext))  را به صورت یک نسخه رمز شده (Ciphered Version)  در آورد. گیرنده پیام رمز شده نیز باید بتواند با استفاده از همان کلید مخفی، پیام  را بازسازی کند. یک پیام رمز شده از دو تابع کلی به نام ‏های تابع رمزگذاری (E) و تابع رمزگشایی (D) استفاده می ‏کند. اگر کلید را با k و پیام را با c نشان دهیم:

الگوریتم رمزگذاری (Encryption Algorithm)

الگوریتم رمزگذاری، پیام  و کلید  را دریافت می‏ کند و یک متن رمزنگاری شده  به عنوان خروجی بر می گرداند. بنابراین می ‏توان نوشت: E(k,m)=c.

الگوریتم رمزگشایی (Decryption Algorithm)

الگوریتم رمزگشایی، متن رمزنگاری شده  و کلید  را به عنوان ورودی دریافت کرده و به بازسازی پیام آشکار  پرداخته و به عنوان خروجی بر می‏ گرداند. بنابراین خواهیم داشت: D(k,c)=m.

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

فرایند رمزنگاری متقارن

به وضوح مشخص است که رمزگشایی پیام رمزنگاری شده باید پیام اولیه  را بر گرداند. به عبارتی دیگر باید رابطه D(k, E(k,m)) = c برقرار باشد. رمزهایی که جهت ایجاد محرمانگی (Confidentiality) مورد استفاده قرار می‏ گیرند به دو دسته کلی رمزهای بلوکی (Block Ciphers) و رمزهای جریانی (Stream Ciphers) تقسیم می ‏شوند (Menezes  Oorschot, Paul C. van., Vanstone, Scott A., 2001; Valea et al., 2019).

به عبارتی دیگر، رمزنگاری متقارن از یک الگوریتم‌ رمزنگاری متقارن قالبی یا قطعه‌ای (Block Cipher) یا الگوریتم‌های رمزنگاری متقارن جریانی (Stream Cipher) برای رمزگذاری و رمزگشایی داده‌ها استفاده می‌کند. تفاوت اصلی بین رمزهای جریان و بلوک به اندازه داده ‏های پردازش شده در هر رمزگذاری بستگی دارد. رمزهای جریان، در هر واحد زمانی تنها یک بیت از جریان بیت‏های موجود را رمزگذاری می‏ کنند. این شیوه رمزگذاری باعث می‏شود که پیام رمزنگاری شده یک تناسب بیت به بیت (Bit-to-Bit Correspondence) با پیام آشکار (رمز نشده) داشته باشد. در طرف مقابل رمزگذاری بلوکی به شیوه‏ای متفاوت عمل می‏ کند. بر این اساس روش بلوکی یک بلوک  بیتی از متن رمز نشده را به عنوان ورودی دریافت کرده و بصورت یک بلوک  بیتی رمز شده در می ‏آورد (Conrad et al., 2017; Valea et al., 2019). به بیانی دیگر رمزگذاری ‏های جریانی با استفاده از یک تبدیل رمزگذاری، کارکترهای یک پیام آشکار را یکی یکی و در زمان‏های متفاوت، رمزگذاری می‏ کنند. حال آن که رمزهای بلوکی تمایل دارند که به طور همزمان گروهی از کارکترهای یک پیام آشکار را با استفاده از یک تغییر رمزگذاری ثابت، رمزگذاری کنند (Menezes Oorschot, Paul C. van., Vanstone, Scott A., 2001).

 

 

 

منابع

Conrad, E., Misenar, S., & Feldman, J. (2017). Chapter 3 – Domain 3: Security engineering (E. Conrad, S. Misenar, & J. B. T.-E. H. C. (Third E. Feldman (reds); bll 47–93). Syngress. https://doi.org/https://doi.org/10.1016/B978-0-12-811248-9.00003-6

Menezes Oorschot, Paul C. van., Vanstone, Scott A., A. J. (2001). Handbook of applied cryptography. CRC Press. https://www.worldcat.org/title/handbook-of-applied-cryptography/oclc/249907891?referer=di&ht=edition

Valea, E., Da Silva, M., Flottes, M.-L., Di Natale, G., & Rouzeyre, B. (2019). Stream vs block ciphers for scan encryption. Microelectronics Journal, 86, 65–76. https://doi.org/https://doi.org/10.1016/j.mejo.2019.02.019

 

 

 

نوشته های مرتبط

دیدگاهتان را بنویسید