# معمي الفدر

مُعَمِّي الفِدَر أو الكُتَل (بالإنجليزية: block cipher)‏ خوارزمية حتمية للتعمية، تُعمِّي مجموعة ثابتة الطول من البتات تُسمَّى الفِدرة. ومُعمِّيات الفِدر هي عناصر بناء رئيسة للعديد من بروتوكولات التعمية، وتستعمل قبل تبادل البيانات أو قبل تخزيتها لتأمينها بالتعمية.
يُعَمِّي هذا النوع من المُعمِّيات وحدةً مُفرَدةً من البيانات تكون ذات طول محدد لا يتغير، ويعتمد في أداء ذلك على مفتاح ثابت الطول أيضاً. وقد طُوِّرت أنماط عمل متعددة لهذا النوع من المعمِّيات يسمح لها بتكرار التعمية تكراراً آمناً، لا يمكن كشفه، ويُحافِظ فيه على سرية البيانات وسهولة مصادقتها. يمكن أن تُستعمل كذلك بوصفها جزءاً من عمل بروتوكول تعمية لأداء مهمة أعقد مثل مولد الأرقام شبه العشوائية ودوال التلبيد العامة.

## التسمية

يُسمَّى المُعَمِّي بالإنكليزية (بالإنجليزية: Block Cipher)‏، ويذكر معجم أكسفورد الكبير 22 معنى لكلمة (block) عندما تستعمل اسماً، منها المعنى السادس عشر وهو (قطعة من ذات الشيء). ومن معاني الكلمة أيضاً: (كُتلة من الصخر أو الحجر أو قطعة حجر صلبة مُعدَّة للبناء). أما كلمة (cipher) فلها معنيان في سياق التعمية: (طريقة كتابة سرية) ويُقصد بها المُعَمِّي، أو (أي نص مكتوب بطريقة الكتابة سرية)، ويُقصد بها النص المُعمَّى.
تذكر بعض المعاجم العربية مصطلح فِدْرة (الجمع: فِدَر وفِدْرات) في مقابل كلمة block، ومنها معجم المورد الأكبر لمنير البعلبكي الذي يُعرِّفها أنها: (مجموعة من وحدات المعلومات المختزَنة في مواقع متتالية من الحاسوب) والمغني الأكبر لحسن الكرمي، ويورد كلا المُعجمين لفظة (كُتْلة) مقابلاً لهذه الكلمة أيضاً. ويرد لفظ فِدْرة، أو ما اشتق منه، بهذه الدلالة في معجمات علمية متخصصة كثيرة منها مثلاً معجم مصطلحات العلم والتكنولوجيا وقاموس المصطلحات العلمية وقاموس دار العلم الهندسي الشامل. وقد أوردت معجمات أخرى ألفاظاً عربية في مقابل (block) هي: الكتلة والمربع والمجموعة والمَقطَع. وأما المعاجم الموحَّدة الصادرة عن مكتب تنسيق التعريب، فقد ذكر المعجم الموحَّد لمصطلحات المعلوماتية لفظي (كتلة) و(تجميعة) في مقابل (block)، واكتفى بذكر (تجميع) في مقابل (blocking)، في حين أورد المعجم الموحَّد لمصطلحات تقانة المعلومات لفظة (كُتلة) في مقابل (block) وعرَّفها بأنها: (مجموعة معطيات متشابهة تُعالَج كوحدة غير قابلة للقسمة).
وفي لسان العرب مادة (ف د ر) أن الفِدْرة هي (القطعة من كل شيء) جمعها فِدَر، ومنها فدرة اللحم: أي القطعة من اللحم المطبوخ البارد، وفدرة الليل القطعة منه، والفدرة من الجبل القطعة المشرفة منه. أما في مادة (ك ت ل)، ففيها أيضاً أن الكُتْلة هي ما جُمِع من طين أو صمغ أو لحم أو تمر، وجعمها كُتَل.
وذكر معجم الجمعية العلمية السورية للمعلوماتية اللفظة الأجنبية ووضع مقابلاً لها هو التشفير الكتلي، وعرَّفه أنه: (طريقة تعمية بالمفتاح السري، تُقسم فيها المعطيات إلى كُتل محددة الطول، وتُعَمَّى محتويات كل كتلة معاً. أما طول الكتلة المُعَمَّاة فيساوي طول الكتلة الأصلية). ثم استبدل مجمع اللغة العربية بدمشق بلفظة التشفير مصطلحَ التعمية فجعل المقابل: التعمية الكتلية. أما مجمع القاهرة فأورد لفظة: (وحدة تجميعية) في مقابل block.

## التعريف

يتكون مُعمِّي الفِدر من زوجين من الخوارزميات، واحدة للتعمية رمزها E، والأخرى لفك التعمية رمزها D. ولكل من الخوارزميتين مُدخَلان: فِدرة بطول n بتاً ومفتاح التعمية بطول k بتاً، ولكلا الخوارزميتين مُخرَج وحيد هو فِدرة طولها n بتاً. وخوارزمية فك التعمية هي دالة عكسية لخوارزمية التعمية. أي:
$E(k,n)=D^{-1}(k,n)$
يُعبَّر رياضياً عن مُعمِّي الفِدر بدالة تعمية كما يأتي:
$E_{K}(P):=E(K,P):\{0,1\}^{k}\times \{0,1\}^{n}\rightarrow \{0,1\}^{n}$
وفي هذه المعادلة: K هو مُدخَل يُمثِّل مفتاح التعمية، مقاسه k بتاً، وP هو مُدخَل آخر لسلسلة طولها n بتاً، ويُسمَّى الطول أيضاً مقاس الفِدرة. أما المُخرَج فهو سلسلة C طولها n بتاً. وتُسمَّى السلسلة P نصاً واضحاً، والسلسلة C نصاً معمى. لكل مفتاح K دالة عكوسة هي E$_K$(P) مُستقرُّها {0,1}$^n$، ومعكوسها هو $E_{K}^{-1}(C)$ مُعرَّف بالعلاقة الآتية:
$E_{K}^{-1}(C):=D_{K}(C)=D(K,C):\{0,1\}^{k}\times \{0,1\}^{n}\rightarrow \{0,1\}^{n}$
في هذه المعادلة: دخل الدالة هو المفتاح K والنص المُعمَّى C، وخرجها هو النص الواضح P.
وتعكس دالة فك التعمية D عمل دالة التعمية E لو اُستعمِل المفتاح K نفسه، أياً كان النص الصريح P، ويُعبَّر عن هذا رياضياً بالعلاقة الآتية:
$\forall P:D_{K}(E_{K}(P))=P$
لو كان دخل خوارزمية التعمية في المُعمِّي فِدرة طولها 128 بتاً تُمثِّل النص الواضح، كان خرجها فِدرة معمَّاة طولها 128 بتاً، تُمثِّل النص المُعمَّى. ويَحكُم مُدخَل آخر، هو المفتاح، تعمية النص الواضح إلى نص مُعمَّى. أما فك التعمية فيكون بأسلوب مشابه: لو كان دخل خوارزمية فك التعمية في المُعمِّي فِدرة ومفتاحاً، وكان طول الوحدة 128 بتاً، كان خرجُها الفِدرة الأصيلة الكائنة قبل التعمية التي يبلغ طولها 128 بتاً.

## نبذة تاريخية

يستند التصميم الحديث لمُعمِّي الفِدر على مبدأ المُعمِّي الجُداء المُكرر. حلل كلود شانون سنة 1949م في بحثه المُعنون (نظرية التواصل للأنظمة الآمنة) مُعمِّيات الجداء، واقترح استعمالها لتحسين الأمن لقدرتها على الجمع بين العمليات البسيطة مثل الإبدال والتباديل $^{[الإنجليزية]}$. تعمِّي المُعمِّيات الجُداء المكرر البيانات بعدة دورات، يُستعمَل في كلٍ منها مفتاح فرعي مُشتق من المفتاح الأصيل. شبكة فايستل $^{[الإنجليزية]}$ هي من الأمثلة على تطبيقات هذا المُعمِّي، وهي جزءٌ مدمج في المُعمِّي المُستعمل في معيار تعمية البيانات. تُصنَّف تطبيقات عديدة لمُعمِّي الفِدر، مثل معيار التعمية المتقدم بأنها شبكة إبدال وتباديل $^{[الإنجليزية]}$.

## التصميم
### معمِّيات الفِدر التكرارية

تُصنَّف خوازميات معظم مُعمِّيات الفِدر على أنها تكرارية، وهذا يعني أن التعمية تحصل بالتطبيق المُتكرر لتحويل عكوس على وحدة من النص الواضح لجعلها وحدة معمَّاة لها الطول نفسه. يُسمَّى هذا التحويل بدالة الدورة، ويُشار له اختصاراً بالدورة.
مثلاً، ليكن معمي الفِدر بثلاثة دورات هي على الترتيب R$_1$ وR$_2$ وR$_3$. يُحسَب النص المُعمَّى C من تعمية النص الواضح P وفق المعادلة:
$C=R_{3}(R_{2}(R_{1}(P)))$
يمكن عكس كل دورة باستعمال دالة الدورة المعكوسة iR لاستعادة النص الواضح من النص الأصيل وفق المعادلة:
$P=iR_{1}(iR_{2}(iR_{3}(C)))$
تكون الدوال المُستعملة في الدورات R$_1$ وR$_2$ وR$_3$ متطابقة عادةً ولكنها تزوَّد بمفاتيح مختلفة تُسمَّى مفاتيح الدورات، هي في هذه الحالة K$_1$ وK$_2$ وK$_3$. تُشتق هذه المفاتيح من المفتاح الأصيل K وتكون متمايزة ومختلفة عنه لجعل المُعمي أكثر أمناً.

### شبكة الإعاضة والتباديل

شبكة الإعاضة والتباديل هي نوع مشهور من مُعَمِّيات الفِدر التكرارية، دخلها فِدرة من النص الواضح ومفتاح، تُطبِّق عليه دورات متتابعة من الإعاضة والتباديل لُتنتج على خرجها فِدرة مُعمَّأة. تخلط مرحلة الإعاضة غير الخطية بتات المفتاح مع بتات النص الواضح لإضافة عنصر الإرباك، أما مرحلة التباديل فتضيف عنصر النشر إلى العملية.
تحوي الشبكة على نوعين من الصناديق: صناديق الإعاضة وصناديق التباديل. يُبدِّل صندوق الإعاضة بتات الخرج ببتات فِدرة على دخله. وتضبط عملية الإعاضة بدالة رياضية تحقق خاصية التقابل، أي يكون لكل مجموعة فريدة من بتات الدخل قيمة واحدة ممكنة مقابلة في الخرج، وهكذا يُمكِن فك التعمية لو عُرِفت دالة الإعاضة بتطبيقها تطبيقاً معاكساً. لكي يكون صندوق الإعاضة آمناً، يلزم أن يؤدي تغيير أي بت في الدخل لتغيير نصف بتات الخرج تقريباً، تُسمَّى هذه الخاصية بأثر التيهوز وهي تضمن أن حساب بت في الخرج يعتمد على بتات الدخل كلها.
يُمثِّل الجدول التالي صندوق الإعاضة (S$_5$) المُستعمل في معيار تعمية البيانات، وهو الأساس الذي تعتمد عليه عملية الإعاضة بستة بتات على دخل الصندوق أربعةَ بتات تظهر على خرجه. يُقسَّم الدخل إلى قسمين، البتان الأكثر أهمية ويُستعملان لتحديد السطر، والبتات الأربعة الأقل أهمية وتُستعمل لتحديد العمود، وهكذا يُقابل الدخل "011011" (البتان ذوا الأهمية العليا بالخط الغليظ) الخرج "1101".
| الصندوق S$_5$ | الصندوق S$_5$ | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية | البتات الأربعة الأقل أهمية |
| الصندوق S$_5$ | الصندوق S$_5$ | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| البتان الأكثر أهمية | 00 | 0010 | 1100 | 0100 | 0001 | 0111 | 1010 | 1011 | 0110 | 1000 | 0101 | 0011 | 1111 | 1101 | 0000 | 1110 | 1001 |
| البتان الأكثر أهمية | 01 | 1110 | 1011 | 0010 | 1100 | 0100 | 0111 | 1101 | 0001 | 0101 | 0000 | 1111 | 1010 | 0011 | 1001 | 1000 | 0110 |
| البتان الأكثر أهمية | 10 | 0100 | 0010 | 0001 | 1011 | 1010 | 1101 | 0111 | 1000 | 1111 | 1001 | 1100 | 0101 | 0110 | 0011 | 0000 | 1110 |
| البتان الأكثر أهمية | 11 | 1011 | 1000 | 1100 | 0111 | 0001 | 1110 | 0010 | 1101 | 0110 | 1111 | 0000 | 1001 | 1010 | 0100 | 0101 | 0011 |
أما صندوق التباديل فيبدِّل مواقع بتات خرج صناديق الإعاضة في إحدى الدورات ويدفع بها لتكون دخلاً لصناديق الإعاضة في الدورة التالية. كلما وزَّع صندوق التباديل بتات خرج صندوق الإعاضة على عدد أكبر من صناديق الإعاضة في المرحلة التالية، زادت مناعة التعمية وصَعُب استخراج معماها. تولَّد مفاتيح فرعية من المفتاح الأصيل، وتُسهم في التعمية بجعلها مُدخَلاً لعملية رياضية إلى جانب خرج صندوق التباديل، من العمليات الشائعة الفصل المنطقي الحصري $^{[الإنجليزية]}$ (XOR).

### معميات فايستل

تُقسَم وحدة النص الواضح المُجمَّعة في معمي فايستل إلى قسمين متساويي الطول: أيمن وأيسر. تُطبَّق دالة الدورة على القسم الأيمن مع مفتاح الدورة الفرعي، ثُم تُنفَّذ عملية الفصل الحصري (XOR) بين خرج الدالة والقسم الأيسر، ويُسمَّى الناتج خرج الدورة. في الدروة التالية، يعاد تنفيذ العملية نفسها، ولكن يحل خرج الدورة الأولى محل القسم الأيمن، والقسم الأيمن، كما كان عند التقسيم، محل القسم الأيسر.
توصف العملية رياضياً كما يلي: لتكن ${\rm {F}}$ دالة الدورة، ولتكن $K_{0},K_{1},\ldots ,K_{n}$ المفاتيح الفرعية التي ستستعمل مع الدورات $0,1,\ldots ,n$ على الترتيب. تُقسَّم وحدة النص الواضح المُجمَّعة بعدها إلى قسمين أيمن وأيسر، هما على الترتيب ($L_{0}$, $R_{0}$).
تنفَّذ العمليات التالية في كل دورة $i=0,1,\dots ,n$:
    $L_{i+1}=R_{i}\,$
    $R_{i+1}=L_{i}\oplus {\rm {F}}(R_{i},K_{i})$
ويكون النص المُعمَّى في النهاية هو $(R_{n+1},L_{n+1})$.
أما فك التعمية فتبدأ بالنص المُعمَّى $(R_{n+1},L_{n+1})$، وتُنفذ فيها الدورات بالترتيب $i=n,n-1,\ldots ,0$، وتنفَّذ العمليات التالية في كل دورة:
    $R_{i}=L_{i+1}\,$
    $L_{i}=R_{i+1}\oplus {\rm {F}}(L_{i+1},K_{i})$.
ينتج النص الواضح $(L_{0},R_{0})$ في نهاية عملية فك التعمية.
يتميز مُعمي فايستل مقارنة مع شبكة الإبدال والتباديل بأن دالة الدورة ${\rm {F}}$ معفية من شرط أن تكون عكوسة.

### معميات لاي وماسي

تتشابه معميات لاي وماسي في بنيتها وخواصها مع معميات ف، فايستل، فمثلاً دالة الدورة $\mathrm {F}$ معفية من شرط أن تكون عكوسة، وتُقسم وحدة الدخل المُجَمَّعة فيها إلى قسمين أيمن وأيسر كذلك، ولكن دالة الدورة تُطبَّق على الفرق بين القسمين ثُمَّ تُضاف نتيجة الدالة إلى القسمين الأيمن والأيسر ليكونا دخل الدورة التالية.
يُعبر عن المُعمي رياضياً كما يأتي: لتكن $\mathrm {F}$ دالة الدورة و$\mathrm {H}$ دالة منتصف الدورة والمفاتيح $K_{0},K_{1},\ldots ,K_{n}$ هي المفاتيح الفرعين للدورات $0,1,\ldots ,n$ على الترتيب.
تُقسم وحدة النص الواضح إلى قسمين متساويين ($L_{0}$, $R_{0}$)، ويُحسَب التالي في كل دروة $i=0,1,\dots ,n$:
$(L_{i+1}',R_{i+1}')=\mathrm {H} (L_{i}'+T_{i},R_{i}'+T_{i}),$
وفيها
$T_{i}=\mathrm {F} (L_{i}'-R_{i}',K_{i})$
و
$(L_{0}',R_{0}')=\mathrm {H} (L_{0},R_{0})$
ويكون النص المُعمَّى في نهاية كل الدورات هو:
$(L_{n+1},R_{n+1})=(L_{n+1}',R_{n+1}')$
أما فك التعمية فيبدأ بالنص المُعمَّى الذي يُقسَم إلى قسمين: $(L_{n+1},R_{n+1})$ وتكون الدورات معكوسة، أي $i=n,n-1,\ldots ,0$، وفي كل منها يُحسب ما يلي:
$(L_{i}',R_{i}')=\mathrm {H} ^{-1}(L_{i+1}'-T_{i},R_{i+1}'-T_{i})$
وفيها
$T_{i}=\mathrm {F} (L_{i+1}'-R_{i+1}',K_{i})$
و
$(L_{n+1}',R_{n+1}')=\mathrm {H} ^{-1}(L_{n+1},R_{n+1})$
ويُستعاد النص الواضح $(L_{0},R_{0})=(L_{0}',R_{0}')$ بعد نهاية الدورات كلها.

## هوامش

* ↑ Block
* ↑ universal hash tag
* ↑ A piece of the same stuff
* ↑ A mass of rock or stone
* ↑ A solid piece of stone, prepared for building purposes
* ↑ A secret or disguise manner of writing
* ↑ Anything written in Cipher
* ↑ key size
* ↑ block size
* ↑ invertible function
* ↑ iterated product cipher
* ↑ Communication Theory of Secrecy Systems
* ↑ iterated
* ↑ round function
* ↑ round key
* ↑ substitution–permutation network
* ↑ confusion
* ↑ diffusion
* ↑ substitution box (S-box)
* ↑ permutation box (P-box)
* ↑ Feistel cipher
* ↑ Lai–Massey scheme
* ↑ half-round function