元のLARGEデータを暗号化し、このデータのMIDDLEチャンクのみを復号化できるpycryptoパッケージの暗号化アルゴリズムを使用する方法を探していました。つまり、オフセット 0 で復号化を開始するのではなく、特定のオフセットでデータの復号化を開始します。
以下に示すように、AESを試しました。ただし、暗号化されたデータの先頭から本当に復号化する必要がある部分に移動した場合にのみ、データを適切に復号化できます。データの中間チャンクを復号化するだけではなく (もちろん適切なキーを使用)、復号化をスキップこの中間チャンクの前の部分。これは、時間と処理能力を節約する上で重要です。元のデータが 4GB あるとします。ある時点で、オフセット 3GB ~ 3.5GB のデータのみが必要になることがあります。必要な 1GB のチャンクに到達するために 2GB のデータ全体を復号化するのは、時間とリソースの無駄です...
これはすべての暗号化/復号化アルゴリズムの性質ですか? おそらく、私が望むことをする何かをお勧めできますか? それはキーで動作し、かなり安全です..
from Crypto.Cipher import AES
key = '0123456789abcdef' #16 chars
mode = AES.MODE_CBC
e = AES.new(key, mode)
orig = 'hellohowareyousuhellohowareyousu' #32 chars
print len(orig)
a = e.encrypt(orig)
print len(a)
d = AES.new(key, mode)
#works
print d.decrypt(a[:16]) #aes requires encrypt/decrypt 16 chars at a time
print d.decrypt(a[16:])
#doesn't work
print d.decrypt(a[16:])