"암호공격"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
[[파일:암호공격.PNG|썸네일|400픽셀|'''암호공격'''(cryptogram attack)]] | [[파일:암호공격.PNG|썸네일|400픽셀|'''암호공격'''(cryptogram attack)]] | ||
− | '''암호공격'''<!--암호문공격-->(cryptogram attack) 은 정보를 다른 사람이 알지 못하도록 변환한 부호를 [[암호화]]해서 | + | '''암호공격'''<!--암호문공격-->(cryptogram attack) 은 정보를 다른 사람이 알지 못하도록 변환한 부호를 [[암호화]] 해서 공격한다. 암호 공격으로 대표적인 기지 평문 공격(KPA), 선택암호문 공격(CCA), 선택 평문 공격(CPA), 암호문 단독 공격(COA) 등이 있으며, 능동적 공격과 수동적 공격으로 분류되어 나누어서 진다. |
== 개요 == | == 개요 == | ||
− | 암호공격은 크게 2가지 분류로 나누는데 | + | 암호공격은 크게 2가지 분류로 나누는데 첫 번째로 의도적으로 내용을 조작하는 능동적 공격으로 메시지의 순서를 바꾸거나 메시지에 일부분을 다른 메시지로 대체하는 메시지 변조를 하거나, 불법적 침입자가 정당한 송신자로 가장해 메시지를 보내는 삽입 공격을 하기도 하고, 서비스 거부 공격(DOS)인 삭제 공격이 있으며, 정보를 다른 사람이 알지 못하도록 변환한 부호를 암호화해서 공격한다. 암호공격으로 대표적인 [[기지 평문 공격]](KPA), [[선택암호문 공격]](CCA), [[선택 평문 공격]](CPA), [[암호문 단독 공격]](COA) 등이 있다. |
== 역사 == | == 역사 == | ||
− | 컴퓨터의 발달과 함께 암호화는 아날로그 시대보다 훨씬 더 발전했다. | + | 컴퓨터의 발달과 함께 암호화는 아날로그 시대보다 훨씬 더 발전했다. 128bit 수학적 암호화는 고대 또는 중세 암호보다 훨씬 강력하며, 이제 많은 민감한 장치와 컴퓨터 시스템의 표준이 되었고, 보다 최근에는 암호 기술이 암호 화폐를 구현하는 데도 사용된다. [[ 암호화폐]] 에는 해시 함수, 공개키 암호화 및 디지털 서명과 같은 몇 가지 고급 암호화 기술을 활용 하는데 기술은 주로[[블록체인]]에 저장된 데이터의 보안을 보장하고 거래를 인증하는 데 사용되며, [[타원곡선]] DSA(Elliptical Curve Digital Signature Algorithm, ECDSA)로 알려진 전문화된 암호화 형태는 [[비트코인]] 과 암호화폐가 추가적인 보안을 제공하고 자금이 정당한 소유주만이 사용할 수 있도록 보장하기 위한 수단으로 사용된다.<ref>Binance Academy, 〈[http://a.to/19EYYoK 암호학의 역사]〉,《BINANCE》, 2019-01-14 </ref> |
− | * 1586년 : 프랑스의 외교관 블레즈 드 비제네르(Blaise de | + | * 1586년 : 프랑스의 외교관 블레즈 드 비제네르(Blaise de Vigen re)가 발표한 비제네르암호 |
− | * 1863년 : 프리드리히 | + | * 1863년 : 프리드리히 카시스 키(Friedrich Kasiski)가 발표한 Kasiski examination |
− | * 1920년 : 윌리엄 프리드먼(William F. Friedman) | + | * 1920년 : 윌리엄 프리드먼(William F. Friedman)이 발표한 Friedman Test |
− | * 1990년 : 컴퓨터 과학자들에 의해 | + | * 1990년 : 컴퓨터 과학자들에 의해 양자 암호학이라고 불리는 완전히 새로운 형태의 암호학이 현대 암호화로 제공되는 보안 수준을 다시 한번 향상하기를 희망하며 개발 중이다. |
== 특징 == | == 특징 == | ||
− | 암호공격은 크게 2가지 분류로 나누는데 | + | 암호공격은 크게 2가지 분류로 나누는데 첫 번째로 의도적으로 내용을 조작하는 능동적 공격으로 메시지의 순서를 바꾸거나 메시지에 일부분을 다른 메시지로 대체하는 메시지 변조를 하거나, 불법적 침입자가 정당한 송신자로 가장해 메시지를 보내는 삽입 공격을 하기도 하고, 서비스 거부 공격(DOS)인 삭제 공격을 한다. 또는 송수신자간의 도청 내용을 재생하여 다시 전송하는 재생 공격 등이 있다. 두 번째로 암호문을 만드는 데 사용한 비밀키를 찾아내는 수동적 공격으로 전송되는 메시지를 도중에 가로채는 도청, 전송되는 메시지의 길이, 전달빈도 등을 관측해서 메시지의 특성을 파악하는 [[트래픽]] 분석과 예상할 수 있는 모든 키를 적용해 암호를 알아내는 암호문 공격이 있으며, 평문의 일부와 그에 대한 암호문을 알고 있을때 나머지 암호문에 해당하는 공격을 하는 알려진 평문 공격, 암호분석자가 평문의 일부를 선택하는 선택된 평문 공격, 암호문의 일부를 이용하여 평문을 만들어낸 다음 분석하여 키를 찾아내는 방법인 선택된 암호문 공격이 있다. 암호 공격 방식으로 암호 해독 자가 도청한 암호문으로부터 그에 해당하는 평문이나 비밀키를 도출하는 수동적 공격법이 있다.<ref>nom2ne, 〈[http://a.to/196MjOq 암호 공격 기법]〉,《티스토리》, 2007-07-03 </ref> |
=== 암호공격 기법 === | === 암호공격 기법 === | ||
'''수동적 공격 기법 개념''' | '''수동적 공격 기법 개념''' | ||
− | * 전송되는 파일을 도청(Sniffing) : 불법적인 공격자가 전송되는 메시지를 도중에 가로채어 그 내용을 외부로 노출시키는 공격, 메시지의 내용을 | + | * 전송되는 파일을 도청(Sniffing) : 불법적인 공격자가 전송되는 메시지를 도중에 가로채어 그 내용을 외부로 노출시키는 공격, 메시지의 내용을 공격한다. |
− | * 트래픽 분석 : 전송 메시지의 암호화로 도청을 통한 메시지 내용 파악이 불가능하더라도 메시지의 | + | * 트래픽 분석 : 전송 메시지의 암호화로 도청을 통한 메시지 내용 파악이 불가능하더라도 메시지의 송신 측과 수신 측 신원의 파악 가능하며, 메시지 존재에 대한 공격은 익명성 제공으로 방어한다. |
'''능동적 공격 기법 개념''' | '''능동적 공격 기법 개념''' | ||
− | * | + | * 메시지 변조 : 전송되는 메시지들의 순서를 바꾸거나 또는 메시지의 일부분을 다른 메시지로 대체하여 불법적인 효과를 발생시키는 공격 |
− | * | + | * 삽입 공격 : 불법적인 공격자가 정당한 송신자로 가장하여 특정 수신자에게 메시지를 보내어 역시 불법적인 효과를 발생시키는 공격 |
− | * | + | * 삭제 공격 : 정상적인 통신 시설의 사용, 관리를 방해하는 서비스 거부 공격, 특정 수신자에게 전송되는 메시지의 전부 또는 일부가 공격자에 의해 삭제된다. |
− | * | + | * 재생 공격 : 공격자가 이전에 특정 송신자와 수신 자간에 행해졌던 통화내용을 도청하여 보관하고 있다가 나중에 재생하여 전송하는 공격 한다. |
'''안정성 개념''' | '''안정성 개념''' | ||
− | : 주어진 암호 시스템의 안전성을 말할 때는 두 가지 관점이 | + | : 주어진 암호 시스템의 안전성을 말할 때는 두 가지 관점이 있는데 첫 번째는 암호 시스템을 공격하기 위해 필요한 계산량이 매우 커 현실적으로 공격할 수 없는 경우를 계산적으로 안전하다고 말한다. 둘째는 무한한 계산능력이 있어도 공격할 수 없는 경우를 무조건 안전하다고 말한다. 암호 알고리즘 사용자가 해야 할 일은 다음 두 기준 중의 하나 또는 전부를 만족하는 [[알고리즘]] 을 개발하는 것이다. |
− | # 암호 해독 비용이 암호화된 정보의 가치 초과 | + | # 암호 해독 비용이 암호화된 정보의 가치 초과 |
# 암호 해독 시간이 정보의 유효 기간 초과 | # 암호 해독 시간이 정보의 유효 기간 초과 | ||
''' 암호 공격 방식 ''' | ''' 암호 공격 방식 ''' | ||
− | * 암호문 단독 공격( | + | * 암호문 단독 공격(Cipher text only attack) : 암호 해독자는 단지 암호문 C만을 갖고 이로부터 평문 P나 키 K를 찾아내는 방법으로 평문 P의 통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법이다. |
− | * 기지 평문 공격 (Known | + | * 기지 평문 공격 (Known plain text attack) : 암호 해독자는 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법으로 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해하는 방법이다. |
− | * 선택 평문 공격 (Chosen | + | * 선택 평문 공격 (Chosen plain text attack) : 암호 해독 자가 사용된 암호기에 접근할 수 있어 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법이다. |
− | * 선택 암호문 공격 (Chosen | + | * 선택 암호문 공격 (Chosen cipher text attack) : 암호 해독 자가 암호 복호기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어 내 암호를 해독하는 방법이다. |
===고전 암호공격 === | ===고전 암호공격 === | ||
[[파일:알파뱃.PNG|썸네일|600픽셀|'''단일치환 암호''']] | [[파일:알파뱃.PNG|썸네일|600픽셀|'''단일치환 암호''']] | ||
− | ''' | + | '''단일치환 암호의 공격''' |
− | : 단일치환 암호란 주어진 평문의 각 알파벳을 미리 정해진 알파벳에 일대일 대응 시켜 | + | : 단일치환 암호란 주어진 평문의 각 알파벳을 미리 정해진 알파벳에 일대일 대응 시켜 치환한다. 단일치환 암호로 일반적인 영어 문장을 암호화했을 경우 빈도 분석을 통해 복호화를 할 수 있고, 영어 문장에서는 각 알파벳의 빈도가 균등하지 않다. 주어진 암호문에 대해 각 알파벳의 빈도를 확인하면 각 알파벳이 어느 알파벳에 대응되는지를 짐작할 순 있으나 일반적인 영어 문장에서 E, A, T, O 순으로 가장 많이 등장한다고 해서 실제 평문에서도 반드시 E, A, T, O 순으로 가장 많이 등장하지 않기 때문에 키의 후보군을 줄여주는 역할을 수행할 수는 있지만, 빈도 분석으로 키를 정확하게 찾아내는 것은 불가능하다. 빈도 분석은 영어뿐만 아니라 프랑스어, 독일어, 스페인어 등의 다른 언어에서도 유용하게 사용하고 있다.<ref name="바">blisstoner, 〈[http://a.to/19tvwKT 고전 암호의 공격 기법]〉,《삼성소프트웨어》, 2019-07-07 </ref> |
[[파일:비제네르.PNG|썸네일|300픽셀|'''베제네르 암호화,복호화''']] | [[파일:비제네르.PNG|썸네일|300픽셀|'''베제네르 암호화,복호화''']] | ||
− | ''' | + | '''비제네르암호공격''' |
− | : | + | : 비제네르암호는 1586년 프랑스의 외교관 블레즈 드 비제네르(Blaise de Vigen re)가 발표한 암호로서 비제네르암호는 길이가 정해져 있지 않은 영어 단어 혹은 문장을 키로 사용해 평문을 암호화하는 방법이다. 비제네르 암호의 공격들은 모두 키의 길이를 알아내기 위한 공격들이다. 옆에 사진은 평문 HACK THIS PLANET를 키 ENCRYPT로 암호화, 복호화하는 과정이다.<ref name="바"></ref> |
'''Friedman Test''' | '''Friedman Test''' | ||
− | : Friedman Test는 키의 길이를 올바르게 유추했을 경우 P[a], P[a+k], P[a+2k], … , P[a+nk]에서의 빈도가 일반적인 영어 문장에서의 빈도를 따르고, 그렇지 않을 경우 각 알파벳이 균등하게 | + | : Friedman Test는 키의 길이를 올바르게 유추했을 경우 P[a], P[a+k], P[a+2k], … , P[a+nk]에서의 빈도가 일반적인 영어 문장에서의 빈도를 따르고, 그렇지 않을 경우 각 알파벳이 균등하게 \frac{1}{26} 의 확률로 등장한다는 점을 이용한 방식으로 일반적인 영어 문장에서 각 글자의 등장 비율을 pa, pb, … ,pz 라고 한다. 이는 일반적인 영어 문장에서 임의의 두 글자를 택했을 때 그 두 글자가 같을 확률은 p^{2}_{a}+p^{2}_{b}+\cdots+p^{2}_{z}=0.067 로이 값을 Index of Coincidence라고 부른다. 암호화되어 의미 없는 문장에서는 각 글자의 등장 비율이 \frac{1}{26} 으로 동일하기 때문에 임의의 두 글자를 택했을 때 그 두 글자가 같을 확률은 |
− | : | + | : \frac{1^2}{26}*26=\frac{1}{26}=0.0385 |
: 이므로, Index of Coincidence가 0.067에 가까울수록 올바른 키 값이라고 유추할 수 있다.<ref name="바"></ref> | : 이므로, Index of Coincidence가 0.067에 가까울수록 올바른 키 값이라고 유추할 수 있다.<ref name="바"></ref> | ||
'''Hill Climbing Method''' | '''Hill Climbing Method''' | ||
− | : Hill Climbing | + | : Hill Climbing Method는 마치 언덕의 정상을 향해 올라가는 형태와 같이 현재의 상태에서 조금 더 평문에 가깝게 되도록 키를 조금씩 수정해 암호문을 복원하는 방법으로, 대부분의 고전 암호를 해결하는 데 쓰일 수 있는 게 간단하면서도 매우 강력한 공격 기법이며, 여러 군데 존재할 경우 Hill Climbing Method가 항상 global maximum을 찾는다는 보장을 할 수 없다는 단점이 있지만, 이는 초기 키의 상태를 랜덤하게 둔 채로 여러 차례 Hill Climbing을 시도함으로써 해결할 수 있는 문제이다.<ref name="바"> |
== 종류 == | == 종류 == | ||
− | * '''[[ | + | * '''[[기지 평문 공격]](Known Plain text Attack, KPA)''' |
− | : | + | : 기지 평문 공격은 공격자가 평문과 평문을 암호화한 암호문을 모두 알고 있을 때 사용할 수 있는 암호해독 기법으로 이미 알고 있는 평문과 암호문을 바탕으로 비밀 키를 알아내기 위해 사용하며, '기지'(旣知) 란 "이미 알고 있다"는 뜻으로서, 기지평문공격은 알려진 평문 공격이라 하고, 암호학에서 기지 평문 공격은 공격자가 평문과 그를 암호화한 암호문을 모두 알고 있을 때 사용할 수 있는 암호 해독 기법들을 말한다. 이미 알고 있는 평문을 [[크립]](crib)이라고 부르는데, 크립이라는 용어는 제2차 세계 대전 당시 암호 해독 실인 블레츨리 파크에서 유래했다. 암호해독 가가 암호를 해독하기 위해 의미 없어 보이는 암호문만 보아서는 많은 정보를 얻기 힘들지만, 암호문 안에 이미 알고 있는 평문이 포함되어 있다면, 그 사실이 암호문과 평문 사이의 관계를 추정하기 위한 단서가 될 수 있다. AES 등의 현대 암호체계는 기지 평문 공격의 영향을 받지 않는 것으로 알려졌지만 예전 버전의 ZIP 파일 포맷에 사용되는 [[PKZIP 스트림]] 암호화 알고리즘은 기지 평문 공격에 취약하다. 이 알고리즘으로 암호화된 압축 파일은 압축 파일 안에 들어 있는 파일 일부라도 알아낼 수 있으면 전체 압축 파일을 해독 할 수 있으며, 특징으론 [[대칭키]] 를 통해 이루어진 통신 채널을 공격하기 위해 주로 사용하고, 최종 목표는 복호키를 찾는 것이다. |
− | * '''[[선택암호문 공격]](Chosen | + | * '''[[선택암호문 공격]](Chosen Cipher text Attack, CCA)''' |
− | : 선택암호문 공격은 암호 분석가가 임의로 선택된 암호문과 일치하는 평문으로부터 암호키를 알아내기 위해 시도하는 공격이다. 공개키 암호 방식에서 응용되는 것으로 사설 키가 한번 알려지면 같은 종류의 메시지에서는 모두 | + | : 선택암호문 공격은 암호 분석가가 임의로 선택된 암호문과 일치하는 평문으로부터 암호키를 알아내기 위해 시도하는 공격이다. 공개키 암호 방식에서 응용되는 것으로 사설 키가 한번 알려지면 같은 종류의 메시지에서는 모두 복호화하고, 다른 많은 보안 체계는 선택암호문 공격에 의해 무효가 될 수 있으며, 다른 공격과 마찬가지로 적응형 또는 미적응형일 수 있다. 적응형 선택암호문 공격에서 공격자는 이전 암호해독의 결과를 사용하여 암호문을 선택할 수 있는 정보를 제공할 수 있고, 미적응형 선택암호문 공격에서 공격자는 결과를 보지 않고 해독할 암호문을 선택할 수 있다. 공격자는 평문을 본 후, 추가 암호문 해독이 불가능하다. 특징으로 선택 평문 공격보다 강력하고, 모든 공격은 키 값을 알아내는 것이 목적 암호분석가가 복호화 장치에 접근 가능한 상황에 사용이 가능하며, 선택한 암호문에 해당하는 평문을 얻을 수 있고, 다른 관측된 암호문에 해당하는 평문 도출이 가능하다. 선택 암호문 공격은 암호 해독 능력을 갖춘 사용자 컴퓨터가 사용자가 점심을 먹으러 나가는 동안 공격자가 사용할 수 있는 런치타임 공격과 적응형 선택암호문 공격은 공격 암호 문자 자체가 질의 되지 않을 수 있다는 규정만을 가지고, 공격 암호 문자를 공격자에게 주기 전, 후에 적응형으로 선택할 수 있는 공격인 적응형 선택암호문 공격 이 있다. |
− | * '''[[ | + | * '''[[선택 평문 공격]](Chosen Plain text Attack, CPA)''' |
− | : 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격이다. 공격자가 한꺼번에 선택한 평문들에 대한 암호문이 주어진다는 | + | : 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격이다. 공격자가 한꺼번에 선택한 평문들에 대한 암호문이 주어진다는 가정하에 복호화 키를 찾는 공격으로 공격자가 암호장치에 얼마든지 접근할 수 있어서 선택된 평문을 입력하고 그에 대한 암호문을 얻을 수 있는 상황에서 복호화 키를 찾아내거나 선택된 암호문에 대한 평문을 찾아내고자 한다. 암호 알고리즘이 하드웨어로 구현되어 있고 키는 내부에 내장된 암호장치를 공격자가 가지고 있다고 가정해보면 공격자는 원하는 만큼 선택한 평문을 입력시켜보고 그에 대한 암호문을 얻을 수 있다. 공개키 암호 알고리즘의 경우 공개키가 알려져 있음으로 공격자는 선택한 어떤 평문도 암호화하여 암호문을 얻을 수 있다. 이런 평문/암호문 쌍에 대한 지식을 기반으로 공격자는 좀 더 유리한 환경에서 암호 시스템을 공격할 수 있다. 선택 평문 공격은 선택 암호문 공격은 주로 공개키 암호 알고리즘의 안전성 분석할 때 사용되는 적응적 선택 평문 공격과 선택 평문 공격에서 사용할 수 있는 공격 기법인 차분 공격(Differential Cryptanalysis)이 있다. |
− | * '''[[암호문 단독공격]]( | + | * '''[[암호문 단독공격]](Cipher text Only Attack, COA)''' |
− | : 암호문 단독 공격이란 도청자가 알고리즘을 알고 있고, 암호문을 가로챌 수 있다는 가정하에 도청자가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 공격을 말한다. 도청자는 암호문을 가지고 통계적 성질, 문장의 특성 등을 추정하여 해독하기 때문에, 가장 쉽게 적용될 수 있는 공격으로 예를 들자면, 영어로 된 평문을 암호화시킨 암호문을 암호문 단독 공격으로 얻어냈을 때 영어에서 가장 많이 쓰이는 글자가 e이기 때문에 가장 많이 나오는 글자는 e일 것이라고 예측을 하는 것이다. 공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 알고리즘으로 암호화된 유한 암호문 집합만을 가지고 있다. 따라서 공격자의 목표는 대응되는 평문을 찾거나 사용된 암호키를 찾거나 암호 키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 기지 평문 공격에서 공격자는 암호문뿐만 아니라 대응되는 평문도 가지고 있다. 하지만 가지고 있는 암호문/평문 쌍을 공격자가 선택할 수 없다. 이 공격에서 공격자의 목표는 사용된 암호키를 찾거나 암호키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 암호문 단독공격의 특징으로는 통계적 성질을 이용해서 영어 문장에서 출현 빈도가 높은 순서대로 [e, t, a, o, | + | : 암호문 단독 공격이란 도청자가 알고리즘을 알고 있고, 암호문을 가로챌 수 있다는 가정하에 도청자가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 공격을 말한다. 도청자는 암호문을 가지고 통계적 성질, 문장의 특성 등을 추정하여 해독하기 때문에, 가장 쉽게 적용될 수 있는 공격으로 예를 들자면, 영어로 된 평문을 암호화시킨 암호문을 암호문 단독 공격으로 얻어냈을 때 영어에서 가장 많이 쓰이는 글자가 e이기 때문에 가장 많이 나오는 글자는 e일 것이라고 예측을 하는 것이다. 공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 알고리즘으로 암호화된 유한 암호문 집합만을 가지고 있다. 따라서 공격자의 목표는 대응되는 평문을 찾거나 사용된 암호키를 찾거나 암호 키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 기지 평문 공격에서 공격자는 암호문뿐만 아니라 대응되는 평문도 가지고 있다. 하지만 가지고 있는 암호문/평문 쌍을 공격자가 선택할 수 없다. 이 공격에서 공격자의 목표는 사용된 암호키를 찾거나 암호키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 암호문 단독공격의 특징으로는 통계적 성질을 이용해서 영어 문장에서 출현 빈도가 높은 순서대로 [e, t, a, o, i….]이고, 이러한 부분이 확률이기 때문에 정확하지 않음으로 빈도수가 비슷할 경우 바꿔서도 공격 코드를 작성해 보아야 하며, 이 공격은 암호문이 길수록 유리하다. |
2019년 8월 1일 (목) 15:19 판
암호공격(cryptogram attack) 은 정보를 다른 사람이 알지 못하도록 변환한 부호를 암호화 해서 공격한다. 암호 공격으로 대표적인 기지 평문 공격(KPA), 선택암호문 공격(CCA), 선택 평문 공격(CPA), 암호문 단독 공격(COA) 등이 있으며, 능동적 공격과 수동적 공격으로 분류되어 나누어서 진다.
개요
암호공격은 크게 2가지 분류로 나누는데 첫 번째로 의도적으로 내용을 조작하는 능동적 공격으로 메시지의 순서를 바꾸거나 메시지에 일부분을 다른 메시지로 대체하는 메시지 변조를 하거나, 불법적 침입자가 정당한 송신자로 가장해 메시지를 보내는 삽입 공격을 하기도 하고, 서비스 거부 공격(DOS)인 삭제 공격이 있으며, 정보를 다른 사람이 알지 못하도록 변환한 부호를 암호화해서 공격한다. 암호공격으로 대표적인 기지 평문 공격(KPA), 선택암호문 공격(CCA), 선택 평문 공격(CPA), 암호문 단독 공격(COA) 등이 있다.
역사
컴퓨터의 발달과 함께 암호화는 아날로그 시대보다 훨씬 더 발전했다. 128bit 수학적 암호화는 고대 또는 중세 암호보다 훨씬 강력하며, 이제 많은 민감한 장치와 컴퓨터 시스템의 표준이 되었고, 보다 최근에는 암호 기술이 암호 화폐를 구현하는 데도 사용된다. 암호화폐 에는 해시 함수, 공개키 암호화 및 디지털 서명과 같은 몇 가지 고급 암호화 기술을 활용 하는데 기술은 주로블록체인에 저장된 데이터의 보안을 보장하고 거래를 인증하는 데 사용되며, 타원곡선 DSA(Elliptical Curve Digital Signature Algorithm, ECDSA)로 알려진 전문화된 암호화 형태는 비트코인 과 암호화폐가 추가적인 보안을 제공하고 자금이 정당한 소유주만이 사용할 수 있도록 보장하기 위한 수단으로 사용된다.[1]
- 1586년 : 프랑스의 외교관 블레즈 드 비제네르(Blaise de Vigen re)가 발표한 비제네르암호
- 1863년 : 프리드리히 카시스 키(Friedrich Kasiski)가 발표한 Kasiski examination
- 1920년 : 윌리엄 프리드먼(William F. Friedman)이 발표한 Friedman Test
- 1990년 : 컴퓨터 과학자들에 의해 양자 암호학이라고 불리는 완전히 새로운 형태의 암호학이 현대 암호화로 제공되는 보안 수준을 다시 한번 향상하기를 희망하며 개발 중이다.
특징
암호공격은 크게 2가지 분류로 나누는데 첫 번째로 의도적으로 내용을 조작하는 능동적 공격으로 메시지의 순서를 바꾸거나 메시지에 일부분을 다른 메시지로 대체하는 메시지 변조를 하거나, 불법적 침입자가 정당한 송신자로 가장해 메시지를 보내는 삽입 공격을 하기도 하고, 서비스 거부 공격(DOS)인 삭제 공격을 한다. 또는 송수신자간의 도청 내용을 재생하여 다시 전송하는 재생 공격 등이 있다. 두 번째로 암호문을 만드는 데 사용한 비밀키를 찾아내는 수동적 공격으로 전송되는 메시지를 도중에 가로채는 도청, 전송되는 메시지의 길이, 전달빈도 등을 관측해서 메시지의 특성을 파악하는 트래픽 분석과 예상할 수 있는 모든 키를 적용해 암호를 알아내는 암호문 공격이 있으며, 평문의 일부와 그에 대한 암호문을 알고 있을때 나머지 암호문에 해당하는 공격을 하는 알려진 평문 공격, 암호분석자가 평문의 일부를 선택하는 선택된 평문 공격, 암호문의 일부를 이용하여 평문을 만들어낸 다음 분석하여 키를 찾아내는 방법인 선택된 암호문 공격이 있다. 암호 공격 방식으로 암호 해독 자가 도청한 암호문으로부터 그에 해당하는 평문이나 비밀키를 도출하는 수동적 공격법이 있다.[2]
암호공격 기법
수동적 공격 기법 개념
- 전송되는 파일을 도청(Sniffing) : 불법적인 공격자가 전송되는 메시지를 도중에 가로채어 그 내용을 외부로 노출시키는 공격, 메시지의 내용을 공격한다.
- 트래픽 분석 : 전송 메시지의 암호화로 도청을 통한 메시지 내용 파악이 불가능하더라도 메시지의 송신 측과 수신 측 신원의 파악 가능하며, 메시지 존재에 대한 공격은 익명성 제공으로 방어한다.
능동적 공격 기법 개념
- 메시지 변조 : 전송되는 메시지들의 순서를 바꾸거나 또는 메시지의 일부분을 다른 메시지로 대체하여 불법적인 효과를 발생시키는 공격
- 삽입 공격 : 불법적인 공격자가 정당한 송신자로 가장하여 특정 수신자에게 메시지를 보내어 역시 불법적인 효과를 발생시키는 공격
- 삭제 공격 : 정상적인 통신 시설의 사용, 관리를 방해하는 서비스 거부 공격, 특정 수신자에게 전송되는 메시지의 전부 또는 일부가 공격자에 의해 삭제된다.
- 재생 공격 : 공격자가 이전에 특정 송신자와 수신 자간에 행해졌던 통화내용을 도청하여 보관하고 있다가 나중에 재생하여 전송하는 공격 한다.
안정성 개념
- 주어진 암호 시스템의 안전성을 말할 때는 두 가지 관점이 있는데 첫 번째는 암호 시스템을 공격하기 위해 필요한 계산량이 매우 커 현실적으로 공격할 수 없는 경우를 계산적으로 안전하다고 말한다. 둘째는 무한한 계산능력이 있어도 공격할 수 없는 경우를 무조건 안전하다고 말한다. 암호 알고리즘 사용자가 해야 할 일은 다음 두 기준 중의 하나 또는 전부를 만족하는 알고리즘 을 개발하는 것이다.
- 암호 해독 비용이 암호화된 정보의 가치 초과
- 암호 해독 시간이 정보의 유효 기간 초과
암호 공격 방식
- 암호문 단독 공격(Cipher text only attack) : 암호 해독자는 단지 암호문 C만을 갖고 이로부터 평문 P나 키 K를 찾아내는 방법으로 평문 P의 통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법이다.
- 기지 평문 공격 (Known plain text attack) : 암호 해독자는 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법으로 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해하는 방법이다.
- 선택 평문 공격 (Chosen plain text attack) : 암호 해독 자가 사용된 암호기에 접근할 수 있어 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법이다.
- 선택 암호문 공격 (Chosen cipher text attack) : 암호 해독 자가 암호 복호기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어 내 암호를 해독하는 방법이다.
고전 암호공격
단일치환 암호의 공격
- 단일치환 암호란 주어진 평문의 각 알파벳을 미리 정해진 알파벳에 일대일 대응 시켜 치환한다. 단일치환 암호로 일반적인 영어 문장을 암호화했을 경우 빈도 분석을 통해 복호화를 할 수 있고, 영어 문장에서는 각 알파벳의 빈도가 균등하지 않다. 주어진 암호문에 대해 각 알파벳의 빈도를 확인하면 각 알파벳이 어느 알파벳에 대응되는지를 짐작할 순 있으나 일반적인 영어 문장에서 E, A, T, O 순으로 가장 많이 등장한다고 해서 실제 평문에서도 반드시 E, A, T, O 순으로 가장 많이 등장하지 않기 때문에 키의 후보군을 줄여주는 역할을 수행할 수는 있지만, 빈도 분석으로 키를 정확하게 찾아내는 것은 불가능하다. 빈도 분석은 영어뿐만 아니라 프랑스어, 독일어, 스페인어 등의 다른 언어에서도 유용하게 사용하고 있다.[3]
비제네르암호공격
- 비제네르암호는 1586년 프랑스의 외교관 블레즈 드 비제네르(Blaise de Vigen re)가 발표한 암호로서 비제네르암호는 길이가 정해져 있지 않은 영어 단어 혹은 문장을 키로 사용해 평문을 암호화하는 방법이다. 비제네르 암호의 공격들은 모두 키의 길이를 알아내기 위한 공격들이다. 옆에 사진은 평문 HACK THIS PLANET를 키 ENCRYPT로 암호화, 복호화하는 과정이다.[3]
Friedman Test
- Friedman Test는 키의 길이를 올바르게 유추했을 경우 P[a], P[a+k], P[a+2k], … , P[a+nk]에서의 빈도가 일반적인 영어 문장에서의 빈도를 따르고, 그렇지 않을 경우 각 알파벳이 균등하게 \frac{1}{26} 의 확률로 등장한다는 점을 이용한 방식으로 일반적인 영어 문장에서 각 글자의 등장 비율을 pa, pb, … ,pz 라고 한다. 이는 일반적인 영어 문장에서 임의의 두 글자를 택했을 때 그 두 글자가 같을 확률은 p^{2}_{a}+p^{2}_{b}+\cdots+p^{2}_{z}=0.067 로이 값을 Index of Coincidence라고 부른다. 암호화되어 의미 없는 문장에서는 각 글자의 등장 비율이 \frac{1}{26} 으로 동일하기 때문에 임의의 두 글자를 택했을 때 그 두 글자가 같을 확률은
- \frac{1^2}{26}*26=\frac{1}{26}=0.0385
- 이므로, Index of Coincidence가 0.067에 가까울수록 올바른 키 값이라고 유추할 수 있다.[3]
Hill Climbing Method
- Hill Climbing Method는 마치 언덕의 정상을 향해 올라가는 형태와 같이 현재의 상태에서 조금 더 평문에 가깝게 되도록 키를 조금씩 수정해 암호문을 복원하는 방법으로, 대부분의 고전 암호를 해결하는 데 쓰일 수 있는 게 간단하면서도 매우 강력한 공격 기법이며, 여러 군데 존재할 경우 Hill Climbing Method가 항상 global maximum을 찾는다는 보장을 할 수 없다는 단점이 있지만, 이는 초기 키의 상태를 랜덤하게 둔 채로 여러 차례 Hill Climbing을 시도함으로써 해결할 수 있는 문제이다.<ref name="바">
종류
- 기지 평문 공격(Known Plain text Attack, KPA)
- 기지 평문 공격은 공격자가 평문과 평문을 암호화한 암호문을 모두 알고 있을 때 사용할 수 있는 암호해독 기법으로 이미 알고 있는 평문과 암호문을 바탕으로 비밀 키를 알아내기 위해 사용하며, '기지'(旣知) 란 "이미 알고 있다"는 뜻으로서, 기지평문공격은 알려진 평문 공격이라 하고, 암호학에서 기지 평문 공격은 공격자가 평문과 그를 암호화한 암호문을 모두 알고 있을 때 사용할 수 있는 암호 해독 기법들을 말한다. 이미 알고 있는 평문을 크립(crib)이라고 부르는데, 크립이라는 용어는 제2차 세계 대전 당시 암호 해독 실인 블레츨리 파크에서 유래했다. 암호해독 가가 암호를 해독하기 위해 의미 없어 보이는 암호문만 보아서는 많은 정보를 얻기 힘들지만, 암호문 안에 이미 알고 있는 평문이 포함되어 있다면, 그 사실이 암호문과 평문 사이의 관계를 추정하기 위한 단서가 될 수 있다. AES 등의 현대 암호체계는 기지 평문 공격의 영향을 받지 않는 것으로 알려졌지만 예전 버전의 ZIP 파일 포맷에 사용되는 PKZIP 스트림 암호화 알고리즘은 기지 평문 공격에 취약하다. 이 알고리즘으로 암호화된 압축 파일은 압축 파일 안에 들어 있는 파일 일부라도 알아낼 수 있으면 전체 압축 파일을 해독 할 수 있으며, 특징으론 대칭키 를 통해 이루어진 통신 채널을 공격하기 위해 주로 사용하고, 최종 목표는 복호키를 찾는 것이다.
- 선택암호문 공격(Chosen Cipher text Attack, CCA)
- 선택암호문 공격은 암호 분석가가 임의로 선택된 암호문과 일치하는 평문으로부터 암호키를 알아내기 위해 시도하는 공격이다. 공개키 암호 방식에서 응용되는 것으로 사설 키가 한번 알려지면 같은 종류의 메시지에서는 모두 복호화하고, 다른 많은 보안 체계는 선택암호문 공격에 의해 무효가 될 수 있으며, 다른 공격과 마찬가지로 적응형 또는 미적응형일 수 있다. 적응형 선택암호문 공격에서 공격자는 이전 암호해독의 결과를 사용하여 암호문을 선택할 수 있는 정보를 제공할 수 있고, 미적응형 선택암호문 공격에서 공격자는 결과를 보지 않고 해독할 암호문을 선택할 수 있다. 공격자는 평문을 본 후, 추가 암호문 해독이 불가능하다. 특징으로 선택 평문 공격보다 강력하고, 모든 공격은 키 값을 알아내는 것이 목적 암호분석가가 복호화 장치에 접근 가능한 상황에 사용이 가능하며, 선택한 암호문에 해당하는 평문을 얻을 수 있고, 다른 관측된 암호문에 해당하는 평문 도출이 가능하다. 선택 암호문 공격은 암호 해독 능력을 갖춘 사용자 컴퓨터가 사용자가 점심을 먹으러 나가는 동안 공격자가 사용할 수 있는 런치타임 공격과 적응형 선택암호문 공격은 공격 암호 문자 자체가 질의 되지 않을 수 있다는 규정만을 가지고, 공격 암호 문자를 공격자에게 주기 전, 후에 적응형으로 선택할 수 있는 공격인 적응형 선택암호문 공격 이 있다.
- 선택 평문 공격(Chosen Plain text Attack, CPA)
- 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격이다. 공격자가 한꺼번에 선택한 평문들에 대한 암호문이 주어진다는 가정하에 복호화 키를 찾는 공격으로 공격자가 암호장치에 얼마든지 접근할 수 있어서 선택된 평문을 입력하고 그에 대한 암호문을 얻을 수 있는 상황에서 복호화 키를 찾아내거나 선택된 암호문에 대한 평문을 찾아내고자 한다. 암호 알고리즘이 하드웨어로 구현되어 있고 키는 내부에 내장된 암호장치를 공격자가 가지고 있다고 가정해보면 공격자는 원하는 만큼 선택한 평문을 입력시켜보고 그에 대한 암호문을 얻을 수 있다. 공개키 암호 알고리즘의 경우 공개키가 알려져 있음으로 공격자는 선택한 어떤 평문도 암호화하여 암호문을 얻을 수 있다. 이런 평문/암호문 쌍에 대한 지식을 기반으로 공격자는 좀 더 유리한 환경에서 암호 시스템을 공격할 수 있다. 선택 평문 공격은 선택 암호문 공격은 주로 공개키 암호 알고리즘의 안전성 분석할 때 사용되는 적응적 선택 평문 공격과 선택 평문 공격에서 사용할 수 있는 공격 기법인 차분 공격(Differential Cryptanalysis)이 있다.
- 암호문 단독공격(Cipher text Only Attack, COA)
- 암호문 단독 공격이란 도청자가 알고리즘을 알고 있고, 암호문을 가로챌 수 있다는 가정하에 도청자가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 공격을 말한다. 도청자는 암호문을 가지고 통계적 성질, 문장의 특성 등을 추정하여 해독하기 때문에, 가장 쉽게 적용될 수 있는 공격으로 예를 들자면, 영어로 된 평문을 암호화시킨 암호문을 암호문 단독 공격으로 얻어냈을 때 영어에서 가장 많이 쓰이는 글자가 e이기 때문에 가장 많이 나오는 글자는 e일 것이라고 예측을 하는 것이다. 공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 알고리즘으로 암호화된 유한 암호문 집합만을 가지고 있다. 따라서 공격자의 목표는 대응되는 평문을 찾거나 사용된 암호키를 찾거나 암호 키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 기지 평문 공격에서 공격자는 암호문뿐만 아니라 대응되는 평문도 가지고 있다. 하지만 가지고 있는 암호문/평문 쌍을 공격자가 선택할 수 없다. 이 공격에서 공격자의 목표는 사용된 암호키를 찾거나 암호키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 암호문 단독공격의 특징으로는 통계적 성질을 이용해서 영어 문장에서 출현 빈도가 높은 순서대로 [e, t, a, o, i….]이고, 이러한 부분이 확률이기 때문에 정확하지 않음으로 빈도수가 비슷할 경우 바꿔서도 공격 코드를 작성해 보아야 하며, 이 공격은 암호문이 길수록 유리하다.
각주
참고자료
- 한국정보통신 기술협회 공식 홈페이지 - 〈http://www.tta.or.kr〉
- 해시넷 공식 홈페이지 - 〈http://www.hash.kr〉
- 송주영 기자, 〈삼성SDS, 전자서명 해킹 부채널공격 암호기술 확보〉,《경제정책》, 2018-10-01
- Han Lab, 〈정보보호개론 - 암호학 기초〉,《티스토리》, 2017-11-30
- nom2ne, 〈암호 공격 기법〉,《티스토리》, 2007-07-03
- blisstoner, 〈고전 암호의 공격 기법〉,《삼성소프트웨어》, 2019-07-07
같이 보기