暗号化と暗号解読: コード・シーザーの原理と実装方法


コード・シーザーの原理を理解するために、まずアルファベットのシフト演算を考えてみましょう。例えば、シフト数が1の場合、AはBに、BはCに、そしてZはAに変換されます。このシフト数を鍵として使用し、平文の各文字を指定された数だけシフトさせることで暗号文を生成します。

以下に、コード・シーザーの実装方法のいくつかとそれぞれのコード例を示します。

  1. Pythonを使用したコード・シーザーの実装例:
def caesar_encrypt(plain_text, shift):
    encrypted_text = ""
    for char in plain_text:
        if char.isalpha():
            ascii_offset = ord('a') if char.islower() else ord('A')
            shifted_char = chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset)
            encrypted_text += shifted_char
        else:
            encrypted_text += char
    return encrypted_text
plain_text = "Hello, World!"
shift = 3
encrypted_text = caesar_encrypt(plain_text, shift)
print("暗号文:", encrypted_text)
  1. JavaScriptを使用したコード・シーザーの実装例:
function caesarEncrypt(plainText, shift) {
    let encryptedText = "";
    for (let i = 0; i < plainText.length; i++) {
        let char = plainText[i];
        if (char.match(/[a-zA-Z]/)) {
            let asciiOffset = char.match(/[a-z]/) ? 'a'.charCodeAt(0) : 'A'.charCodeAt(0);
            let shiftedChar = String.fromCharCode((char.charCodeAt(0) - asciiOffset + shift) % 26 + asciiOffset);
            encryptedText += shiftedChar;
        } else {
            encryptedText += char;
        }
    }
    return encryptedText;
}
let plainText = "Hello, World!";
let shift = 3;
let encryptedText = caesarEncrypt(plainText, shift);
console.log("暗号文:", encryptedText);

以上がコード・シーザーの原理と実装方法についての解説です。セキュリティや暗号化に関心がある方にとって、役立つ情報であることを願っています。