From 7f35356bb18b91786751753730fa8a47aa26a0a5 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Mon, 9 Sep 2013 19:12:33 +0200 Subject: [PATCH] Uses a simpler way to compute the multiplicative inverse. --- mktables.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mktables.c b/mktables.c index 8e4777ff..15089baf 100644 --- a/mktables.c +++ b/mktables.c @@ -41,8 +41,7 @@ unsigned char gfmul(unsigned char a, unsigned char b) int main(void) { - unsigned char pow2[256]; - unsigned char log2[256]; + unsigned char gfinv[256]; unsigned char v; int i, j; @@ -54,7 +53,10 @@ int main(void) for(j=0;j<256;++j) { if (j % 8 == 0) printf("\t\t"); - printf("0x%02x,", gfmul(i, j)); + v = gfmul(i, j); + if (v == 1) + gfinv[i] = j; + printf("0x%02x,", (unsigned)v); if (j % 8 == 7) printf("\n"); else @@ -71,8 +73,6 @@ int main(void) for(i=0;i<256;++i) { if (i % 8 == 0) printf("\t"); - pow2[i] = v; - log2[pow2[i]] = i; printf("0x%02x,", v); v = gfmul(v, 2); if (i % 8 == 7) @@ -108,7 +108,7 @@ int main(void) if (i == 0) v = 0; else - v = pow2[255 - log2[i]]; + v = gfinv[i]; printf("0x%02x,", v); if (i % 8 == 7) printf("\n");