AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1586027
Accepted
RocketNuts
RocketNuts
Asked: 2020-09-17 04:23:13 +0800 CST2020-09-17 04:23:13 +0800 CST 2020-09-17 04:23:13 +0800 CST

Ao usar o openssl enc -camellia256, qual modo de bloco ele usa?

  • 772

Ao criptografar um arquivo opensslusando a cifra Camellia de 256 bits, você pode especificar explicitamente o modo de bloqueio (por exemplo, camellia-256-cfbou camellia-256-ofbetc). No entanto, se você usar apenas a -camellia256opção sem modo de bloco, qual é o modo implícito assumido?

Tentei descobrir criptografando o mesmo arquivo com todos os modos diferentes, usando um iv fictício fixo e uma chave, assim:

#!/usr/bin/env bash

# create 1MB file with random data
openssl rand 1048576 -out random.bin

iv='11111111111111111111111111111111'
key='2222222222222222222222222222222222222222222222222222222222222222'
ciphers=(camellia256 camellia-256-cfb camellia-256-cfb1 camellia-256-cfb8 camellia-256-ecb camellia-256-ofb)

for c in ${ciphers[*]}; do
  # encrypt
  openssl enc -$c -iv $iv -K $key -in random.bin -out random-$c.bin
  # show hash of encrypted result
  openssl dgst -sha256 random-$c.bin
done

E a saída é:

SHA256(random-camellia256.bin)= 5625222f4bc4dd0e690ebfd24ade853f22d5155584756d9da41b6d8657d01a75
SHA256(random-camellia-256-cfb.bin)= 2b57e9cd8566af072a6162b21dc4e69337d2a9a23443fc7c25c0c1eba7f2d6eb
SHA256(random-camellia-256-cfb1.bin)= ae96dc3bdea49ec1d5c706db7f4e097f8e4e641abf2bb108eb57aa90d00eb84e
SHA256(random-camellia-256-cfb8.bin)= 7266631c9616fbfc00039dd868ba74af09d8829af11b45d83d46cb12925dceb2
SHA256(random-camellia-256-ecb.bin)= f91f4d164d40e7abb2b6a11e051d12ff82d256e4f52437d9f8997670cdb337b8
SHA256(random-camellia-256-ofb.bin)= 79a29d5790a68498ca90acb8b19fcb4e2a0066527a9de2419b9633d9f3cbaa6e

Claro que é diferente toda vez que executo o script, devido à entrada aleatória.

Como alternativa, se eu usar um arquivo preenchido com zeros (0x00 bytes) em vez de dados aleatórios, assim:

dd bs=1048576 count=1 if=/dev/zero of=zeroes.bin

A saída é:

SHA256(zeroes-camellia256.bin)= 22116d07d0c5b43e736f9990ad3f48c7710fe78ba1d6bb993dfa5a6d3a6fb133
SHA256(zeroes-camellia-256-cfb.bin)= cc75fc3257959bcaee12de3da7ef547d2f548a936d9068abde103c158d9540a8
SHA256(zeroes-camellia-256-cfb1.bin)= 912dc60b10bfad7d33fed18c1419f83437fcf84708a9336f3bbcf0a6164cd70d
SHA256(zeroes-camellia-256-cfb8.bin)= 70d340b32f58c9f2169a91c20698893046b76cd560e7a0fe2a1001591990fb8e
SHA256(zeroes-camellia-256-ecb.bin)= b9fdd441312bf9992fdca2fbbdbc165a738359312de53b0ddc71e383880cd43f
SHA256(zeroes-camellia-256-ofb.bin)= cc75fc3257959bcaee12de3da7ef547d2f548a936d9068abde103c158d9540a8

Observe como as saídas cfbe são as mesmas aqui. ofbMas isso provavelmente se deve a como esses modos de bloco definem o fluxo de cifra com base nos dados de entrada.

De qualquer forma, aquele sem um modo de bloco explicitamente definido é novamente diferente de todos os outros.

Então, minha pergunta é: qual modo de bloco o openssl usa quando eu especifico -camellia256como o algoritmo de cifra?

A propósito, quando testo o mesmo com AES em vez de Camellia, parece que aes256é o mesmo que aes-256-cbc.

openssl blocking
  • 1 1 respostas
  • 155 Views

1 respostas

  • Voted
  1. Best Answer
    Maarten Bodewes
    2020-09-17T13:54:41+08:002020-09-17T13:54:41+08:00

    O OpenSSL geralmente tem como padrão o modo CBC e padding compatível com PKCS#7, então não é uma surpresa que isso também aconteça com o Camellia. Isso difere por biblioteca criptográfica, a propósito, não há nenhum modo que seja o padrão para todas as bibliotecas criptográficas (o padrão do provedor Java é ECB).

    Geralmente, você sempre pode criar um modo a partir do modo ECB, pois uma única criptografia de bloco ECB é apenas a execução da cifra de bloco. Não vou me aprofundar muito na explicação de como fazer isso, mas geralmente é fácil o suficiente para os dois primeiros blocos.

    No entanto, como você indicou, tudo isso não é necessário, pois você também pode especificar o modo CBC diretamente e depois comparar.

    • 1

relate perguntas

  • Como resolver: AVISO: derivação de chave obsoleta usada. Usar -iter ou -pbkdf2 seria melhor

  • Suporte OpenSSL para ed25519, criptografando conteúdo?

  • Como posso verificar se um arquivo de certificado SSL corresponde ao arquivo de chave?

  • Gerando assinatura JWT RS256 com openssl

  • Carregar chave “ec256.pem”: formato inválido é lançado ao tentar gerar chave pública a partir de chave privada

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve