본문 바로가기
Cryptology

대표적인 암호 학습 + 공격

by sseddi 2020. 9. 22.
728x90
암호 학습

1. RSA (공개키 암호)

큰 수를 소인수분해 하기 어려운 것을 이용

 

예시를 들어보자면(위 사진 참고)

앨리스와 밥이 있다.

밥은 소수 두 개 p와 q를 선택한다.

두 소수의 곱은 n이다.(n=p*q)

그리고 오일러 파이 함수를 구한다.

Φ(n) = Φ(pq) = (p - 1) * (q - 1)

 

밥은 암호화 지수로 Φ(n)와 서로소인 e를 선택한 다음, 복호화지수 d를(확장 유클리드 호제법 사용해) 찾아낸다.

모듈로 n과 암호화지수 e가 밥의 공개키로써 공개가 되고, 복호화 지수 d는 밥의 개인키이므로 비밀로 한다. p,q, Φ(n)도 비밀로 해야한다.

 

앨리스는 밥에게 메시지를 보낼 때 밥이 공개한 공개키를 사용해 지수 암호로 메시지를 암호화해서 보낸다.

 

밥은 복호화 지수 d와 공개 모듈로 n으로 모듈로 n에대해 암호문을 d제곱해서 메시지를 복호화할 수 있다.

 

추가적인 설명)

www.nexg.net/rsa-%EC%95%94%ED%98%B8%ED%99%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%98-%EC%9D%B4%ED%95%B4/

 

RSA 암호화 알고리즘의 이해

RSA 암호화 알고리즘의 이해 한솔넥스지 QA센터  최만수 과장   들어가기 전 여기에서 공개키 암호에 대한 개념은 설명은 하지 않습니다. 그러므로 공개키 암호에 대한 개념이 없으면 먼저 공개�

www.nexg.net

 2. AES (블록 암호)

DES 대체하기 위한 암호 알고리즘

128비트 블록암호

키 사이즈 128, 192, 256비트 -> 키 사이즈에 따라서 반복 횟수 다름

마지막을 제외한 각 라운드 구성은 SubBytes, ShiftRow, MixColum, AddRoundKey로 구성되고

마지막 라운드는  MixColum과정이 빠진 SubBytes, ShiftRow, AddRoundKey로 구성

키 사이즈 128비트라고 생각했을 때

 

128비트 평문이 들어오면 

AddRoundKey 과정에서 128비트 라운드키를 XOR 연산 한다.

SubBytes에서는 State의 각 바이트를 S-box에 따라 다른 바이트로 치환 (비선형성)한다.

ShiftRows 에서는 각 행에 대해 정해진 숫자만큼 왼쪽으로 순환이동한다. -> 선형 변환이며 확산 효과 제공

1행은 그대로, 2행은 1칸, 3행은 2칸, 4행은 3칸

MixColumns 에서도 위와 비슷하지만 열에 대해 특정 행렬과 곱연산을 가한다.-> 선형 변환이며 확산 효과 제공

그러면 마지막 과정으로 AddRoundKey에서는 128비트 state와 128비트 라운드키를 XOR 연산 한다.

 

복호화 과정은 암호화 과정을 역변환하여 진행하면 된다.

 

암호 공격

[RSA]

 

1. 하스타드 어택

n값과 c값이 3개씩 주어지며 e값이 작은 경우 가능

e값은 주로 3으로 주어진다.

 

2.  위너 어택

e값이 큰 경우 가능

e값이 큰 경우 d값이 작을 확률이 높은데, d가 작다면 이를 쉽게 복구할 수 있다.

 

참고)

defenit.kr/2019/09/24/Crypto/%E3%84%B4%20Research/RSA_for_CTF/

 

RSA for CTF

목차 RSA Key Gen RSA 암호화 및 복호화 암호화 복호화 RSA 문제 종류 d값 계산 낮은 지수 공격 n값 소인수 분해 및 DB 이용 위너 공격 하스타드 공격 선택 암호문 공격 p, q값이 비슷할 경우 n 값으로 p, q

defenit.kr

xerxes-break.tistory.com/341

 

RSA 공격법

RSA 공격법에 대해 한번도 정리해놓은적이 없어서... CTF 문제로 RSA가 나올때마다 헤매게 되어서 한번 정리해두는게 좋을 것 같다는 생각이 들어서 이렇게 정리하게 되었다. 공격법에는 여러가지�

xerxes-break.tistory.com

 

728x90

'Cryptology' 카테고리의 다른 글

[crypto] rememberSWINGCTF  (0) 2020.09.29

댓글