일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 개발/네트워크
- 개발/Tools/프레임워크/Spring
- 취업
- 개발/프레임워크&라이브러리
- 개발/언어/Java
- AI/GPT
- 카테캠
- 알고리즘
- 개발/컴퓨터네트워크
- 개발/OOP
- 개발/보안
- ⌨️Developer
- ⌨️Developer/보안
- 카카오 테크 캠퍼스
- 개발/Java
- 개발/언어론
- 개발/CS/OS
- 개발/MySQL
- 카카오테크캠퍼스
- 개발/Java/Spring
- 개발/webrtc
- 개발
- 개발/Electron
- electron
- 대외활동/카카오테크캠퍼스
- 개발/CS/알고리즘
- AI/ML
- 개발/환경
- 개발/에러
- ai
Archives
- Today
- Total
봄수의 연구실
페이스텔 암호의 암호화와 복호화 증명 본문
페이스텔 암호의 암호화와 복호화 증명
페이스텔 암호는 여러 암호의 기초가 되는 알고리즘이다.
특징이라면 복호화와 암호화 알고리즘이 동일하다.
요즘 네트워크 보안을 공부하고 있는데, 문제를 풀던 중 페이스텔의 복호화가 페이스텔 암호화의 복호화임을 보이라고 해서 풀어보려고 한다.
페이스텔 암호화/복호화의 기본 구조
일반식으로 표현하면 아래와 같다. 암호화와 복호화가 모두 동일하다
- REi-1 = LEi
- REi-1 = LEi-1 ⊕ F(REi-1, Ki) 암호화와 복호화가 왜 동일할까? 방식이 동일하다고 복호화라는 건 논리가 약하고 예외가 발생한다. 조금 더 생각을 해보자
암호화 과정에서 사용 되는 함수가 self-invertible 속성을 가지고 있기 때문이라고 하는데, 아직 이해가 되지 않는다
페이스텔 암호화와 복호화가 동일하다는 것은 키를 대칭으로 사용하면 같은 값이 나온다는 거다
즉, 암호화된 메시지를 복호화하는 데 동일한 알고리즘이 사용되지만, 키의 순서가 반대로 적용된다
이러한 대칭성을 통해, 암호화 후 복호화 과정을 거치면 원래의 평문이 복원된다
아래의 암호화와 복호화 과정에서, 암호화의 좌우와 복호화의 좌우 식이 대칭으로 같으면 된다
- 암호화: (Li+1, Ri+1) = E(Li, Ri) = (Ri, Li ⊕ f(Ri, ki))
- 복호화: (Li', Ri') = D(Li+1, Ri+1) = (Ri+1 ⊕ f(Li+1, ki), Li+1)
- Ri' = Li+1 = Ri:
- 각 라운드에서 복호화의 오른쪽 출력이 암호화의 왼쪽 입력과 동일
- Li' = Ri+1 ⊕ f(Li+1, ki) = Li ⊕ f(Ri, ki)
- 각 라운드에서 복호화의 왼쪽 출력은 암호화의 왼쪽 입력과 동일
그림으로 그려서 증명해 봅시다. 예시로 암호화하자마자 복호화하는 상황을 예로 들겠습니다
암호호/복호화 과정을 그림으로 그리면 위와 같은 그림이 나옵니다.
L과 R 옆의 D는 Description의 이니셜입니다
페이스텔 구조의 경우 한 번 암호화할 경우 L과 R을 바꾸지 않습니다
아래는 복호화에 대한 증명입니다.
결국 이론상, 복호화했을 때 값이 같으면 됩니다.
R은 쭈욱 물려받기만 하니 계산이 쉬웠는데 L은 그거보다 조금 더 복잡합니다.
여기서 XOR을 유심히 봐야 합니다. XOR을 2번 하니 F(K, R0)이 사라지는데, XOR의 경우, 순서가 바뀌어도 성립합니다
즉 복호화 과정에서 키를 거울 모드로 입력하기만 하면, 복호화가 된다는 것이 자명합니다
728x90
'Computer Science > Security' 카테고리의 다른 글
컴퓨터 네트워크 보안 4장 연습 문제 (0) | 2023.04.18 |
---|---|
암호 피드백 모드 (CFB) (0) | 2023.04.18 |
TEA 알고리즘 (0) | 2023.04.18 |
Kerberos 심층 이해 (0) | 2023.04.17 |
네트워크 보안 에센셜 3장 연습 문제 풀이 (1) | 2023.04.13 |