Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 XOR 암호화 구현하기: 원리와 예제 코드

XOR 암호(XOR cipher), 즉 XOR 암호화는 무차별 대입(brute-force) 공격으로 해독할 수 없는 데이터 암호화 방식입니다.

무차별 대입 공격이란 임의로 생성한 암호화 키를 하나씩 대입해 보며 올바른 키를 찾아내는 방법을 말합니다. XOR 연산의 특성상 올바른 키 없이는 복호화가 사실상 불가능하기 때문에, 이러한 공격에 비교적 강한 면모를 보입니다.

이 암호화 방식을 구현하는 절차는 매우 간단합니다. 먼저 암호화 키(임의의 문자 하나)를 정의한 뒤, 문자열의 모든 문자에 대해 해당 키와 XOR(^) 연산을 수행합니다. 그 결과 문자열 전체가 암호화됩니다.

참고로 XOR 암호화는 대칭 방식이므로, 암호화된 문자열에 동일한 키로 다시 XOR 연산을 적용하면 원래 문자열로 되돌릴 수 있습니다.

암호화 구현 예제 코드

#include<iostream>
#include<string.h>
using namespace std;
void XORChiper(char orignalString[]) {
    char xorKey = 'T';
    int len = strlen(orignalString);
    for (int i = 0; i < len; i++){
        orignalString[i] = orignalString[i] ^ xorKey;
        cout<<orignalString[i];
    }
}
int main(){
    char sampleString[] = "Hello!";
    cout<<"The string is: "<<sampleString<<endl;
    cout<<"Encrypted String: ";
    XORChiper(sampleString);
    return 0;
}

실행 결과

The string is: Hello!
Encrypted String: 188;u

위 코드에서는 문자열 "Hello!"를 암호화 키 'T'와 XOR 연산하여 암호화했습니다. 각 문자가 키와 배타적 논리합을 거치면서 다른 문자로 변환되어, 원본 내용을 알아볼 수 없게 됩니다.