NIST GCM模式学习

1. Elements of GCM

  Block Cypher

    GCM是分组加密算法(NIST的AES,我国国标SM4)的一种操作模式

    需要选择分组加密算法两个函数中的一个作为向前函数

  Two GCM Functions

    两个GCM函数成为authenticated encryption 和 authenticated decryption

    authenticated encryption进行数据加密运算,并计算出一个authentication tag

    authenticated decryption验证authentication tag,解密。

 

    当输入数据限定为非机密数据时,这种变种GCM成为GMAC

    相应的authenticated encryption 和 authenticated decryption变成了对非机密数据的authentication tag的产生和验证

  Authenticated Encryption Function

    对于给定的分组块和密钥,认证加密函数有3组输入:

    1.  明文,成为P

    2.  额外的认证信息,称为AAD

    3.  初始化向量,称为IV 

    GCM需要确保明文和AAD的真实性,保证明文的保密性,不保护AAD的保密性;如AAD可以是一些端口,地址等非秘密信息

    信息长度要求:

    len(P) ≤ 2^39-256;
    len(A) ≤ 2^64-1;
    1 ≤ len(IV) ≤ 2^64-1.

    明文,AAD以及IV应当是8bit的整数倍长度

    函数的输出如下:

    1.  加密后的密文,长度同明文,用C表示

    2.  authentication tag,用T表示

  Authenticated Decryption Function

    给定IV,AAD,C,T的值,认证解密函数输出为如下其中之一:

    1.  解密后的明文

    2.  错误代码

    输出明文则表明T是正确的关于IV,A,C的authentication tag,否则输出错误代码,

 

2.  Mathematical components of GCM

  Incrementing Function

                             

 

  

  Multiplication Operation on Blocks

        

 

         

      NIST GCM模式学习_第1张图片

      NIST GCM模式学习_第2张图片

 

 

  GHASH Function

    NIST GCM模式学习_第3张图片

 

   GCTR Function

      TBD....

GCM Specification

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(NIST GCM模式学习)