- 목차
- 고전과 현대 대칭키 암호의 차이점
- 대치 암호 vs 전치 암호
- 풀 사이즈 키 사이퍼
- S-box, P-box 및 블록 암호의 구성 요소
고전과 현대 대칭키 암호의 차이점
- K 비트 키를 사용해 암호화 과정 진행( 일반적으로 n은2의 제곱수 64, 128,256,512를 사용)
- N 비트 입력 ->K 비트 키사용-> N 비트 아웃풋으로 알고리즘 진행
- 예제5.1) 800bit 생성. 근데 한 암호화기계에 들어가는 팀은 64bit 이므로. 남는 사람들 32bit. 그래서 padding 32 해주면됨. 답 : 32bit
대치 암호 vs 전치 암호
- 현대암호의 모든 구성 : 대치암호(substitution) or 전치암호(Transposition)
- 전치 : 0 -> 1, 1-> 0 대치 : 0 과 1 로 이루어진 데이터를 재배열
- brute force공격에 더 강한 암호 : 대치암호 > 전치 암호
- 예제 5.2) 대치암호일 경우 : 64비트면 2의 64승 시행착오 / 전치암호 : 64비트면 64!(팩토리얼)
풀 사이즈 키 사이퍼
- 이론적으로 가능한 모든 순서의 치환을 표현할 수 있는 최대 크기의 키
- 전체 키 전치 블록 암호 ( Full Key Transposition Block Cipher ) :
-> 트랜스포지션 사이퍼는 암호화할 때 데이터의 원래 위치를 바꿔서 암호화를 수행합니다. 중요한 개념은 '순서를 바꾼다'는 것입니다. 예를 들어, "ABC"라는 단어를 "CBA"나 "BAC"처럼 원래의 순서를 바꿔서 암호화할 수 있습니다. - 전수조사 몇번?
-> N개의 데이터를 가지고 있을 때, 이 데이터를 재배열할 수 있는 방법은 N팩토리얼(N!)입니다. 예를 들어, 3개의 데이터(A, B, C)가 있을 때 재배열 방법은 3! = 3 x 2 x 1 = 6가지입니다(ABC, ACB, BAC, BCA, CAB, CBA).이렇게 나올 수 있는 모든 가능한 순서를 표현하기 위해서 필요한 키의 길이는 로그₂N! 비트입니다. 여기서 로그는 데이터를 2진수로 표현할 때 필요한 비트 수를 계산하기 위해 사용한다.더보기우리가 "로그₂N!"을 이야기할 때,
이는 "2를 몇 번 곱해야 N!이라는 값이 나오는지"를 찾는 것입니다.
로그₂는 간단히 말해 "2를 몇 번 곱해야 해당 숫자가 나오는지"를 의미합니다.
하지만 실제로 '로그₂N!' 값을 구하기는 복잡합니다.
그래서 우리는 이런 개념을 이해만 하자 ^^
ex) 3길이의 데이터를 재배열하는 방법은 6가지이다. 그럼 "2를 몇 번 곱하면 6에 가까운 값이 나오나?"
2 × 2 × 2 = 8이므로 대략 3번 정도라고 볼 수 있습니다.
따라서 키의 길이는 대략 3비트 정도 필요하구나~
즉, '로그₂N!'은 데이터의 재배열 방법의 수를 2진수로 얼마나 표현해야 하는지를 대략적으로 알려주는 값입니다.
- 전체 키 대치 블록 암호 ( Full Key substitution Block Cipher ) :
-> 일정한 문자나 그룹의 문자를 다른 문자나 문자의 그룹으로 대체하는 방식으로 암호화를 수행. 이는 트랜스포지션 사이퍼와는 달리 원본 데이터의 순서를 바꾸는 것이 아니라 데이터 자체를 다른 데이터로 치환하는 방식
P-box( permutation 순열 ) : 치환박스
- 전치 (Transposition) 암호를 병렬적으로 수행하는 것이다.( 입력 비트들을 새로운 순서로 재배열하여 출력)
- 입력(Input)과 출력(Output) 비트의 개수에 따라 다양한 종류가 가능하다.
- 컴퍼레이션 (Compression) P-box : Input > Output 특정 입력 비트들을 압축하여 더 적은 수의 출력 비트로 변환, 일부 정보가 손실될 수 있으나, 암호화의 안전성을 높이는 데 기여
- 익스펜전(Expansion) P-box :Input < Output 입력 비트를 확장하여 더 많은 출력 비트로 변환, 추가된 비트들은 보통 원래의 입력 비트들과 관련된 연산을 통해 생성
- Straight P-box 만 역함수 존재 / 축소 P-box, 확장 P-box 역함수 없음
S-Box (Substitution Box) 란?
- S-box는 Substitution-box의 약자로, 블록 암호에서 사용되는 구성 요소 중 하나입니다.
S-box의 주요 기능은 입력 비트열을 받아서 그것을 다른 비트열로 치환하는 것입니다. 이로 인해 암호의 복잡성이 증가하고, 공격자에게 원본 메시지 예측을 더 어렵게 만듭니다.
S-box의 특성
1. 비선형성 (Non-linearity)
비선형성은 사물이 직선적이거나 예측 가능한 패턴을 따르지 않는 특성을 의미합니다. 암호학에서는 비선형성이 중요한데, 이렇게 해야 암호가 예측하거나 분석하기 개빡셈.
2. 국부 교환 속성 (Avalanche Effect) : 애발란치? 라고하던데 교수님께서
이것은 "눈사태 효과"라고도 불립니다. 돌맹이 하나 뺐는데 댐이 무너지는 급
암호화에서 국부 교환 속성은 입력의 아주 작은 변화가 암호화된 출력에서 큰 변화를 초래하는 것을 의미합니다.
예를 들어, 단 한 비트의 입력만 바뀌어도 암호화된 결과가 전체적으로 크게 달라져야 합니다.
이 속성 덕분에, 공격자는 입력과 출력 사이의 관계를 예측하기 어렵게 됩니다.
S-box의 설계
치환 테이블을 사용하여 구현됩니다. 이 테이블은 고정된 크기의 입력 값과 그에 상응하는 출력 값을 정의
S-Box가 복잡성과 비선형성을 제공하고, P-Box가 확산 효과를 제공
'개발 과 보안 > 암호학의 모든것' 카테고리의 다른 글
차분분석(Differential Cryptanalysis) (1) | 2023.10.24 |
---|---|
Shannon의 합성암호 개념 (1) | 2023.10.19 |
현대 대칭키 암호_구성요소[ 순환 이동 & Swap ] (0) | 2023.10.19 |
현대 대칭키 암호_ 구성요소2. [ xor 연산 ] (0) | 2023.10.18 |
암호학 (0) | 2023.09.02 |