برنامه نویسی

🔐 نقش AE در blockchain: ایمن کردن داده های خارج از زنجیره با رمزگذاری متقارن

وقتی در مورد blockchain صحبت می کنیم ، اولین مفاهیم رمزنگاری که به ذهن خطور می کنند معمولاً هستند کلیدهای عمومی/خصوصی و 🖊 امضاهای دیجیتالیبشر در حالی که این ابزارهای نامتقارن بستر معماری بی اعتماد blockchain ، رمزگذاری متقارن – به ویژه AES (استاندارد رمزگذاری پیشرفته)-نقش مهمی ، هرچند که اغلب در پشت صحنه است ، در تقویت امنیت و حریم خصوصی نقش دارد.

در این پست ، ما کاوش خواهیم کرد چگونه AES در برنامه های blockchain قرار می گیرد، به خصوص وقتی صحبت از داده های خارج از زنجیره می شود.


فهرست مطالب

🔎 چرا AE در blockchain؟

blockchain شفاف ، تغییر ناپذیر و غیر متمرکز است – اما این نقاط قوت ممکن است گاهی اوقات با حریم خصوصی داده ها مغایرت داشته باشد. اینجاست که AES وارد می شود.

🗄 1. رمزگذاری داده های خارج از زنجیره

بیشتر blockchains برای ذخیره پرونده های بزرگ یا حساس ساخته نشده است. AES به ایمن نگه داشتن داده ها کمک می کند خارج زنجیره ، در حالی که یک مرجع ذخیره می شود در زنجیره

✅ مزایای کلیدی:

  • 🔐 از اطلاعات حساس محافظت کنید (به عنوان مثال ، سوابق شخصی ، IP ، داده های پزشکی)
  • 👁 حفظ حریم خصوصی ضمن تضمین یکپارچگی داده

cases موارد استفاده واقعی:

  • 🚚 زنجیره: AES داده های محصول خارج از زنجیره را رمزگذاری می کند. blockchain یک هش را برای تأیید ذخیره می کند.
  • 🏥 مراقبت های بهداشتی: AES سوابق بیمار را رمزگذاری می کند. کنترل دسترسی از طریق سیاهههای مربوط به blockchain مدیریت می شود.

🛡 2. تأمین کلیدها و اعتبارنامه ها

حتی اگر Blockchain از کلیدهای عمومی/خصوصی برای معاملات استفاده کند ، AES محافظت می کند:

  • 🗝 کلیدهای خصوصی در کیف پول (رمزگذاری شده با AES و باز کردن قفل از طریق رمز عبور)
  • 🔑 کلیدهای API در DAPPS و ادغام قرارداد هوشمند

🔗 3. تقویت امنیت سیستم ترکیبی

برنامه های دنیای واقعی اغلب blockchain را با سیستم های سنتی می آمیزند.

  • ذخیره سازی خارج از زنجیره (به عنوان مثال ، پایگاه داده های ابری) رمزگذاری شده AES است.
  • 🧾 سیاهههای مربوط به blockchain اطمینان از یکپارچگی و قابلیت ردیابی دسترسی.

🧠 AES: آغازگر در رمزگذاری متقارن

AES یک است الگوریتم کلید متقارنیکسان از کلید مخفی برای رمزگذاری و رمزگشایی استفاده می شود.

مراحل رمزگذاری AES:

  1. 🔑 گسترش کلیدی
  2. دور اول: addroundKey (XOR با کلید دور اول)
  3. 🔁 دورهای اصلی:
    • 🔄 زیر مخابرات
    • شیفتگی
    • 🧪 مخلوط کردن
    • واژگونی
  4. 🏁 دور نهایی (بدون MixColumns)

🔓 رمزگشایی معکوس با استفاده از مراحل معکوس و کلیدهای گرد به ترتیب معکوس است.


🛠 چگونه AES برنامه های blockchain را تضمین می کند (در عمل)

در اینجا یک جریان استفاده از AES معمولی در اکوسیستم های blockchain وجود دارد:

  1. data داده های حساس مشخص شده است.
  2. 🔐 AES داده ها را با استفاده از یک کلید امن رمزگذاری می کند.
  3. 🗄 داده های رمزگذاری شده خارج از زنجیره ذخیره می شوند (به عنوان مثال ، ابر ، db).
  4. 📌 هش یا مرجع در زنجیره ذخیره می شود.
  5. ✅ کاربران مجاز با استفاده از کلید رمزگشایی می کنند.

✨ مثال:

یک شرکت دارویی رمزگذاری می کند سیاهههای مربوط به دما با AES این سیاهههای مربوط به زنجیره ای ذخیره می شوند. هش در زنجیره ای ذخیره می شود. نهادهای نظارتی می توانند داده ها را با رمزگشایی آن با کلید تأیید کنند.


📐 ریاضیات پشت AES

AES فقط ایمن نیست – از نظر ریاضی ظریف ، ریشه در جبر و نظریه میدان محدود دارد.

concepts مفاهیم کلیدی:

  • 📘 Galois Fields (GF (2⁸))
  • 📊 حسابی چند جمله ای
  • 🧮 ضرب ماتریس
  • بیت ایزر

چگونه کار می کند:

عمل هدف مفهوم ریاضی استفاده شد
🔁 زیر مخابرات سردرگمی (غیر خطی) معکوس در GF (2⁸) + Affine Transform
شیفتگی انتشار جای دست
📐 مخلوط کردن انتشار بیشتر ماتریس مولتیک. بیش از GF (2⁸)
واژگونی مواد کلیدی را اضافه می کند عمل

🧩 گسترش کلیدی از چرخش بایت ، تعویض جعبه S و XOR با ثابت دور استفاده می کند-همه بر اساس ریاضیات چند جمله ای.


🔐 Breakdown AES (ساده و روشن)


1. زمینه های محدود (GF (2⁸)) – قیاس “ساعت”

⏰ ساعت چیست؟

  • به یک ساعت عادی فکر کنید ، اما به جای 12 شماره ، ما فقط از 0 به 7 می رود.
  • اگر شماره ها را اضافه کنید و از 7 گذشته بروید ، دوباره به 0 می پیچید. یعنی حسابی Modulo 8بشر
    • بلوط ، 6 + 3 = 9 → 9 در برابر 8 = 1.

🔢 چرا GF (2⁸)؟

  • AES با بایت (8 بیت = مقادیر 0 تا 255). بنابراین ، ما به یک سیستم شماره احتیاج داریم که بتواند در آن محدوده کار کند و داشته باشد ریاضیات قابل پیش بینی قوانین
  • آن سیستم نامیده می شود GF (2⁸) – الف میدان گالوی با 2⁸ = 256 عنصر.
  • حسابی افزودنی/ضرب طبیعی نیست – با استفاده از یک پیش تعریف شده از قوانین ویژه پیروی می کند چند جمله ای غیرقابل برگشت برای بسته بندی مقادیر
  • از نظر مهم ، هر مقدار غیر صفر دارای یک است معکوس، که برای رمزگذاری و رمزگشایی لازم است.

2. بازنمایی چند جمله ای بایت ها

🎯 این چیست؟

  • یک بایت مانند 01100010 = 98 در اعشاری.
  • آن را به عنوان یک چند جمله ای مشاهده کنید: x⁶ + x⁵ + xبشر

چرا؟

  • در مخلوط کردنبایت ها به عنوان ضرایب چند جمله ای رفتار می شوند.
  • عملیات مانند ضرب و کاهش مدولار روی چند جمله ای با استفاده از حسابی GF (2⁸) انجام می شود.

3. bitwise xor – addroundkey

مثال:

Plaintext: 1011 (binary)
Key:       0110 (binary)
XOR:       1101 (result)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🔄 برگشت پذیر:

انجام XOR دوباره با همان کلید اصلی را به ارمغان می آورد:

1101 XOR 0110 = 1011 (original)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🧠 چرا از آن استفاده می شود:

  • کارآمد و به راحتی قابل برگشت است.
  • معرفی می کند کلید به حالت – هر دور AES از یک جدید استفاده می کند کلیدبشر

4. Subbytes-با استفاده از S-Box

🧱 چه اتفاقی می افتد:

  • هر بایت با استفاده از ثابت جایگزین می شود جعبه – جدول جستجوی 16×16 از 256 مقادیر.
  • بایت ورودی مانند 0x01 → ردیف 0 ، ستون 1 → خروجی را بررسی کنید 0xFAبشر

🔍 چرا 0x01 0xfa می شود؟

  • این است تصادفی نیست:
    1. معکوس از بایت در GF (2⁸)

      • معکوس 0x01 خود (از 1 * 1 = 1) است.
    2. تحول:

      • یک ماتریس باینری بایت را با استفاده از حسابی GF (2) (xors bitwise) تغییر می دهد.

🔐 چرا این مهم است:

  • اضافه کردن غیر خطی، بنابراین مهاجمان به راحتی نمی توانند تولید را پیش بینی کنند.
  • AES را در برابر امنیت قرار می دهد خطی وت متمایز حملات

5. Shiftrows – تقلا داده

🧪 مفهوم:

AES داده ها را به عنوان یک ماتریس 4×4 (16 بایت) درمان می کند. Shiftrows موقعیت های بایت مانند این را تغییر می دهد:

پیش از بعد از شیفتروها
ردیف 0: ABCD ABCD (بدون تغییر)
ردیف 1: efgh fghe (تغییر توسط 1)
ردیف 2: IJKL Klij (تغییر توسط 2)
ردیف 3: mnop PMNO (تغییر توسط 3)

🎯 چرا؟

  • انتشار: تأثیر بایت به صورت افقی در سراسر ماتریس پخش می شود.
  • همراه با MixColumns (اختلاط عمودی) ، این تضمین می کند که هر بایت بسیاری دیگر را در طول دور تحت تأثیر قرار می دهد.

6. MixColumns – مخلوط کردن عمودی

🔄 چه اتفاقی می افتد:

هر ستون (4 بایت) از حالت با یک ماتریس 4×4 ثابت ضرب می شود:

[02 03 01 01]
[01 02 03 01]
[01 01 02 03]
[03 01 01 02]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ضرب ماتریس:

بیایید بگوییم یک ستون است [b0, b1, b2, b3]بشر ستون جدید می شود:

[
  (02•b0) ⊕ (03•b1) ⊕ b2 ⊕ b3,
  b0 ⊕ (02•b1) ⊕ (03•b2) ⊕ b3,
  ...
]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • در است ، ضرب در GF (2⁸)بشر
  • در Xor است

📐 چرا از {01} ، {02} ، {03 استفاده می کنید؟

  • آنها ارائه می دهند انتشار خوببشر
  • اگر 1 بایت در یک ستون تغییر کند ، همه 4 بایت در آن ستون پس از MixColumns تغییر می کند.

modulo X⁴ + 1 چیست؟

  • این امر باعث می شود نتایج در درجه 3 (4 بایت) باقی بماند.
  • این معادل نحوه کار بسته بندی در حسابی ماژولار معمولی است اما برای چند جمله ای اعمال می شود.

🔑 گسترش کلیدی – از کجا کلیدهای گرد از آنجا آمده اند

  1. AES با یک شروع می شود کلید مخفی اصلی (128 ، 192 ، یا 256 بیت).
  2. من منبسط کردن این به چندگانه کلیدهای گرد (1 برای هر دور + 1 برای مرحله اولیه).

مراحل ساده (کلید 128 بیتی):

  • تقسیم به چهار “کلمه” 4 بایت: W0 ، W1 ، W2 ، W3
  • برای من 4 ≥:

    • اگر من از 4 از 4 باشد:
    • Wi = Wi-4 ⊕ SubWord(RotWord(Wi-1)) ⊕ Rcon[i/4]
    • دیگری:
    • Wi = Wi-4 ⊕ Wi-1
  • زیر کلمه = S-Box را برای هر بایت اعمال کنید.

  • واژگانی = چرخش بایت (به عنوان مثال [a, b, c, d][b, c, d, a])

  • با = ثابت های دور از پیش تعریف شده مانند 0x01با 0x02، و غیره

📌 چرا کلید را گسترش می دهیم؟

  • از تجزیه و تحلیل مهاجمان جلوگیری می کند و همه دور را پیش بینی می کند.
  • هر ظاهری را تضمین می کند متفاوت، حتی اگر همان متن ساده رمزگذاری شود.

🔐 تجزیه AES با جریان تمیز

1 وضوح کلیدی گسترش

AES با یک کلید 128 بیتی شروع می شود ، به چهار کلمه 32 بیتی تقسیم می شود: W0با W1با W2با W3بشر

برای تولید کلمات کلیدی بیشتر (کلیدهای گرد):

  • W4 (کلمه اول کلید دور دوم):

    1. گرفتن W3بشر
    2. درخواست کردن RotateWord: بایت های خود را به سمت چپ تغییر دهید. اگر W3 = [a, b, c, d]، پس RotateWord(W3) = [b, c, d, a]بشر
    3. درخواست کردن SubBytes به هر بایت از کلمه چرخان با استفاده از S-Box: [S(b), S(c), S(d), S(a)]بشر
    4. این را با ثابت دور Rcon[1] (به عنوان مثال ، 0x01000000).
    5. نتیجه را با W0:
      W4 = W0 XOR SubWord(RotateWord(W3)) XOR Rcon[1]
  • W5 ، W6 ، W7:
    این عملیات XOR ساده است:

    W5 = W1 XOR W4

    W6 = W2 XOR W5

    W7 = W3 XOR W6

این همچنان به تولید کلمات کافی برای همه دور می پردازد.

  • کلید دور 0 = W0 به W3
  • کلید دور 1 = W4 به W7، و غیره

2 محاسبه معکوس چند برابر در GF (2⁸)

برای یافتن معکوس ضرب یک بایت (مانند 0x03)) GF (2⁸):

  1. هگز را به چند جمله ای تبدیل کنید:

    0x03 (دودویی 00000011) → چند جمله ای x + 1

  2. از الگوریتم گسترده اقلیدسی استفاده کنید در:

    • a(x) = چند جمله ای بایت شما
    • m(x) = چند جمله ای غیرقابل برگشت: x⁸ + x⁴ + x³ + x + 1
  3. هدف:

    پیدا کردن u(x) به گونه ای که:

    a(x) * u(x) ≡ 1 mod m(x)

  4. نتیجه:

    u(x) معکوس است a(x) در GF (2⁸)

  5. تبدیل کردن u(x) بازگشت به باینری ، سپس هگز.

در عمل ، این پیش ساخته و در جعبه AES S-Box ذخیره می شود.


3 تحول وابسته: 0x010xFA

پس از یافتن معکوس چند برابر بایت ، AES اعمال می کند تحول:

  • فرمول:

    y = M * x + v (بیش از GF (2) ، با استفاده از XOR)

  • ماتریس M (8 8 8) وت بردار V (1 8 8) ثابت هستند:

M = [1 0 0 0 1 1 1 1]
    [1 1 0 0 0 1 1 1]
    [1 1 1 0 0 0 1 1]
    [1 1 1 1 0 0 0 1]
    [1 1 1 1 1 0 0 0]
    [0 1 1 1 1 1 0 0]
    [0 0 1 1 1 1 1 0]
    [0 0 0 1 1 1 1 1]

v = [0 1 1 0 0 0 1 1]ᵀ
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • نمونه: ورودی: 0x01 → باینری 00000001
    تکثیر کردن M * x، سپس xor با v binary binary تبدیل شوید → تبدیل به hex 0xFA

4 مدولو x⁴ + 1 در MixColumns

در مخلوط کردن، هر ستون به عنوان چند جمله ای از درجه 3 ≤ درمان می شود.

ضرب دو چند جمله ای درجه 6 ≤.

برای ماندن در 4 بایت (درجه 3 ≤) ، ما کاهش می دهیم مدولو x⁴ + 1بشر

این ساختار را به صورت مداوم نگه می دارد و حسابی چند جمله ای کارآمد را در آن تضمین می کند GF (2⁸)بشر


5 ماتریس MixColumns

AES از یک ماتریس 4 × 4 ثابت در مخلوط کردن:

[ 02 03 01 01 ]
[ 01 02 03 01 ]
[ 01 01 02 03 ]
[ 03 01 01 02 ]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این ثابت ها (01 ، 02 ، 03) نشان دهنده ضرب های چند جمله ای در GF (2⁸)بشر


6 چرا از ثابت های کوچک در MixColumns استفاده می کنید؟

  • کارایی: ضرب در 01 ، 02 یا 03 در GF (2⁸) ساده است:

    • 02 * b = شیفت سمت چپ + XOR اختیاری با 0x1B
    • 03 * b = 02 * b XOR b
  • سخت افزار دوستانه: این هزینه محاسباتی را به حداقل می رساند در حالی که هنوز به انتشار قوی رسیده است.


7 مثال: محاسبه B'₀ در MixColumns

بایت در یک ستون داده شده است:

b₀ = 0x53, b₁ = 0xCA, b₂ = 0xED, b₃ = 0x23
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای محاسبه:

b'₀ = (02 * b₀) XOR (03 * b₁) XOR b₂ XOR b₃
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

گام به گام:

  • 02 * 0x53 = شیفت چپ = 0xA6
  • 02 * 0xCA = شیفت چپ + xor 0x1B = 0x8F
  • 03 * 0xCA = 0x8F XOR 0xCA = 0x45
  • اکنون:
  b'₀ = 0xA6 XOR 0x45 XOR 0xED XOR 0x23
       = 0x2D
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


8 رمزگذاری کلمه “الگوریتم” با استفاده از AES

چرا مستقیم AE در “الگوریتم” کار نمی کند:

  • AES روی کار می کند 128 بیتی (16 بایت) بلوک
  • “الگوریتم” = 9 بایت → نیاز به بالشتک
  • نیازهای AES:
    • یک کلید مخفی
    • حالت عملکرد (به عنوان مثال ، CBC ، CTR)
    • یک بردار اولیه سازی (IV) یا غیرقانونی

مثال فرضی:

  • تبدیل “الگوریتم” به ASCII (HEX):

    61 6C 67 6F 72 69 74 68 6D

  • پد تا 16 بایت (به عنوان مثال ، با 0x07 * 7):

    61 6C 67 6F 72 69 74 68 6D 07 07 07 07 07 07 07

  • از کلید AES (مثال) استفاده کنید:

    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

  • انجام رمزگذاری AES (10 دور: Subbytes ، Shiftrows ، MixColumns ، AddroundKey)

⚠ خیلی پیچیده برای انجام دستی – به جای آن از کد استفاده کنید!

مثال پایتون (استفاده از cryptography کتابخانه):

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
from cryptography.hazmat.backends import default_backend
import os

message = b"algorithm"
key = os.urandom(32)  # AES-256
iv = os.urandom(16)   # 128-bit IV

# Pad the message
padder = padding.PKCS7(algorithms.AES.block_size).padder()
padded = padder.update(message) + padder.finalize()

# Encrypt
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend())
encryptor = cipher.encryptor()
ciphertext = encryptor.update(padded) + encryptor.finalize()

# Decrypt (for verification)
decryptor = cipher.decryptor()
decrypted_padded = decryptor.update(ciphertext) + decryptor.finalize()
unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder()
plaintext = unpadder.update(decrypted_padded) + unpadder.finalize()

print("Original:", message.decode())
print("Key:", key.hex())
print("IV:", iv.hex())
print("Ciphertext:", ciphertext.hex())
print("Decrypted:", plaintext.decode())
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


ورودی و تنظیم کلید

بلوک خالی 1 (هگز):

61 6c 67 6f 72 69 74 68 6d 07 07 07 07 07 07 07

(این “الگوریتم” است و پس از آن PKCS#7 PADDING برای ساخت 16 بایت.)

کلید 128 بیتی فرضی (HEX):

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f


کاربرد مفهومی عملیات AES (دور اول)

🔹 دور اولیه: addroundkey

xor بلوک ساده 16 بایت با کلید گرد 16 بایت:

Plaintext:   61 6c 67 6f 72 69 74 68 6d 07 07 07 07 07 07 07  
Key:         00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f  
XOR Result:  61 6d 65 6c 76 6c 72 6f 65 0e 0d 0c 0b 0a 09 08  
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این است حالت پس از مرحله اولیه AddroundKey.


🔹 دور 1

1. Subbytes

هر بایت در حالت با استفاده از AES S-Box جایگزین می شود. به عنوان مثال:

  • بایت 0x61 → S-Box در ردیف 6 ، ستون 1 (به عنوان مثال ، 0xCA)
  • بایت 0x6D → S-Box در ردیف 6 ، ستون D

این مرحله برای همه 16 بایت اعمال می شود و دولت را تغییر می دهد.

2. shiftrows

ماتریس حالت 4 × 4 با تغییر ردیف ها تنظیم مجدد می شود:

Before ShiftRows:          After ShiftRows:

[ b0  b1  b2  b3 ]     →   [ b0  b1  b2  b3 ]  (Row 0: No shift)
[ b4  b5  b6  b7 ]     →   [ b5  b6  b7  b4 ]  (Row 1: Left shift by 1)
[ b8  b9 ba  bb ]     →   [ ba  bb  b8  b9 ]  (Row 2: Left shift by 2)
[ bc  bd be  bf ]     →   [ bf  bc  bd  be ]  (Row 3: Left shift by 3)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. MixColumns

هر ستون از ماتریس توسط یک ماتریس ثابت با استفاده از حسابی در چند برابر می شود GF (2⁸)بشر برای یک ستون [s0, s1, s2, s3]، می شود:

s'0 = (02 × s0) ⊕ (03 × s1) ⊕ (01 × s2) ⊕ (01 × s3)  
s'1 = (01 × s0) ⊕ (02 × s1) ⊕ (03 × s2) ⊕ (01 × s3)  
s'2 = (01 × s0) ⊕ (01 × s1) ⊕ (02 × s2) ⊕ (03 × s3)  
s'3 = (03 × s0) ⊕ (01 × s1) ⊕ (01 × s2) ⊕ (02 × s3)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • ضرب توسط 0x02 در GF (2⁸): شیفت سمت چپ + xor مشروط با 0x1B
  • ضرب توسط 0x03: ()0x02 × byte) ⊕ بایت

4.

نتیجه MixColumns با کلید دور بعدی، از طریق الگوریتم گسترش کلید تولید می شود.


🔁 دور 2-9

این دور همان چهار مرحله را تکرار می کند:

Subbytes → Shiftrows → MixColumns → AddroundKey


🔚 دور نهایی (دور 10)

دور نهایی مخلوط کردن مرحله و شامل:

Subbytes → Shiftrows → AddroundKey


✅ خروجی نهایی

پس از 10 دور ، وضعیت 16 بایت حاصل می شود رمز برای اولین بلوک پیام "algorithm"بشر


چرا نمی توانم رمزنگاری واقعی را نشان دهم

  • زیر مخابرات: برای هر بایت به جستجوی جعبه S نیاز دارد
  • مخلوط کردن: شامل ضرب GF (2⁸) برای هر 4 ستون است
  • گسترش کلیدی: نیاز به تولید 11 کلید گرد از کلید اولیه دارد

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


مثال (اگر از پایتون استفاده کردید)

اگر کد پایتون را که قبلاً در مورد آن بحث کردیم ، اجرا کردید ، خروجی مانند این را مشاهده می کنید (توجه: مقادیر به دلیل کلید تصادفی/IV متفاوت خواهند بود):

Original Message: algorithm
Key: 8a6d7f2b1e03c95270a4f6d13b8c5e9a17284639d0b5f8a7e1c49362f57a0d1b
IV:  3c1a5f8e2b7d0a194e6c38a5d2f1b097
Ciphertext: f3a2b8c1d4e9a7205b1c8f3a6d9e2b4c
Decrypted Message: algorithm
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

توجه: متن رمزگذاری هر بار متفاوت خواهد بود مگر اینکه از همان کلید ، IV و متن استفاده کنید.


خلاصه

برای به دست آوردن متن واقعی برای "algorithm" با استفاده از AES:

  1. یک کلید 128 بیتی را انتخاب کنید.
  2. بالشتک را اعمال کنید (در صورت لزوم).
  3. در مورد حالت AES (به عنوان مثال ، ECB ، CBC ، CTR) تصمیم بگیرید.
  4. از یک پیاده سازی استفاده کنید (مانند پایتون pycryptodome) برای انجام رمزگذاری.

مطمئناً در اینجا یک تمیز است پایان همراه با برنامه های دنیای واقعی از رمزگذاری AES برای به پایان رساندن همه چیزهایی که ما پوشش داده ایم:


پایان

AES (استاندارد رمزگذاری پیشرفته) یک الگوریتم رمزگذاری متقارن قوی و کارآمد است که در سراسر جهان برای ایمن سازی داده های دیجیتال استفاده می شود. این دستگاه در بلوک های 128 بیتی کار می کند و بسته به سطح امنیتی مورد نظر ، از اندازه های کلیدی 128 ، 192 یا 256 بیت استفاده می کند.

از طریق یک سری از 10 دور (برای AES-128) ، AES چندین عملیات ریاضی-از جمله جایگزینی (زیربنا) ، جابجایی (shiftrows) ، مخلوط کردن (MixColumns) و تحول وابسته به کلید (addroundkey)-را برای تبدیل متن دلپذیر به رمزگذاری.

درک کارهای داخلی AES ، مانند عملیات XORبا حسابی میدان محدود (GF (2⁸))وت گسترش کلیدی، بینش ارزشمندی در مورد چگونگی رمزگذاری مدرن محرمانه بودن داده ها را ارائه می دهد.

در حالی که انجام AES به صورت دستی به دلیل پیچیدگی آن غیر عملی است ، درک مفهومی به تغییر شکل قدرت و طراحی الگوریتم کمک می کند – اثبات اینکه رمزگذاری فقط مربوط به رازداری نیست بلکه در مورد تحول ساختاری و لایه ای است.


🌐 برنامه های دنیای واقعی رمزگذاری AES

AE به دلیل تعادل امنیت ، سرعت و سادگی به طور گسترده ای پذیرفته شده است. برخی از برنامه های کلیدی عبارتند از:

  1. ارتباطات ایمن

    • استفاده شده در HTTPS (SSL/TLS) برای رمزگذاری ترافیک وب
    • شاغل در رمزگذاری ایمیل (به عنوان مثال ، PGP/GPG)
    • از پیام ها در برنامه های پیام رسانی فوری مانند سیگنال و واتس اپ
  2. ذخیره و حفاظت داده ها

    • رمزگذاری داده های حساس در دیتابیس
    • استفاده شده برای سطح پرونده وت سطح دیسک رمزگذاری (به عنوان مثال ، BitLocker ، FileVault)
    • خدمات ابری مانند Google Drive یا Dropbox از AE برای رمزگذاری پرونده های ذخیره شده استفاده می کنند
  3. امنیت بی سیم

    • اساس رمزگذاری در استانداردهای Wi-Fi (WPA2/WPA3)
    • از دسترسی غیرمجاز به شبکه ها جلوگیری می کند
  4. دستگاه های تلفن همراه و تعبیه شده

    • برای تأمین اطلاعات در مورد تلفن های هوشمند ، تبلت ها و دستگاه های IoT استفاده می شود
    • به اجرای کمک می کند رمزگذاری پایان به پایان
  5. بانکداری و امور مالی

    • از معاملات ، پین ها و داده های مشتری در سیستم های بانکی آنلاین
    • استفاده شده در دستگاه خودپردازبا سیستم های کارت اعتباریوت API های مالی
  6. دولت و ارتش

    • AES-256 برای رمزگذاری تأیید شده است راز بالای اطلاعات آژانس امنیت ملی ایالات متحده (NSA)
    • ارتباطات ایمن و تبادل داده بین آژانس های دفاعی را تضمین می کند

💬 در مورد ریاضیات در پشت AE کنجکاو شده اید؟
اگر علاقه مند به عمیق تر شدن در ریاضیات پشت AES هستید-مانند نحوه ساخت S-Box با استفاده از زمینه های محدود ، چگونه MixColumns با ضرب چند جمله ای در GF (2⁸) کار می کند ، یا اینکه چگونه الگوریتم گسترش کلیدی کلیدهای گرد را به دست می آورد-احساس کنید که اظهار نظر “نیاز به ریاضی بیشتر!” 🧠✨

من خوشحال می شوم که آن را حتی بیشتر به روشی ساده و گام به گام تقسیم کنم!
🔐💡 بیایید جادویی را که دنیای دیجیتال ما را ایمن نگه می دارد ، کشف کنیم.

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا