密码学中的数学知识

康乐
密码学算法中很多地方都有提到群,域,有限域等概念,如RSA,ECC,AES中均有提到群操作,有限域等内容,一直对这块内容比较迷糊,专门来梳理一下。

2345截图20200908083720.png

1密码学中的数学知识

密码学算法中很多地方都有提到群,域,有限域等概念,如RSA,ECC,AES中均有提到群操作,有限域等内容,一直对这块内容比较迷糊,专门来梳理一下。

2群(Group)

群指的是元素集合G及G内任意两个元素的联合操作。群的部分公理如下,

1)单位元:Identify Element,在群内存在一个元素e,使得群中任意元素a满足ae=ea=a成立。单位元与群内其他元素结合,不会改变那些元素。

2.)逆元:对于每个属于群G的元素a,都存在一个元素a^(-1),使得a*a^(-1)=1。a^(-1)就是a的逆元,逆元也属于群G。

3域(Field)

域是拥有特定元素集合。如实数集合R是一个域,每个实数a都有一个逆元。在密码学中,提到最多的是有限域,有限域就是指有限个元素的集合,域内所包含的元素称为这个域的阶。常用的2个域是素域GF(p)和扩展域GF(2^m)。

4素域(Prime Field)

假设p是一个素数(prime),则素域表示为GF(p)。在素域GF(p)内所有的非零元素都存在逆元,在GF(p)内的加法和乘法都要做模p操作(mod p将计算结果限制在有限域内),即,

加法定义:a+b=(a+b)mod p

乘法定义:a•b=(a•b)mod p

素域GF内,加法单位元是0,乘法单位元是1。

素域内的加法逆元定义为a+(-a)=0 mod p。素域内的任何一个非零元素a的乘法逆元定义为a*a^(-1)=1 mod p。

例子1有限域GF(5)

如对于有限域GF(5)=,在此有限域内的加法和乘法结果,以及域内加法逆元和乘法逆元。如下图,计算的理解参考图中标注,其中取模的作用就是将计算结果限制在有限域GF(5)之内。

2345截图20200908083720.png

例子2有限域GF(2)

GF(2)是一个最小的有限域,也是一个比较好玩的域,GF(2)=,在此域内的运算都是通过mod 2实现的。

2345截图20200908083720.png

GF(2)的加法,即模2加法,域异或(XOR)门等价。GF(2)乘法与逻辑与(AND)门等价。GF(2)域对AES而言至关重要。

5扩展域GF(2^m)

又叫二元扩域,m>1的域称为扩展域。在扩展域GF(2^m)中,元素使用多项式表示,多项式的系数为GF(2)中的元素。

扩展域GF(2^m)内,零元0用全零比特串表示,乘法单位元1用比特串(00...001)表示。

AES中使用域GF(2^8),在域内的数字表示为,A(x)=a7 x^7+...+a1 x+a0,其中系数a0~a7均属于GF(2)=。在GF(2^8)中共256个元素,因此有256个对应的多项式。

扩展域中的加减法

《SM2椭圆曲线密码学中的定义》扩展域内两个域元素加法定义为比特串按比特异或运算。如下图就是将x幂次相同的系数进行加减法操作,

2345截图20200908083720.png

按照对应系数做异或运算,因此计算结果中消去了x^4和x^0项。

扩展域中的乘法

扩展域内乘法定义为a•b=a(x)b(x)mod f(x),其中f(x)称为不可约多项式,扩展域乘法对不可约多项式取模。

什么是不可约多项式呢?

类似于素数p,不能够进行因式的多项式称为不可约多项式。如多项式x^4+x^3+x+1是可约的,因为x^4+x^3+x+1=(x^2+x+1)(x^2+1),可以做因式分解。AES使用的不可约多项式为x^8+x^4+x^3+x+1。

乘法举例:

计算GF(4)中A(x)=x^3+x1和B(x)=x^2+x相乘,不可约多项式P(x)=x^4+x+1。

首先计算A(x)x B(x)=x^5+x^3+x^2+x,然后对P(x)取模,可用竖式乘法计算,

2345截图20200908083720.png

余数x^3即为乘法结果。

扩展域内的逆操作

给定有限域GF(2^m)和不可约简的多项式P(x),任何一个属于GF(2^m)内的元素A的逆元定义为:A^(-1)*A=1 mod P(x)。A^(-1)就是A的乘法逆元。计算乘法逆元一般使用扩展欧几里得算法。

6 AES中的S-Box

AES加解密算法中SubBytes字节替换中使用的S-Box盒中包含了GF(8)模P(x)=x^8+x^4+x^3+x+1()的逆元。

由于计算逆元比较复杂,因此AES算法中直接给出了S-Box和逆S-Box(可参考FIPS 197),加解密过程中通过查表法使用。

对S-Box具体计算感兴趣的小伙伴可参考[4]的6.3.1小节,或者参考[5]的链接,此处不给出计算过程。

S-Box

2345截图20200908083720.png

Inverse S-Box

2345截图20200908083720.png

7参考

《SM2椭圆曲线公钥密码学》第一章.

Understanding Cryptography-A Textbook for Students and Practitioners,Christof paar.

FIPS PUB 197 Specification for the Advanced Encryption Standard(AES),NIST.

Cryptography and Network Security,Principle and Practice,7th Edition

https://blog.csdn.net/u011516178/article/details/81221646

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论