본문 바로가기

개념정리/Cryptography

(11)
7. 공개키 암호 : RSA 저번 시간에는 Diffie-Hellman 알고리즘에 대하여 공부하였다. 이번 시간에는 공개키 암호 중 RSA에 대하여 공부할 것이다. 1. RSA RSA 암호 알고리즘에서는 모든 사용자에게 공개되는 공개키로 평문을 암호화하고, 타인에게 노출되어서는 안되는 개인키로 암호문을 복호화한다. RSA 암호 알고리즘의 안정성은 아주 큰 두 소수의 곱으로 이루어진 합성수를 인수분해하기 어렵다는 인수분해 문제의 어려움에서 나온다. 따라서 암호화할 때는 합성수의 소인수분해가 어려워지도록 각 인자를 적절히 설정해야한다. 1) 오일러 정리 오일러 정리는 n과 서로소인 양의 정수 m이 다음 식을 만족한다는 정리이다. mφ(n) ≡ 1 (mod n) φ(n) : 오일러 파이 함수이다. 오일러 파이함수는 n 이하의 양의 정수 중..
[Cryptography] Diffie-Hellman에 대한 중간자 공격 Diffie-Hellman에 대한 중간자 공격에 대하여 공부하기 위해 Diffie-Hellman 알고리즘에 대하여 알아야 한다. Diffie-Hellman 알고리즘에 대한 참고 링크이다. 7. Diffie-Hellman 알고리즘 저번 시간에는 운영모드에 대하여 공부하였다. 이번 시간은 공개 키 교환 알고리즘인 Diffie-Hellman 알고리즘에 대하여 공부할 것이다. 밑에 링크는 공개 키 교환 알고리즘을 공부하기 위해 합동식 sungw00k.tistory.com 1. Diffie-Hellman에 대한 중간자 공격 중간자 공격은 네트워크로 통신하는 두 주체는 서로의 신원을 확인하기 어렵다는 네크워크 특성을 이용한 공격이다. 일반적으로 네트워크에서 발생하는 공격은 공격자가 통신에 개입하지 않으면 1) 수동..
7. Diffie-Hellman 알고리즘 저번 시간에는 운영모드에 대하여 공부하였다. 이번 시간은 공개 키 교환 알고리즘인 Diffie-Hellman 알고리즘에 대하여 공부할 것이다. 밑에 링크는 공개 키 교환 알고리즘을 공부하기 위해 합동식에 대한 참고 자료 링크이다. 1. 암호학 개념 - 암호학에 대하여 공부를 시작 - 정보보안기사책과 드림핵을 보며 공부 할 것이다. 이번 시간은 암호학을 공부하기 위해 필요한 개념에 대하여 공부한다. 1. 암호학 암호학은 정보를 보호하기 sungw00k.tistory.com 1. Diffie-Hellman 알고리즘 배경 대칭키 암호는 안전하게 암호화할 수 있는 암호 기술이지만, 수신자와 송신자가 같은 키를 공유해야 한다. 그러므로 수신자와 송신자가 대칭키 암호 시스템을 사용하여 통신하려면 데이터를 교환하기 ..
[Cryptography] Replay Attack ◎ Replay Attack 재전송 공격(Replay Attack)은 어떤 데이터를 재전송하여 시스템이 의도치 않은 행동을 하게 만드는 공격이다. EX 1) 공격자가 암호화된 데이터를 복호화하는 것이 아니라, 암호화된 데이터를 탈취하여 서버에 전송하면서 공격할 수 있다. 탈취한 암호화된 데이터가 "100만원 출금"이라면 이 암호화된 데이터를 복호화 하는 것이 아니라 암호문 그대로 서버에 전송하여 100만원을 출금을 할 수 있다. EX 2) 만약 은행에서 운영모드로 ECB 모드를 사용한다면 다른 방식으로 공격이 가능하다. ECB 모드는 각 블록을 같은 키로 독립적으로 암호화한다.그러므로 같은 블록은 같은 암호문으로 암호화 되는 특성 때문에 Replay attack이 가능하다. ECB 모드에 대한 참조 링크..
[Cryptography] CBC Bit-Flipping Attack CBC 모드에 대한 설명은 밑에 링크를 참고하세요. 6. 패딩과 운영모드 저번 시간에는 AES에 대하여 공부하였다. 이번 시간에는 평문을 블록 단위로 만드는데 사용하는 패딩과 블록 암호의 운영모드에 대하여 공부할 것이다. 1. 패딩 블록 암호는 블록 단위로 암호화 sungw00k.tistory.com CBC모드에서 블록을 암호화 하기 전에 블록을 직전 블록의 암호문과 XOR 연산을 한다. 평문의 첫 번째 블록은 이전 블록이 존재하지 않으므로 초기 벡터(IV)라고 불리는 무작위 값과 XOR 연산을 한다. 초기 벡터를 이용하여 복호화 시, 공격자가 초기 벡터를 원하는 값으로 조작할 수 있다면 CBC Bit-Flipping Attack을 할 수 있다. ● CBC Bit-Flipping Attack CBC Bi..
6. 패딩과 운영모드 저번 시간에는 AES에 대하여 공부하였다. 이번 시간에는 평문을 블록 단위로 만드는데 사용하는 패딩과 블록 암호의 운영모드에 대하여 공부할 것이다. 1. 패딩 블록 암호는 블록 단위로 암호화를 하므로 입력의 길이가 정확하게 블록 크기의 배수가 되어야 한다. 하지만 일반적으로 평문의 크기는 블록 크기의 배수가 되지 않는다. 이러한 문제를 해결하기 위해 패딩을 한다. 패딩은 평문에 데이터를 붙여서 블록 크기의 배수가 되도록 만드는 과정이다. 블록 암호로 평문을 암호화할 때 평문은 패딩을 거친 뒤 여러 블록으로 나뉜다. 그리고 각각의 블록은 블록 암호의 운영모드에 따라 암호화된다. 패딩된 암호문을 복호화할 때는 복호화된 평문에서 패딩을 제거해야 원래의 평문을 얻을 수 있다. 따라서 패딩된 암호문의 수신자는 어..
5. 블록 암호 : AES 저번 시간은 DES에 대하여 공부하였다. 이번시간은 2001년에새롭게 표준으로 선정된 블록암호 AES에 대하여 공부할 것이다. 1. AES AES는 SPN이라는 암호 구조를 사용하는 블록 암호이다. SPN은 곱암호의 일종으로, S-box를 사용하는 치환과 P-box를 사용하는 순열을 여러 라운드에 걸쳐 반복한다. 페이스텔 구조와 달리 라운드마다 입력 전체에 라운드 함수를 적용하기 때문에 같은 수의 라운드를 사용할 때 SPN이 페이스텔 구조에 비해 두배의 암호학적 안전성을 갖는다. (페이스텔 구조는 블록을 반으로 나눠 라운드마다 사용하기 때문이다.) 2. AES 구조 AES는 라운드마다 128비트 크기의 블록을 암호화한다. 키의 길이는 128, 192, 256비트 중 하나를 선택할 수 있고, 라운드 수는 ..
4. 블록 암호 : DES 저번 시간에는 현대 암호에 대하여 공부하였다. 이번시간에는 블록암호인 DES에 대하여 공부할 것이다. 1. DES DES는 미국의 국가 안보국에서 IBM의 루시퍼 알고리즘을 개량하여 만든 대칭키 암호이다. DES는 루시퍼와 달리 키 길이를 56비트로 줄였고, 내부에서 사용하는 알고리즘도 변경하였다. 하지만 현대에는 DES에 대한 공격 기법이 많이 연구되어 더이상 블록 암호 표준으로 사용하지 않는다. DES는 8바이트(64비트)를 한 블록으로 암호화하는 블록 암호이다. 전체 구조는 초기 순열, 페이스텔 구조의 16 라운드, 최종 순열 그리고 각 라운드에 사용되는 48비트의 키를 생성하는 키 생성 함수로 구성된다. 1) 순열, 치환, 곱 암호 DES는 혼돈 성질을 만족하기 위해 치환, 확산 성질을 만족하기 ..