AES CBC暗号化:暗号化結果と共にIVを公開することは意味があります(復号化時にIVを簡単に取得するため)。

AES CBC暗号化:暗号化結果と共にIVを公開することは意味があります(復号化時にIVを簡単に取得するため)。

いくつかのコードを見たことがあります(例:Ruby)。

require 'openssl'

def encrypt_aes_256_cbc(plain_text, encrypt_key)
  cipher = OpenSSL::Cipher::AES.new(256, :CBC)
  cipher.encrypt
  iv = cipher.random_iv
  cipher.key = encrypt_key.ljust(cipher.key_len, '\0').slice(0, 32)
  encrypted = cipher.update(plain_text) + cipher.final
  (encrypted + iv).unpack('H*').first
end

def decrypt_aes_256_cbc(encrypted_text, encrypt_key)
  cipher = OpenSSL::Cipher::AES.new(256, :CBC)
  cipher.decrypt
  raw_data = [encrypted_text].pack('H*')
  cipher.iv = raw_data.slice(raw_data.length - 16, 16)
  cipher.key = encrypt_key.ljust(cipher.key_len, '\0').slice(0, 32)
  cipher.update(raw_data.slice(0, raw_data.length - 16)) + cipher.final
end

この暗号化は、ハッカーが結果を得てからIVを取得すると仮定して、IVを結果に公開しますencrypt_aes_256_cbc。これは、CBCモードが意味がないという意味ですか?

これは可能ですか?

ベストアンサー1

おすすめ記事