삼계층 암호화 알고리즘으로 안전한 파일 전송
초록
본 논문은 RSA 2048비트 기반의 기본 암호화에 숫자 변환, 디지털 라인·블록 인코딩, 그리고 수학적 급수(예: 사인 급수)를 추가하는 3단계 암호화 체계를 제안한다. 저자는 이를 저권한 서버와 WAN 환경에서 파일 전송 보안을 강화하는 방법으로 제시한다.
상세 분석
이 논문이 제시하는 “삼계층 암호화 알고리즘”은 크게 다섯 단계로 구성된다. 첫 번째 단계는 전통적인 RSA(2048비트)를 사용하되, P와 Q를 사용자가 직접 정의하고, 평문을 ASCII 값으로 변환한 뒤 임의의 SALT 값을 붙여 곱셈 연산을 수행한다는 비표준 절차를 포함한다. 실제 RSA 구현에서는 공개키(e)와 비밀키(d)를 모듈러 역원으로 계산하지만, 논문에서는 D를 “복호화 키”라 하고 E를 “암호화 키”라 부르는 등 용어가 뒤섞여 있다. 또한, 예시에서 사용된 소수 11과 13은 2048비트 길이에 전혀 미치지 못하므로 실질적인 보안 강도를 전혀 제공하지 않는다.
두 번째 단계는 RSA 결과값을 2진, 8진, 16진 등으로 변환하는 “숫자 변환”이다. 이 과정은 단순히 정수를 다른 진법으로 표현하는 것이며, 암호학적 강도를 높이는 요소가 아니다. 오히려 변환 과정에서 발생할 수 있는 포맷 오류나 구현 실수는 새로운 취약점을 만들 수 있다.
세 번째 단계는 4B/5B, 8B/6T 등 다양한 라인 코딩 및 블록 인코딩을 적용해 비트를 재배열한다. 라인 코딩은 물리적 전송 채널에서 신호 무결성을 보장하기 위한 기술이며, 암호화 목적에 사용될 경우 “보안성 강화”라기보다는 복호화 과정을 복잡하게 만드는 보안 통한 보안(보안‑보안) 형태가 된다. 특히, 인코딩 후 다시 역변환하는 과정이 명확히 정의되지 않아 복호화 시 데이터 손실 가능성이 크다.
네 번째 단계는 앞서 재배열된 비트를 다시 원래 진법으로 변환하는 “역변환”이다. 논문은 이 단계에서 다른 암호문이 생성된다고 주장하지만, 실제로는 동일한 비트열을 다른 인코딩 방식으로 해석한 결과일 뿐이며, 수학적 근거가 부족하다.
다섯 번째 단계는 변환된 정수를 X값으로 삼아 사인, 코사인, 지수 등 임의의 수학 급수에 대입하고, 일정 차수까지 전개한 뒤 결과값을 최종 암호문으로 사용하는 것이다. 급수 전개는 실수 연산을 포함하고, 근사값을 반올림하는 과정에서 정보 손실이 발생한다. 또한, 급수의 차수(N)와 사용된 함수 종류가 비밀이라면 복호화는 불가능하지만, 이는 “키”가 아닌 “알고리즘 비밀”에 의존하는 보안‑보안 방식이며, 현대 암호학에서는 절대적인 비밀을 전제로 하지 않는다.
전반적으로 이 논문은 다음과 같은 근본적인 문제점을 가진다. 첫째, RSA 키 길이와 소수 선택이 실제 보안 요구사항에 부합하지 않는다. 둘째, 숫자 변환과 라인 코딩은 암호학적 난이도를 증가시키지 않으며, 오히려 구현 복잡성만 높인다. 셋째, 수학 급수 기반 변환은 역산이 가능하고, 실수 연산 오차로 인한 데이터 무결성 문제가 발생한다. 넷째, 전체 설계가 “보안은 복잡성에 있다”는 보안‑보안 원칙에 의존하고 있어, 키 관리·알고리즘 공개 시 보안이 무너진다. 마지막으로, 논문은 실험 결과로 11KB 파일을 암호화하는 데 RSA에 45초, 나머지 단계에 30초가 소요된다고 주장하지만, 이는 현대 멀티코어 서버에서는 매우 비효율적인 수치이며, 실제 적용 가능성을 의심하게 만든다.
요약하면, 제안된 삼계층 암호화는 기존 검증된 암호 체계와는 달리 보안‑보안 방식에 지나치게 의존하고, 구현 복잡성만 증가시키며, 실질적인 보안 강화를 제공하지 못한다. 따라서 실무에 적용하기보다는 검증된 표준 암호(예: AES‑GCM, RSA‑OAEP)와 적절한 키 관리 체계를 사용하는 것이 바람직하다.
댓글 및 학술 토론
Loading comments...
의견 남기기