你也可以手绘二维码(二)纠错码字算法:数论基础及伽罗瓦域GF(2^8)
摘要:本文讲解二维码纠错码字生成使用到的数学数论基础知识,伽罗瓦域(Galois Field)GF(2^8),这是手绘二维码填格子理论基础,不想深究可以直接跳过。同时数论基础也是 Hash 算法,RSA 算法等密码学的入门基础。 二维码生成算法最为核心的就是编码规则和纠错码字的生成。本篇专门讲解纠错涉及到的伽罗瓦域(Galois Field)。本文内容大部分是阅读《密码编码学与网络安全》后参考相关 PPT 编写,如有遗漏或不严谨地方请参考专业书籍。 数论基础 整除,因数,素数 设 a , b(b≠0) 是两个整数,如果存在另外一个整数 c 使得 a=b·c , 则称 b 整除 a, 记为 b|a, 且称 b 为 a 的因子。如果 p (p>1) 的因子只有 ±1,±p,称整数 p 是素数。 模 如果 a 和 n(n≠0) 是两个整数,则定义 a mod n 是 a 除以 n 所得的余数。正整数 n 称为模数。因此对于任意整数 a 可以写出: a = qn + r (0<=r<n);q= ⌊a/n⌋ a = ⌊a/n⌋ * n + ( a mod n) 例子: a = 49,n = 8, 则 q = 49 mod 8 = floor(49/8) = 6 , r = 49 mod 8 = 1 ,49 = 6 * 8 + 1 . 最大公因数 最大公因数,也称最大公约数、最大公因子