Pythonフォレンジック-暗号化の解読
この章では、分析と証拠の間にフェッチされたテキストデータのクラッキングについて学習します。
暗号化のプレーンテキストは、メッセージなどの通常の読み取り可能なテキストです。一方、暗号文は、プレーンテキストを入力した後にフェッチされた暗号化アルゴリズムの出力です。
平文メッセージを暗号文に変換する簡単なアルゴリズムは、 Caesar cipher、プレーンテキストを敵から秘密にするためにジュリアスシーザーによって発明されました。この暗号には、メッセージ「前方」のすべての文字をアルファベットの3桁シフトすることが含まれます。
以下はデモイラストです。
a→D
b→E
c→F
...。
w→Z
x→A
y→B
z→C
例
Pythonスクリプトを実行するときに入力されるメッセージは、パターンの証拠に使用される文字のすべての可能性を示します。
使用されるパターン証拠のタイプは次のとおりです-
- タイヤ跡とマーク
- Impressions
- Fingerprints
すべての生体認証データはベクトルデータで構成されており、完全な証拠を収集するために解読する必要があります。
次のPythonコードは、プレーンテキストから暗号文を生成する方法を示しています-
import sys
def decrypt(k,cipher):
plaintext = ''
for each in cipher:
p = (ord(each)-k) % 126
if p < 32:
p+=95
plaintext += chr(p)
print plaintext
def main(argv):
if (len(sys.argv) != 1):
sys.exit('Usage: cracking.py')
cipher = raw_input('Enter message: ')
for i in range(1,95,1):
decrypt(i,cipher)
if __name__ == "__main__":
main(sys.argv[1:])
出力
ここで、このコードの出力を確認します。単純なテキスト「Radhika」を入力すると、プログラムは次の暗号文を生成します。