RAPPEL: Toutes les opérations sur les polynômes, mêmes les plus élémentaires, se font dans le corps de Galois GF(256).
Comme je l'ai dit, tout cela est expliqué dans la norme ISO/IEC 16022:
Par exemple, si je détaille le calcul du dernier terme: (2*4*8*16*32)For example the fifth degree generator polynomial is:
(x + 2)(x + 4)(x + 8)(x + 16)(x + 32)
= x5 + (2 + 4 + 8 + 16 + 32)x4 + ((2 * 4) + (2 * 8) + (2 * 16) + (2 * 32) + (4 * 8) + (4 * 16) + (4 * 32) + (8 * 16) +
(8 * 32) + (16 * 32))x3 + ((2 * 4 * 8) + (2 * 4 * 16) + (2 * 4 * 32) + (2 * 8 * 16) + (2 * 8 * 32) + (2 * 16 * 32) +
(4 * 8 * 16) + (4 * 8 * 32) + (4 * 16 * 32) + (8 * 16 * 32))x2 + ((2 * 4 * 8 * 16) + (2 * 4 * 8 * 32) + (2 * 4 * 16 * 32)
+ (2 * 8 * 16 * 32) + (4 * 8 * 16 * 32))x + (2 * 4 * 8 * 16 * 32)
= x5 + 62x4 + 111x3 + 15x2 + 48x + 228.
Note that this Galois Field arithmetic is not normal integer arithmetic:
- is equivalent to +, which is an “exclusive-or” operation in this Field,
and
multiplication is byte-wise modulo 100101101 for each binary polynomial term generated by bit-by-bit multiplication.
et si je détaille le calcul du coef du terme en x: ((2*4*8*16)+(2*4*8*32)+(2*4*16*32)+(2*8*16*32)+(4*8*16*32)).x2*4*8*16*32 = 32768 = 1000000000000000 (binaire) 1000000000000000 | 100101101 001011010000000 |----------- 01011010000000 | 10010100 1011010000000 | 010001010000 | 10001010000 | 0011100100 | 011100100 | 11100100 | 1000000000000000 = 10010100 * 100101101 + 11100100 32768 = 148 * 301 + 228 => (2*4*8*16*32) = 228 dans GF(256)
(2*4*8*16) --> 180 = 10110100 (2*4*8*32) --> 69 = 01000101 (2*4*16*32) --> 138 = 10001010 (2*8*16*32) --> 57 = 00111001 (4*8*16*32) --> 114 = 01110010 -------- (xor) 00110000 --> 48 => ((2*4*8*16)+(2*4*8*32)+(2*4*16*32)+(2*8*16*32)+(4*8*16*32)).x = 48.x dans GF(256)
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Bonjour, j'ai bien lu toutes vos explications et c'est passionnant !
J'ai ici une question sur un DataMatrix réel :
Size 18x18
Data 16x16
18 codewords de data
14 codewords de contrôle en ECC200 donc en Reed-Solomon
Polynôme générateur : 1x^14+185x^13+83x^12+186x^11+18x^10+45x^9+138x^8+119x^7+157x^6+9x^5+95x^4+252x^3+192x^2+97x^1+156x^0
Data brute :
170x^17+162x^16+203x^15+72x^14+152x^13+134x^12+159x^11+131x^10+172x^9+134x^8+65x^7+84x^6+150x^5+128x^4+86x^3+236x^2+132x^1+27x^0
Polynôme de contrôle sera quoi selon vous ?
Il est inscrit dans le DataMatrix:
34
247
18
85
88
31
120
154
56
173
193
20
226
115
Et quand je le fais moi-même en ligne, j'obtiens :
207
29
239
193
33
16
164
213
158
250
47
91
224
6
Où est la vérité ?
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager