티스토리 뷰
- 현대 암호학의 방식 중 하나이며, 대칭 암호이다. 대칭 암호란, 암호에 사용하는 암호화 하는 키와 복호화 하는 키가 동일한 것
- 64비트의 크기의 블록을 암호화하는 방식이다.
- 현재는 하나의 키를 사용하는 것이 아닌 3DES를 널리 사용
특징
- 혼동 : 키와 암호문 사이의 관련성을 모호하게 하는 암호화 연산, 오늘날 혼동을 만족시키기 위한 일반적인 요소는 환자(평문 : 암호문 1대1 대응)이고, DES와 AES에서 발견됨.
- 확산 : 평문의 통계적 특성을 숨기기 위한 목적으로 하나의 평문 기호의 영향이 많은 암호문 기호에 퍼지도록 하는 암호화 연산, 단순한 확산 요소는 비트 전치로 DES에서 빈번히 사용됨.
- 곱 암호 : 두 연산을 혼합한 암호
- 보안 : 분석적 공격에는 안전하나 소모적 키 탐색에는 안전하지 않음.
전체적인 과정
먼저 이 그림을 통해서 우리가 모르는 것을 확인해야 하는데, 초기전치 IP, f함수, K1, 역전치 IP-1을 모르는 상태입니다. 먼저 초기전치와 역전치를 설명하겠습니다.
왼쪽은 초기전치, 오른쪽은 역전치 입니다. 다음과 같은 규칙을 통해 64bit의 평문을 전치합니다. 예를 들어, 그림에서 1번째에 58이 들어가있으니 이 뜻은, 58번째의 bit를 첫 번째로 전치 즉 옮기라는 뜻입니다. 두 번째는 50번 bit를 2번째로 옮기라는 뜻입니다. 이렇게 총 64bit를 모두 전치 규칙에 따라서 옮기면 됩니다. 물론 실제 전치 규칙은 아래 표와 다를 수 있습니다. 역 전치는 그 반대로 40 번째를 1번째로 옮겨 원래의 64bit 위치로 변환하는 것입니다.
초기 전치 이후
- 32bit씩 LE와 RE로 나눔.
- 키 스케줄러로 생성된 K와 RE를 f함수에 사용
- 생성된 값을 LE와 Xor 하게 됨.
- LE와 RE를 바꿈 -> LE가 RE로, RE가 LE로
- 2번을 반복(총 16번 반복)
f함수
- 먼저 평문의 오른쪽 32bit(R)를 확장전치(E)를 통해 48bit로 길이를 늘립니다.
- 48bit의 키와 Xor을 하게 됩니다.
- 이후 S-Box 연산을 하게 됩니다.
- 평형전치(P)를 통해 48bit에서 32bit로 크기를 줄입니다.
아래는 확대 전치 및 평형전치로 작동 방식은 같습니다.
S-Box 연산
S-Box는 6Bit를 4Bit로 바꾸는 방식입니다. 1bit와 6bit를 열로 2, 3 4 5bit를 행으로 합니다. 그래서 행과 열에 맞는 숫자를 가져옵니다.
키 생성 스케줄러
DES에서 입력받은 64bit를 실제 암호화에서 사용할 키를 생성하는 스케줄러
64bit를 입력받는데 그 중 8bit는 패러비 비트, 즉 오류 검사에 사용 -> 56bit를 사용
그리고 56bit -> 48bit로 키를 생성
전치 PC-1
- 64bit에서 패러티비트를 제외하여 56bit키를 생성하는
전치
축약 전치 PC-2
- 만들어진 56bit를 48bit 키로 만드는 전치
키 스케쥴러 LS
이렇게 만들어진 키를 사용하게 됩니다.
추가적으로 3중 DES를 주로 쓴다고 하였는데 아래와 같습니다.
'개인 > 보안 공부' 카테고리의 다른 글
간단한 키보드 후킹 프로그램 (0) | 2022.09.06 |
---|---|
DreamHack 리버싱) 레지스터란? (0) | 2022.06.08 |
메모리 보호기법 ) Canary, ASLR, NX (0) | 2022.06.03 |
Dreamhack System Hacking) ROP 실습 (1) | 2022.06.03 |
- Total
- Today
- Yesterday
- 스레드풀
- c++
- 학교
- 개발
- 워셜알고리즘
- Dreamhack
- 알고리즘
- Select모델
- 드림핵
- STL
- 링크드 리스트
- 야경
- 자료구조
- 고양이
- 지뢰찾기
- 정보보안
- 보안
- 인제대학교
- 시스템보안
- BFS
- 백준
- 더블버퍼링
- 컨퍼런스
- queue
- 레지스터
- 멀티쓰레드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |