[java] 카이사르 암호화 기법

카이사르 암호화는 간단한 치환 암호 기법 중 하나로, 평문의 각 글자를 일정한 길이만큼 시저가 사용한 것과 같이 암호문으로 변환하는 방식입니다.

알고리즘

알파벳을 3글자씩 밀어내는 방법을 예로 들어보겠습니다. 예를 들어, ‘A’는 ‘D’로, ‘B’는 ‘E’로 바뀝니다. 암호화된 알파벳은 원래 알파벳에서 3글자씩 이동한 위치의 알파벳으로 대치됩니다.

예시

평문

“HELLO, WORLD!”

카이사르 암호화

알파벳을 3글자씩 밀어내므로, “C”는 “F”로, “D”는 “G”로, “E”는 “H”로,… “W”는 “Z”로, “X”는 “A”로, “Y”는 “B”로, “Z”는 “C”로 바뀝니다.

암호문: “KHOOR, ZRUOG!”

코드 예시

public class CaesarCipher {
    public static String encrypt(String plainText, int shift) {
        String result = "";
        for (int i = 0; i < plainText.length(); i++) {
            char ch = plainText.charAt(i);
            if (Character.isLetter(ch)) {
                if (Character.isLowerCase(ch)) {
                    result += (char) ((ch - 'a' + shift) % 26 + 'a');
                } else {
                    result += (char) ((ch - 'A' + shift) % 26 + 'A');
                }
            } else {
                result += ch;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        String plainText = "HELLO, WORLD!";
        int shift = 3;
        String encryptedText = encrypt(plainText, shift);
        System.out.println("암호문: " + encryptedText);
    }
}

카이사르 암호화를 구현한 자바 코드 예시입니다.

참고 자료

이상으로 카이사르 암호화 기법에 대한 설명을 마치겠습니다.