Resumo do uso de sm4js para criptografia e segredo nacional sm4

Recentemente, no processo de desenvolvimento, foi usada a criptografia secreta nacional sm4. Como nunca a usei antes, quero resumi-la.

Deixe-me falar sobre como instalar e usar (projeto vue)

1. Instale o sm4js primeiro

npm i sm4js

A versão do sm4js exibida em package.json é a seguinte:

"dependencies": {
    
    
   "axios": "^1.3.2",
   "sm4js": "^0.0.6"
},

2. Como utilizá-lo no projeto após a conclusão da instalação

<script>
  import Sm4js from 'sm4js';
  export default {
    
    
    name: 'color',
    ...
    methods:{
    
    
      getKey(){
    
    
        let sm4Config = {
    
    
          key: this.key, // 密钥  前后端一致即可,后端提供,一般通过接口请求获取到
          iv: this.iv, // iv是initialization vector的意思,就是加密的初始话矢量,初始化加密函数的变量,也叫初始向量。一般通过接口请求获取到
          mode: 'cbc', // 加密的方式有两种,ecb和cbc两种
          cipherType: 'base64'
        }
        let sm4 = new Sm4js(sm4Config)
        // 对数据进行加密   encrypt - 加密方法
        this.encrypted = sm4.encrypt(this.cardId)
        // 对数据进行解密   decrypt - 解密方法
        this.decrypted = sm4.decrypt(this.idCardNumber)
      }
    }
  }
</script>

3. Resumo do segredo nacional sm4

3.1. Algoritmo SM
Segredo Nacional refere-se ao algoritmo de criptografia doméstico reconhecido pela Administração Estatal de Criptografia. Existem principalmente SM1, SM2, SM3, SM4. Tanto o comprimento da chave quanto o comprimento do bloco são de 128 bits.
SM1 é criptografia simétrica. Sua força de criptografia é comparável ao AES. Este algoritmo não é público. Ao chamar esse algoritmo, ele precisa ser chamado através da interface do chip de criptografia.
SM2 é criptografia assimétrica baseada em ECC. O algoritmo está disponível publicamente. Como o algoritmo é baseado em ECC, sua velocidade de assinatura e de geração de chave secreta são mais rápidas que o RSA. ECC de 256 bits (SM2 é um tipo de ECC de 256 bits) tem maior segurança do que o RSA de 2048 bits, mas a velocidade de operação é mais rápida que o RSA.
Resumo da mensagem SM3. MD5 pode ser usado como comparação para compreensão. O algoritmo está disponível publicamente. O resultado da verificação é 256 bits.
Algoritmo de dados de pacote SM4 para padrão de LAN sem fio. Criptografia simétrica, o comprimento da chave e o comprimento do bloco são ambos de 128 bits.

3.2. Existem dois modos de criptografia SM4: ecb e cbc.
A diferença entre os dois modos é a seguinte :
ECB: É um método básico de criptografia. O texto cifrado é dividido em blocos com comprimentos iguais (se não forem suficientes), e então criptografado um por um, produza um por um para formar um texto cifrado.
CBC: É um modo circular (tipo cadeia). O texto cifrado do grupo anterior e o texto simples do grupo atual são criptografados após a operação. O objetivo é aumentar a dificuldade de cracking. (Não é fácil atacar ativamente, a segurança é melhor que o BCE e é o padrão de SSL e IPSec)

Os conceitos dos dois modos são diferentes :
1. Modo ECB, também conhecido como modo de livro de código eletrônico: Livro de código eletrônico, é o modo mais simples de criptografia de cifra de bloco.Os blocos são criptografados individualmente com a mesma chave e descriptografados da mesma maneira.
2. Modo de encadeamento de blocos de criptografia (CBC, Cipher-block chaining), inventado pela IBM em 1976, cada bloco de texto simples é primeiro XORed com o bloco de texto cifrado anterior e, em seguida, criptografado. Nesta abordagem, cada bloco de texto cifrado depende de todos os blocos de texto simples que o precedem. Ao mesmo tempo, para garantir a unicidade de cada mensagem, o vetor de inicialização IV precisa ser utilizado no primeiro bloco.

As vantagens dos dois modos :
Modo BCE: 1. Simples; 2. Propício à computação paralela; 3. Erros não serão transmitidos;
Modo CBC: 1. Não é fácil de atacar ativamente, melhor segurança que o BCE, adequado para longos comprimentos de transmissão A mensagem é o padrão de SSL e IPSec.

Desvantagens dos dois modos :
Modo ECB: 1. Modo que não pode ocultar texto simples; 2. Ataque ativo em texto simples é possível;
Modo CBC: 1. Não propício à computação paralela; 2. Transmissão de erros; 3. Necessita vetor de inicialização IV

Acho que você gosta

Origin blog.csdn.net/xiaolinlife/article/details/129383572
Recomendado
Clasificación