TEA 알고리즘
컴퓨터 네트워크 보안 문제 풀이 중 만난 TEA 알고리즘을 파헤쳐 보자
TEA의 상수열은 왜 사용하는가?
상수열을 사용하면, 암호화 알고리즘의 안정성이 향상 된다
무작위성을 높이고 공격자가 평문와 암호문 사이의 패턴을 찾기 어렵기 때문이다.
암호화 프로세스
암호화 프로세스는 위와 같다. 입력 받은 문자열을 절반으로 잘라서 연산을 마치고, L과 R을 뒤집는 구조이다
복호화 프로세스
TEA 알고리즘의 복호화가 가능한 이유는 암호화와 복호화 과정이 거의 동일한 구조를 갖고 있기 때문이다.
암호화와 복호화는 기본적으로 동일한 라운드 함수를 사용하며, 복호화 과정에서는 암호화 과정에서 사용된 서브키와 델타 값이 역순으로 적용된다
그래서, 위의 암호화 프로세스를 반대로 값을 입력했는데, 답이 솔루션과 일치하지 않았다
뭔가 했는데, 복호화를 해서 값은 반대로 따라가는 것은 맞지만, 조금 더 생각하면 식을 더 단순하게 할 수 있었다
문제에서 요구하는 것은 복호화 프로세스를 진행하는데 1쌍을 복호화 하라고 하였다.
답은 L2,R2가 주어졌을 때 L0와 R0를 구하면 된다. 아래는 솔루션의 답이다
- R0 = R2 + [(L2 << 4) + K2] ⊕ [L2 + δ2] ⊕ [(L2 >> 5) + K3]
- L0 = L2 + [(R0 << 4) + K0] ⊕ [R0 + δ1] ⊕ [(R0 >> 5) + K1]
R0는 순순히 답이 나오는데, L0가 이상하다
R0처럼 의도한 대로 계산을 하면, 아래와 같이 나아야 한다.
- L0 = L2 + [(L1 << 4) + K0] ⊕ [L1 + δ1] ⊕ [(L1 >> 5) + K1]
왜 L1을 R0로 했을까 했는데, 어차피 L1 == R0이라 그냥 치환한 것이었다.
처음 문제를 풀 때는 위의 연산들을 다 풀어서 다 넣어야겠군 했는데, 말장난이었다
728x90
'Computer Science > Security' 카테고리의 다른 글
암호 피드백 모드 (CFB) (0) | 2023.04.18 |
---|---|
페이스텔 암호의 암호화와 복호화 증명 (0) | 2023.04.18 |
Kerberos 심층 이해 (0) | 2023.04.17 |
네트워크 보안 에센셜 3장 연습 문제 풀이 (0) | 2023.04.13 |
암호 블록 체인 모드 (CBC) (0) | 2023.04.13 |