3


1

PyCryptoによるAES暗号化とmcryptによる復号化

一部の機密データについては、AES暗号化してディスクに保存することにしました。 PyCryptoを使用して暗号化を実装しました。

さらに、データは重要であり、保存された暗号化されたデータは私の唯一のコピー(バックアップは別として)になるため、PyCryptoを使用せずにデータを取得し、PyCryptoが利用できなくなる可能性があるフォールバックを取得する方法を探しました私には(何らかの理由で)。

私はhttp://mcrypt.sourceforge.net/[mcrypt]がオプションになり得ると考えました。

これは、暗号文を作成するための私のテストケースです。

import Crypto.Cipher.AES
import sys

pwd  = 'qwertzuiopasdfgh'
mode = Crypto.Cipher.AES.MODE_CBC
aes  = Crypto.Cipher.AES.new( pwd, mode )
text = 'asdfghjklyxcvbnm'
sys.stdout.write( aes.encrypt( text ) )

出力をファイル「out.nc」にリダイレクトし、復号化を試みました

mcrypt -d -b -k qwertzuiopasdfgh -a rijndael-128 -m CBC out.nc

しかし、残念ながら、結果のファイル「out」のサイズは0バイトです。

この作業を行うためにmcryptのオプションの組み合わせがあることを願っています…

2 Answer


1


問題は、CBCモードにIVを提供せず、IVなしでmCryptとPyCryptoが異なるデフォルトIVを使用して異なる方法で処理する可能性があるためだと思います。 いくつかの実装(たとえば、phpseclib)の使用と、デフォルトで16 nullバイトのIVを見てきました。 mcryptはこれをしないかもしれません。


-1


PyCryptoなしで回復できることが重要なのはなぜですか? 古いOSと古いリリースのPyCryptoを使用してVMを起動し、データをエクスポートし、別のアルゴリズムと実装で再暗号化するだけです。