오브의 빛나는 별

암호 및 응용2 본문

해킹

암호 및 응용2

오브의 별 2021. 11. 7. 18:37
반응형

안녕하세요, 오브입니다.

오늘은 저번 시간에 했던 암호를 마무리하겠습니다. 암호 및 응용1을 참고해주세요

https://staraube.tistory.com/28?category=508720 

 

네트워크3, 암호 및 응용1

안녕하세요, 오브입니다. 오늘은 저저번 시간과 저번 시간에 했던 네트워크를 마무리하고 암호 및 응용에 대해 알아보겠습니다. 네트워크1, 2를 참고해주세요 https://staraube.tistory.com/21 네트워크1

staraube.tistory.com

 

해시 함수
- 해시 함수: 임의의 길이의 입력 메시지를 고정된 길이의 출력 값으로 압축시키는 함수. 
- 데이터 무결성 검증, 메시지 인증에 사용
- 일방향성: 주어진 해시 값 h에 대해서 H(x)=h를 만족하는 값을 찾는 것이 계산적으로 불가능한 것
- 충돌 회피성: 주어진 x에 대해 H(x)=H(y)를 만족하는 임의의 입력 메시지 y(x)를 찾는 것이 계산적으로 불가능한 것
- 체크섬과 동일한 목적으로 사용되는 경우도 많음
- 다른 내용의 데이터가 같은 키를 갖는 경우 해시 충돌, 해시 콜리전이라고 함. 해시 함수를 잘 정의해서 해시 충돌을 최소화하는 것이 성능 개선의 도움

 

암호 알고리즘 및 키 길이
- Bruteforce Attack(전수조사 공격): 무작위 대입 공격이라고도 하며 암호문의 암호 키를 찾기 위해 모든 경우의 수를 무작위로 대입하여 암호를 푸는 공격 방법
- 이론적으로 모든 가능한 수를 점검하니 실수가 없고 병렬 작업 가능
- 키의 길이에 따라 암호화의 강도, 보안 강도 결정. 키 길이 = 보안 강도
1. 대칭키의 경우, 키 길이가 1비트 증가 시 최대 대칭키 수가 두배가 되어 강도도 두배
2. 비대칭키의 경우 키 길이가 1비트 증가 시 약 1.02~1.05배 정도 증가
3. 해시에서 MDC의 경우 키x. 따라서 해시된 메시지 길이가 보안 강도로 이용

 

DES
- DES: 평문을 64비트로 나눠 56비트의 키를 이용해 다시 64비트의 암호문을 만들어내는 알고리즘
- 64비트의 평문이 16라운드를 거쳐 64비트의 암호문이 나옴
- 혼돈: 암호문과 암호키의 관계를 은닉함으로써 암호문을 이용하여 암호키를 찾는 공격을 방지하는 기법. 즉, 키와 암호문 강의 관계를 예측 불가능하게 변경시키는 방식.  치환 사용
- 확산: 암호문과 평문 사이의 관계를 은닉함으로써, 암호문에 대한 통계 테스트를 통해 평문을 유추하는 공격을 방지하는 기법. 즉, 평문과 암호문과의 관계를 감추는 성질. 순열 사용
- 라운드 키 생성기는 56비트 키를 16개의 48비트 라운드 키를 만듦.
- XOR 적용하여 라운드 키 결합
- S 박스: 48비트 입력값을 6비트씩 8개로 나눈 후, 각 6비트를 8개의 S 박스에 넣음. 6비트는 4비트로 축소되고 총 48비트는 32비트로 축소. 혼돈 효과 제공. 유일하게 비선형적인 부분으로 암호학적으로 핵심

 

AES
- DES의 취약점 보안하기 위해 고안됨. DES는 56비트의 매우 짧은 길이의 암호 키를 사용하여 공격에 취약
- 미국표준기술연구소에서 새로운 암호 공모전을 열었고 이때 채택된 것이 Rijndael(라인달) 알고리즘.
- DES와 다르게 파이스텔 암호를 가지고 있지 않으며, 암호 블록 크기는 128비트
- 10, 12, 14 라운드를 사용하며 각각 128, 192, 256비트의 키 길이를 가짐
- 한 블록(16바이트)은 원소가 한 바이트인 4x4 행렬로 변환되어 진행. 변환된 형태는 상태(State)라고 함
1. SubBytes: DES의 S 박스에 해당하고 바이트 단위로 치환. 
2. ShiftRows: State의 한 행 안에서의 바이트 단위 자리 바꿈. 첫 행은 그대로고 2번째 행부터 왼쪽으로 Shift 함. 
3. MixColumns: State가 한 열 안에서 혼합. 열을 비트 단위로 섞음
4. AddRoundKey: 비밀키에서 생성된 128비트의 라운드 키와 State가 XOR 연산

 

RSA
- 공개키 알고리즘에서는 두 개의 암호키 사용. 공개키는 암호화하는 데 사용하고 누구나에게 공개. 비공개키는 개인키로 암호문 해독에 사용.
- RSA: 비대칭 암호화 알고리즘으로 공개키와 개인키를 세트로 만들어서 암호화 및 복호화. 
- 소수 사용. 중요 정보를 두 개의 소수로 표현한 후 두 소수의 곱을 힌트와 함께 전송해 암호로 사용
반응형

'해킹' 카테고리의 다른 글

Buffer Overflow와 Return Oriented Programming  (0) 2021.11.28
취약점 분석  (0) 2021.11.21
네트워크3, 암호 및 응용1  (0) 2021.10.10
네트워크2  (0) 2021.10.02
네트워크1  (0) 2021.09.19