حساب الحقول المنتهية

في الرياضيات ، الحساب في الحقول المنتهية هو الحساب في حقل منتهٍ ( حقل يحتوي على عدد محدود من العناصر ) على عكس الحساب في حقل يحتوي على عدد لا نهائي من العناصر، مثل حقل الأعداد النسبية .

يوجد عدد لا نهائي من الحقول المنتهية المختلفة. عدد عناصرها بالضرورة يكون على الصورة p n ، حيث p عدد أولي و n عدد صحيح موجب ، والحقلان المنتهيان من نفس الحجم متماثلان . يُسمى العدد الأولي p خاصية الحقل، ويُسمى العدد الصحيح الموجب n بُعد الحقل على حقله الأولي .

تُستخدم الحقول المنتهية في مجموعة متنوعة من التطبيقات، بما في ذلك في نظرية الترميز الكلاسيكية في رموز الكتل الخطية مثل رموز BCH وتصحيح أخطاء ريد-سولومون ، وفي خوارزميات التشفير مثل خوارزمية التشفير Rijndael ( AES )، وفي جدولة البطولات، وفي تصميم التجارب .

تمثيل متعدد الحدود الفعال

يُرمز إلى الحقل المنتهي ذي p n عنصرًا بالرمز GF( p n )، ويُسمى أيضًا حقل غالوا من الرتبة p n ، تكريمًا لمؤسس نظرية الحقول المنتهية، إيفاريست غالوا . إن GF( p )، حيث p عدد أولي، هو ببساطة حلقة الأعداد الصحيحة بتردد p . أي أنه يمكن إجراء العمليات (الجمع، الطرح، الضرب) باستخدام العملية المعتادة على الأعداد الصحيحة، متبوعةً بالاختزال بتردد p . على سبيل المثال، في GF(5)، يُختزل 4 + 3 = 7 إلى 2 بتردد 5. أما القسمة فهي الضرب في المعكوس بتردد p ، والذي يمكن حسابه باستخدام خوارزمية إقليدس الموسعة .

تُعدّ GF(2) حالة خاصة ، حيث يكون الجمع هو عملية XOR (أو الحصرية) والضرب هو عملية AND ( الضرب) . وبما أن العنصر الوحيد القابل للعكس هو 1، فإن القسمة هي دالة التطابق .

يمكن تمثيل عناصر حقل غالوا GF( p, n ) على شكل كثيرات حدود من الدرجة الأقل من n على حقل غالوا GF( p ). تُجرى العمليات بتردد m(x)، حيث m(x) كثيرة حدود غير قابلة للاختزال من الدرجة n على حقل غالوا GF( p )، على سبيل المثال باستخدام القسمة المطولة لكثيرات الحدود . الجمع هو الجمع المعتاد لكثيرات الحدود، ولكن تُختزل المعاملات بتردد p . الضرب هو أيضًا الضرب المعتاد لكثيرات الحدود، ولكن تُضرب المعاملات بتردد p وتُضرب كثيرات الحدود بتردد كثيرة الحدود m(x) . [ 1 ] يُسمى هذا التمثيل بدلالة معاملات كثيرات الحدود أساسًا أحادي الحد (أو أساسًا لكثيرات الحدود).

توجد تمثيلات أخرى لعناصر حقل غالوا GF( p, n )؛ بعضها متماثل مع التمثيل متعدد الحدود المذكور أعلاه، والبعض الآخر يختلف عنه تمامًا (على سبيل المثال، باستخدام المصفوفات). قد يكون لاستخدام أساس طبيعي مزايا في بعض السياقات.

عندما يكون العدد الأولي 2، جرت العادة على التعبير عن عناصر حقل غالوا GF( p, n ) كأعداد ثنائية ، حيث يُمثل معامل كل حد في متعددة الحدود بت واحد في التعبير الثنائي للعنصر المقابل. تُضاف الأقواس المعقوفة ({ و}) أو ما شابهها من المحددات عادةً إلى الأعداد الثنائية، أو إلى مكافئاتها السداسية عشرية ، للإشارة إلى أن القيمة تُعطي معاملات أساس الحقل، وبالتالي تُمثل عنصرًا من عناصر الحقل. على سبيل المثال، فيما يلي تمثيلات متكافئة للقيمة نفسها في حقل منتهٍ ذي خاصية 2:

متعدد الحدودس 6 + س 4 + س + 1
ثنائي{01010011}
النظام الست عشري{53}

كثيرات الحدود الأولية

هناك العديد من كثيرات الحدود غير القابلة للاختزال (تسمى أحيانًا كثيرات الحدود المختزلة ) التي يمكن استخدامها لتوليد حقل منتهٍ، لكنها لا تؤدي جميعها إلى نفس تمثيل الحقل.

تُسمى كثيرة الحدود غير القابلة للاختزال أحادية المعامل من الدرجة والتي لها معاملات في الحقل المنتهي GF( q )، حيث q = p t لعدد أولي p وعدد صحيح موجب t ، كثيرة حدود أولية إذا كانت جميع جذورها عناصر أولية في GF( q , n ). [ 2 ] [ 3 ] في تمثيل كثيرات الحدود للحقل المنتهي، يعني هذا أن x عنصر أولي. يوجد على الأقل كثيرة حدود غير قابلة للاختزال يكون x عنصرًا أوليًا فيها. [ 4 ] بعبارة أخرى، بالنسبة لكثيرة الحدود الأولية، تولد قوى x كل قيمة غير صفرية في الحقل.

في الأمثلة التالية ، يُفضّل عدم استخدام التمثيل متعدد الحدود، لأن معنى x يتغير بين الأمثلة. متعددة الحدود أحادية المعامل غير القابلة للاختزال x⁸ + x⁴ + + x + 1 على GF(2) ليست أولية. ليكن λ جذرًا لهذه المتعددة الحدود (في التمثيل متعدد الحدود، يكون هذا الجذر هو x ) ، أي λ⁸ + λ⁴ + λ³ + λ + 1 = 0. الآن λ⁵ = 1 ، لذا فإن λ ليس عنصرًا أوليًا في GF(2 ) ويُولّد زمرة جزئية ضربية من الرتبة 51. [ 5 ] متعددة الحدود أحادية المعامل غير القابلة للاختزال x⁸ + x⁴ + + + 1 على GF(2) أولية ، وجميع جذورها الثمانية هي مولدات لـ GF ( 2 ) .

تحتوي جميع حقول GF(2 8 ) على 128 مولدًا (انظر عدد العناصر الأولية )، وبالنسبة لكثير الحدود الأولي، فإن 8 منها جذور لكثير الحدود المختزل. يُعدّ وجود x كمولد لحقل منتهٍ مفيدًا للعديد من العمليات الحسابية الرياضية.

الجمع والطرح

يتم إجراء الجمع والطرح عن طريق جمع أو طرح اثنين من هذه كثيرات الحدود معًا، وتقليل النتيجة بتردد الخاصية.

في حقل منتهٍ ذي خاصية 2، تكون عمليات الجمع بتردد 2، والطرح بتردد 2، وXOR متطابقة. وبالتالي،

متعدد الحدود( س 6 + س 4 + س + 1) + ( س 7 + س 6 + س 3 + س ) = س 7 + س 4 + س 3 + 1
ثنائي{01010011} + {11001010} = {10011001}
النظام الست عشري{53} + {CA} = {99}

في عملية الجمع العادية لكثيرات الحدود، سيحتوي المجموع على حد 2 × 6. يصبح هذا الحد 0 × 6 ويتم حذفه عند اختزال الناتج بتردد 2.

إليكم جدولاً يحتوي على كل من المجموع الجبري العادي ومجموع الحقل المنتهي المميز 2 لبعض كثيرات الحدود:

ص 1ص 2p 1 + p 2 تحت...
K[ x ]GF(2 n )
x 3 + x + 1 x 3 + x 22 × 3 + س 2 + س + 1 x 2 + x + 1
x 4 + x 2س 6 + س 2س 6 + س 4 + 2 س 2س 6 + س 4
س + 1 x 2 + 1 x 2 + x + 2 x 2 + x
x 3 + xx 2 + 1 x 3 + x 2 + x + 1 x 3 + x 2 + x + 1
x 2 + xx 2 + x2 × 2 + 2 ×0

في تطبيقات علوم الحاسوب، يتم تبسيط العمليات للحقول المنتهية ذات الخاصية 2، والتي تسمى أيضًا حقول غالوا GF(2 n ) ، مما يجعل هذه الحقول خيارات شائعة بشكل خاص للتطبيقات.

الضرب

الضرب في حقل منتهٍ هو الضرب بتردد متعدد حدود اختزالي غير قابل للاختزال يُستخدم لتعريف الحقل المنتهي. (أي أنه ضرب متبوع بقسمة باستخدام متعدد الحدود المختزل كمقسوم عليه - والباقي هو الناتج). يمكن استخدام الرمز "•" للدلالة على الضرب في حقل منتهٍ.

حقل ريجينديل المحدود (AES)

يستخدم معيار Rijndael (المعروف أيضًا باسم AES) الحقل المنتهي المميز 2 ذو 256 عنصرًا، والذي يُسمى أيضًا حقل غالوا GF(2 8 ). ويستخدم متعدد الحدود المختزل التالي للضرب:

x 8 + x 4 + x 3 + x + 1.

على سبيل المثال، {53} • {CA} = {01} في حقل رينديل لأن

( x 6 + x 4 + x + 1)( x 7 + x 6 + x 3 + x )
=( x 13 + x 12 + x 9 + x 7 ) + ( x 11 + x 10 + x 7 + x 5 ) + ( x 8 + x 7 + x 4 + x 2 ) + ( x 7 + x 6 + x 3 + x )
=x 13 + x 12 + x 9 + x 11 + x 10 + x 5 + x 8 + x 4 + x 2 + x 6 + x 3 + x
=x 13 + x 12 + x 11 + x 10 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + x 2 + x

و

x 13 + x 12 + x 11 + x 10 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + x 2 + x mod x 8 + x 4 + x 3 + x 1 + 1
=(11111101111110 مود 100011011)
={3F7E mod 11B} = {01}
=1 (عشري)

ويمكن توضيح ذلك من خلال القسمة المطولة (الموضحة باستخدام الترميز الثنائي، لأنه مناسب تمامًا لهذه المهمة. لاحظ أنه يتم تطبيق عملية "أو الحصرية" في المثال وليس الطرح الحسابي، كما قد يستخدم المرء في القسمة المطولة في المدرسة الابتدائية).

 11111101111110 (وزارة الدفاع) 100011011 ^100011011  01110000011110 ^ 100011011  0110110101110 ^100011011  010101110110 ^100011011  00100011010 ^100011011  000000001

(العنصران {53} و {CA} هما معكوسان ضربيان لبعضهما البعض لأن حاصل ضربهما يساوي 1. )

يمكن أيضًا إجراء عملية الضرب في هذا الحقل المنتهي المحدد باستخدام نسخة معدلة من " خوارزمية الفلاح ". يُمثَّل كل متعدد حدود باستخدام نفس الترميز الثنائي المذكور أعلاه. ثمانية بتات كافية لأن الدرجات الممكنة في حدود كل متعدد حدود (مختزل) تقتصر على الدرجات من 0 إلى 7.

تستخدم هذه الخوارزمية ثلاثة متغيرات (بالمعنى البرمجي )، يحمل كل منها تمثيلاً ثماني البتات. يتم تهيئة a و b بالمضروب؛ بينما يقوم p بتجميع الناتج ويجب تهيئته إلى 0.

في بداية ونهاية الخوارزمية، وفي بداية ونهاية كل تكرار، يكون هذا الشرط صحيحًا: a b + p هو حاصل الضرب. وهذا صحيحٌ بديهيًا عند بدء الخوارزمية. وعند انتهاء الخوارزمية، ستكون قيمة a أو b صفرًا، وبالتالي سيحتوي p على حاصل الضرب.

  • قم بتشغيل الحلقة التالية ثماني مرات (مرة واحدة لكل بت). لا بأس بالتوقف عندما تكون قيمة a أو b صفرًا قبل التكرار:
    1. إذا كانت البتة الموجودة في أقصى يمين b مضبوطة، فقم بإجراء عملية XOR على حاصل ضرب p في قيمة a . هذا هو جمع كثيرات الحدود.
    2. قم بإزاحة b بت واحد إلى اليمين، مع تجاهل البت الأيمن، وجعل البت الأيسر يساوي صفرًا. هذا يقسم متعددة الحدود على x ، مع تجاهل الحد x 0 .
    3. قم بتتبع ما إذا كانت البتة الموجودة في أقصى اليسار من a مضبوطة على واحد وقم بتسمية هذه القيمة باسم carry .
    4. قم بإزاحة بت واحد إلى اليسار، مع تجاهل البت الأيسر، وجعل البت الأيمن الجديد صفرًا. هذا يضرب متعدد الحدود في x ، ولكن لا يزال يتعين علينا مراعاة الحمل الذي يمثل معامل x 7 .
    5. إذا كانت قيمة الحمل تساوي واحدًا، أو قيمة حصرية أو عددًا سداسيًا عشريًا 0x1b(00011011 في النظام الثنائي)، 0x1bفإن ذلك يتوافق مع متعددة الحدود غير القابلة للاختزال مع حذف الحد الأعلى. من الناحية النظرية، يكون مجموع الحد الأعلى لمتعددة الحدود غير القابلة للاختزال والحمل يساوي صفرًا بتردد 2.
  • أصبح المنتج الآن بحوزة الشخص p

يمكن تعميم هذه الخوارزمية بسهولة على الضرب في حقول أخرى ذات خاصية 2، مع تغيير أطوال a و b و p والقيمة 0x1bبشكل مناسب.

المعكوس الضربي

يمكن حساب المعكوس الضربي لعنصر a من حقل منتهٍ بعدة طرق مختلفة:

حيل التنفيذ

الجداول المستندة إلى المولدات

عند تطوير خوارزميات لحساب حقول غالوا على حقول غالوا الصغيرة، يتمثل أحد أساليب تحسين الأداء الشائعة في إيجاد مولد g واستخدام الهوية:

أب=زسجلز(أب)=زسجلز(أ)+سجلز(ب){\displaystyle ab=g^{\log _{g}(ab)}=g^{\log _{g}(a)+\log _{g}(b)}}

لتنفيذ عملية الضرب كسلسلة من عمليات البحث في الجداول عن دالتي log g ( a ) و g( y) وعملية جمع الأعداد الصحيحة. يستغل هذا خاصية احتواء كل حقل منتهٍ على مولدات. في مثال حقل رينديل، تُعدّ كثيرة الحدود x + 1 (أو {03}) أحد هذه المولدات. الشرط الضروري، ولكنه غير كافٍ، لكي تكون كثيرة الحدود مولدًا هو أن تكون غير قابلة للاختزال .

يجب على التنفيذ اختبار الحالة الخاصة المتمثلة في أن يكون a أو b يساوي صفرًا، لأن الناتج سيكون صفرًا أيضًا.

يمكن استخدام نفس هذه الاستراتيجية لتحديد المعكوس الضربي مع العنصر المحايد:

أ-1=زسجلز(أ-1)=ز-سجلز(أ)=ز|ز|-سجلز(أ){\displaystyle a^{-1}=g^{\log _{g}\left(a^{-1}\right)}=g^{-\log _{g}(a)}=g^{|g|-\log _{g}(a)}}

هنا، رتبة المولد، | g | ، هي عدد العناصر غير الصفرية في الحقل. في حالة GF(2^ 8 )، تكون هذه الرتبة 2 ^8 - 1 = 255. أي، بالنسبة لمثال Rijndael: ( x + 1) 255 = 1. لذا، يمكن إجراء ذلك باستخدام جدولَي بحث وعملية طرح عدد صحيح. كما أن استخدام هذه الفكرة في الأسس يُحقق فائدةً أيضًا.

أن=زسجلز(أن)=زنسجلز(أ)=زنسجلز(أ)(تعديل|ز|){\displaystyle a^{n}=g^{\log _{g}\left(a^{n}\right)}=g^{n\log _{g}(a)}=g^{n\log _{g}(a){\pmod {|g|}}}}

يتطلب هذا البحث في جدولين، وضرب عدد صحيح، وإجراء عملية حساب باقي القسمة على عدد صحيح. ويجب إجراء اختبار للحالة الخاصة a = 0 .

مع ذلك، في تطبيقات التشفير، يجب توخي الحذر عند استخدام هذه التطبيقات، لأن بنية ذاكرة التخزين المؤقت في العديد من المعالجات الدقيقة تؤدي إلى توقيت متغير للوصول إلى الذاكرة. وهذا قد يؤدي إلى تطبيقات عرضة لهجوم التوقيت .

مضاعفة بدون حمل

بالنسبة للحقول الثنائية GF(2^ n )، يمكن تنفيذ ضرب الحقول باستخدام عملية ضرب بدون حمل، مثل مجموعة تعليمات CLMUL ، وهي مناسبة لقيم n ≤ 64. تستخدم عملية الضرب عملية ضرب بدون حمل واحدة لإنتاج ناتج (يصل إلى 2^ n - 1 بت)، ثم عملية ضرب بدون حمل أخرى لمعكوس متعدد حدود الحقل المحسوب مسبقًا لإنتاج ناتج قسمة = ⌊ناتج / (متعدد حدود الحقل)⌋، ثم ضرب ناتج القسمة في متعدد حدود الحقل، ثم عملية XOR: النتيجة = ناتج ((متعدد حدود الحقل) ⌊ناتج / (متعدد حدود الحقل)⌋). تُستخدم الخطوات الثلاث الأخيرة (pclmulqdq، pclmulqdq، xor) في خطوة اختزال باريت لحساب CRC بسرعة باستخدام تعليمة pclmulqdq في x86 . [ 8 ]

الأس المركب

عندما يكون k عددًا مركبًا ، توجد تماثلات من حقل ثنائي GF(2^ k ) إلى حقل امتداد لأحد حقوله الفرعية، أي GF((2^ m ) n ) حيث k = m/ n . يُمكن استخدام أحد هذه التماثلات لتبسيط الاعتبارات الرياضية، حيث تكون درجة الامتداد أصغر، مع التضحية بتمثيل العناصر الآن على حقل فرعي أكبر. [ 9 ] ولتقليل عدد البوابات في تطبيقات الأجهزة، قد تتضمن العملية تداخلًا متعددًا، مثل التحويل من GF(2^ 8 ) إلى GF(((2^ 2 ) 2 ) 2 ). [ 10 ]

أمثلة على البرامج

أمثلة على برمجة لغة C

إليكم بعض أكواد لغة C التي تقوم بجمع وضرب الأعداد في الحقل المنتهي المميز 2 من الرتبة 2 8 ، والذي يستخدم على سبيل المثال خوارزمية Rijndael أو Reed–Solomon، باستخدام خوارزمية الضرب الروسية للفلاحين :

/* جمع عددين في الحقل المنتهي GF(2^8) */ uint8_t gadd ( uint8_t a , uint8_t b ) { return a ^ b ; }/* اضرب عددين في الحقل المنتهي GF(2^8) المعرّف * بعلاقة كثير الحدود modulo x^8 + x^4 + x^3 + x + 1 = 0 * (الطريقة الأخرى هي إجراء ضرب بدون حمل متبوعًا باختزال معياري) */ uint8_t gmul ( uint8_t a , uint8_t b ) { uint8_t p = 0 ; /* مُجمِّع ناتج الضرب */ while ( a != 0 && b != 0 ) { if ( b & 1 ) /* إذا كان لكثير الحدود الخاص بـ b حد ثابت، أضف a المقابل إلى p */ p ^= a ; /* الجمع في GF(2^m) هو XOR لمعاملات كثير الحدود */إذا كان ( a & 0x80 ) /* GF modulo: إذا كان لـ a حد غير صفري x^7، فيجب اختزاله عندما يصبح x^8 */ a = ( a << 1 ) ^ 0x11b ; /* اطرح (XOR) متعددة الحدود الأولية x^8 + x^4 + x^3 + x + 1 (0b1_0001_1011) - يمكنك تغييرها ولكن يجب أن تكون غير قابلة للاختزال */ وإلا a <<= 1 ; /* مكافئ لـ a*x */ b >>= 1 ; } return p ; }

يحتوي هذا المثال على تسريبات جانبية في الذاكرة المؤقتة والتوقيت وتوقع الفروع ، وهو غير مناسب للاستخدام في علم التشفير.

مثال على البرمجة D

سيقوم برنامج D هذا بضرب الأعداد في حقل رينديل المنتهي وإنشاء صورة PGM :

/** اضرب عددين في الحقل المنتهي GF(2^8) المعرف بواسطة متعددة الحدود x^8 + x^4 + x^3 + x + 1. */ ubyte gMul ( ubyte a , ubyte b ) pure nothrow { ubyte p = 0 ;لكل عداد بايت غير قابل للتغيير ؛ من 0 إلى 8 ، { p ^= -( b & 1 ) &a a ; auto mask = -(( a >> 7 ) & 1 ); // 0b1_0001_1011 هي x^8 + x^4 + x^3 + x + 1. a = cast ( ubyte )(( a << 1 ) ^ ( 0b1_0001_1011 & mask )); b >>= 1 ; }أعد p ; }void main () { import std . stdio , std . conv ; enum width = ubyte . max + 1 , height = width ;auto f = File ( " rijndael_finite_field_multiplication.pgm" , " wb" ); f.writefln ( "P5\ n %d %d\ n255 " , width , height ) ; foreach ( immutable y ; 0 .. height ) foreach ( immutable x ; 0 .. width ) { immutable char c = gMul ( x.to ! ubyte , y.to ! ubyte ) ; f.write ( c ) ; } }

لا يستخدم هذا المثال أي فروع أو عمليات بحث في الجداول لتجنب القنوات الجانبية، وبالتالي فهو مناسب للاستخدام في علم التشفير.

انظر أيضاً

مراجع

  1. هانكرسون، فانستون ومينيزيس 2004 ، ص 28
  2. يجب أن تقع جذور مثل هذه متعددة الحدود في حقل تمديد لـ GF( q ) لأن متعددة الحدود غير قابلة للاختزال، وبالتالي، ليس لها جذور في GF( q ).
  3. ^ مولين وباناريو 2013 ، ص. 17
  4. تصميم وتحليل التجارب . جون وايلي وأولاده المحدودة. 8 أغسطس 2005. الصفحات 716-720 . doi : 10.1002/0471709948.app1 . 
  5. ^ ليدل ونيديرايتر 1983 ، ص. 553
  6. فان، هاينينغ. " خوارزمية عكسية لـ GF(2 n ) تعتمد على التتبع" (ملف PDF) . مؤرشف من الأصل في 21 أبريل 2025. تم الاطلاع عليه في 10 يناير 2025 .{{cite web}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط )
  7. غروشيك، أ.؛ فابسيتش، ت. (2018)، "حساب المعكوسات الضربية في الحقول المنتهية بالقسمة المطولة" (ملف PDF) ، مجلة الهندسة الكهربائية ، 69 (5): 400-402 ، Bibcode : 2018JEE....69..400G ، doi : 10.2478/jee-2018-0059 ، S2CID 115440420 
  8. "حساب CRC السريع لكثيرات الحدود العامة باستخدام تعليمات PCLMULQDQ" (ملف PDF) . www.intel.com . 2009. تاريخ الاسترجاع: 2020-08-08 .
  9. "تطبيقات برمجية فعّالة للحقول المحدودة الكبيرة GF(2n) لتطبيقات التخزين الآمن" (ملف PDF) . www.ccs.neu.edu . تاريخ الاسترجاع: 8 أغسطس 2020 .
  10. "bpdegnan/aes" . GitHub .

مصادر

  • ليدل، رودولف. نيدريتر، هارالد (1983)، الحقول المحدودة ، أديسون ويسلي، ISBN 0-201-13519-1(أعيد إصداره عام 1984 من قبل مطبعة جامعة كامبريدج، رقم ISBN) 0-521-30240-4).
  • مولين، غاري ل.؛ باناريو، دانيال (2013)، دليل الحقول المنتهية ، مطبعة سي آر سي، رقم ISBN 978-1-4398-7378-6
  • هانكرسون، داريل؛ فانستون، سكوت؛ مينيزيس، ألفريد (2004)، دليل تشفير المنحنيات الإهليلجية ، سبرينغر، ISBN 978-0-387-21846-5