AES는 대칭 키 암호화 암호이며 일반적으로 데이터 암호화를위한 "골드 표준"으로 간주됩니다..

AES는 NIST 인증을 받았으며 미국 정부가 "보안"데이터를 보호하는 데 사용하며, 거의 모든 사람이 표준 대칭 키 암호로 AES를보다 일반적으로 채택하게되었습니다. 공개, 개인, 상업 또는 비상업적 용도로 자유롭게 사용할 수있는 개방형 표준.

AES 암호화 소개

AES는 대칭 키 암호화 암호입니다. 이는 데이터를 암호화하는 데 사용 된 것과 동일한 키가 데이터를 해독하는 데 사용됨을 의미합니다. 이것은 문제를 일으킨다 : 어떻게 안전한 방법으로 키를 전송 하는가?

비대칭 암호화 시스템은 누구나 사용할 수있는 공개 키를 사용하여 데이터를 보호하여이 문제를 해결합니다. 올바른 개인 키를 보유한 의도 된 수신자 만 해독 할 수 있습니다..

이렇게하면 발신자가 수신자의 개인 키를 알 필요가 없으므로 전송중인 데이터를 보호 할 때 비대칭 암호화가 훨씬 향상됩니다. 안전한 HTTPS 웹 사이트에 연결할 때 필요한 TLS 키 교환을 보호하는 데 사용되는 RSA 암호화가 좋은 예입니다..


따라서 AES와 같은 대칭 암호는 하드 드라이브에 저장된 경우와 같이 데이터를 안전하게 보관하는 데 훨씬 좋습니다. 이를 위해 다음과 같은 이유로 비대칭 암호보다 우수합니다.

  • 계산 능력이 훨씬 덜 필요합니다. 이는 대칭 암호화를 사용하여 비대칭 암호화보다 훨씬 빠르게 데이터를 암호화하고 삭제합니다. 관점에서, 대칭 암호는 일반적으로 비대칭 암호보다 "1000 배 빠르다"고 인용됩니다..
  • 또한 속도가 빠르기 때문에 대칭 암호는 대량의 데이터를 대량으로 암호화하는 데 훨씬 유용합니다. RSA와 같은 비대칭 암호는 실제로 대칭 키 암호화를 보호하는 데 사용되는 키와 같은 소량의 데이터를 암호화하는 데만 사용됩니다..

물론 오늘날의 연결된 세상에서 하드 드라이브에있는 데이터는 제한적으로 사용됩니다. 다행스럽게도 원격 서버에 안전하게 연결하는 데 필요한 원격 키 교환을 처리하는 데 사용되는 비대칭 암호화와 함께 인터넷을 통해 안전하게 전송할 수 있습니다..

예를 들어 OpenVPN은 비대칭 암호 (일반적으로 AES)로 원시 데이터를 보호합니다. 암호화 된 데이터를 PC와 VPN 서버간에 안전하게 전송하기 위해 비대칭 TLS 키 교환을 사용하여 서버에 대한 보안 연결을 협상합니다..

AES 암호화가 최고의 암호화 유형입니까??

AES는 아직 발명 된 가장 안전한 대칭 키 암호화 암호로 널리 알려져 있습니다. 유명한 암호 학자 브루스 슈나이어 (Bruce Schneier)가 공동 발명 한 투 피쉬 (Twofish)와 같이 보안 성이 높은 것으로 간주되는 다른 대칭 키 암호도 존재합니다..

그러나 이러한 암호는 AES와 같은 방식으로 전투 테스트를 거치지 않았습니다. 미국 정부가 AES가 "보안"데이터를 보호 할 수있는 최고의 암호라고 생각한다면 누가 논쟁을 벌이고 있습니까? 그러나 이것을 문제로 보는 사람들이 있습니다. 아래 NIST 섹션을 참조하십시오.

광범위한 채택은 다른 방식으로 AES에 도움이되었습니다. 대부분의 CPU 제조업체는 이제 AES 명령어 세트를 프로세서에 통합했습니다. 하드웨어 부스트는 많은 장치에서 AES 성능을 향상시키고 사이드 채널 공격에 대한 내성을 향상시킵니다..

128 비트 AES 암호화가 손상 될 수 있음?

제대로 구현하면 AES 자체가 깨지지 않습니다.

2011 년에 가장 빠른 슈퍼 컴퓨터는 Fujitsu K였습니다. 이것은 10.51 페타 플롭의 Rmax 최고 속도를 낼 수있었습니다. 이 수치에 따르면, 128 비트 AES 키를 강제로 해독하려면 후지쯔 K 1.02 x 10 ^ 18 – 약 10 억 억 (1 쿼 틸리 온)이 걸릴 것입니다. 이것은 우주의 나이보다 늙었다 (1,375 억 년).

2017 년 세계에서 가장 강력한 슈퍼 컴퓨터는 중국의 Sunway TaihuLight입니다. 이 야수는 93.02 페타 플롭의 최고 속도가 가능합니다. 즉, 세계에서 가장 강력한 컴퓨터는 여전히 128 비트 AES 키를 강제 실행하는 데 약 885 조 년이 걸릴 것입니다..

256 비트 암호를 무차별 처리하는 데 필요한 작업 수는 3.31 x 10 ^ 56입니다. 이것은 우주의 원자 수와 거의 같습니다!

2011 년에 암호화 연구자들은 AES의 약점을 발견하여 이전보다 알고리즘을 4 배 빠르게 분해 할 수있었습니다. 그러나 당시 한 연구원은 다음과 같이 지적했다.

"이를 원근법으로 정리하려면 1 조 대의 머신에서 초당 10 억 개의 키를 테스트 할 수 있기 때문에 AES-128 키를 복구하는 데 20 억 년이 걸릴 것입니다."

이 공격에 대응하여 안전 마진을 높이기 위해 AES-128 암호화 프로세스에 추가 4 라운드 (나중에 참조)가 추가되었습니다..

사이드 채널 공격

따라서 모든 의도와 목적에 따라 AES 자체는 제대로 구현되면 깨지지 않습니다. 그러나 항상 제대로 구현되지는 않았습니다..

사이드 채널 공격은 추가 정보를 찾기 위해 AES 암호화를 구현하는 컴퓨터 시스템에서 힌트를 찾습니다. 이것은 힘 AES를 무력화하는 데 필요한 가능한 조합의 수를 줄이는 데 유용 할 수 있습니다.

이러한 공격은 타이밍 정보 (컴퓨터가 계산을 수행하는 데 걸리는 시간), 전자기 누출, 오디오 단서 및 고해상도 카메라를 사용하여 수집 된 광학 단서를 사용하여 시스템이 AES 암호화를 처리하는 방법에 대한 추가 정보를 찾습니다..

AES에 대한 잘 알려진 사이드 채널 공격은 프로세서의 캐시 테이블 사용에 대한 암호의 공유 사용을주의 깊게 모니터링하여 AES-128 암호화 키를 성공적으로 추론했습니다..

적절하게 구현 된 AES는 데이터 유출 가능성 (하드웨어 기반 AES 명령어 세트 사용이 도움이되는 위치)을 방지하고 무작위 기술을 사용하여 암호로 보호 된 데이터와 유출 된 데이터 간의 관계를 제거함으로써 사이드 채널 공격을 완화합니다. 사이드 채널 공격을 사용하여 수집 할 수 있습니다.

안전하지 않은 비밀번호

AES 암호화는 키만큼 안전합니다. 이 키는 암호를 사용하여 스스로 보안을 유지하며, 사람들이 보안 암호를 사용하는 것이 얼마나 끔찍한 지 잘 알고 있습니다. 바이러스, 사회 공학 공격 등에 의해 도입 된 키로거는 AES 키를 보호하는 암호를 손상시키는 효과적인 방법 일 수도 있습니다..

양방향 방화벽, 우수한 바이러스 백신 소프트웨어 및 보안 문제에 대한 교육을 사용하는 것처럼 암호 관리자를 사용하면이 문제를 크게 완화 할 수 있습니다..

AES 암호화의 간략한 역사

당신이 어렸을 때, 당신은 메시지의 한 글자를 다른 것으로 바꾸어“비밀 메시지”를 만든 게임을 했습니까? 귀하가 선택한 공식에 따라 대체되었습니다.

예를 들어, 원본 메시지의 각 문자를 알파벳에서 그 뒤에 3 개의 1 자로 대체했을 수 있습니다. 다른 사람이이 공식이 무엇인지 알았거나 해결할 수 있다면“비밀 메시지”를 읽을 수있을 것입니다.

암호화 전문 용어에서 당신이하고있는 일은 매우 간단한 수학적 알고리즘에 따라 메시지 (데이터)를 "암호화"하는 것이 었습니다.

암호화는 고대부터 민감한 데이터를 숨기는 데 사용되었지만 실제로는 20 세기 동안 자체적으로 사용되었습니다. 제 2 차 세계 대전 중에 독일인들은 Enigma 기계를 사용하여 통신을 유명하게 만들었습니다.이 코드는 Bletchley Park의 Alan Turing에 의해 마찬가지로 유명해졌습니다..

DES 암호화 란

DES (Data Encryption Standard)는 1970 년대 중반에 미국 정부 통신을 보호하기 위해 만들어졌습니다. 최초의 현대적이고 공개적이며 무료로 사용할 수있는 암호화 알고리즘이되었으며 거의 ​​한 손으로 현대의 암호화 기술을 만들었습니다..

IBM이 개발했지만 DES는 국가 표준 국 (National Bureau of Standards, NBS, 이후 NIST가 됨)의 핵심 자식이었다.

NSA의 간섭에 대한 우려에도 불구하고 DES는 1976 년 미국 정부에 의해 채택되었습니다. "민감하지만 분류되지 않은" 교통. 여기에는 개인, 재무 및 물류 정보가 포함됩니다..

당시에는 다른 것이 없었기 때문에 데이터를 보호하기 위해 암호화가 필요한 상업 회사에서 빠르게 채택했습니다. 따라서, DES (56 비트 키를 사용)는 거의 20 년 동안 기본 워크 마우스 암호화 표준이되었습니다..

이 거의 유비쿼터스 채택은 DES가 연방 정보 처리 표준 (FIPS) 자격을 획득함으로써 크게 도움이되었습니다. 모든 미국의 비 군사 정부 기관 및 민간 정부 계약 업체는 FIPS 표준 만 사용해야합니다..

그러나 1990 년대 중반이되자 DES의 시대가 시작되었습니다. 현재 NSA는 균열 DES를 무차별화할 수 있다고 믿었습니다. 1998 년 EFF (Electronic Frontier Foundation)가 구축 한 220,000 달러의 기계가 단 2 일만에 무차별 강제 DES를 성공적으로 개발 한 것으로 입증되었습니다. 새로운 표준을위한 시간이었다.

AES는 어떻게 생겼는가

1997 년 미국 국립 표준 기술 연구소 (NIST)는 DES를 대체 ​​할 것을 찾고 있다고 발표했습니다. 2001 년 11 월, 수상자 : AES (이전 공동 제작자 중 하나 인 Rijndael로 알려짐).

NIST의 권고에 따라 새로운 암호는 미국 연방 정부에 의해 공식적으로 채택되어 2002 년 5 월에 효과적으로 사용되었습니다. 이전의 DES와 마찬가지로 AES는 FIPS 등급을 받았습니다. 미국 정부는 모든 AES 키 크기가 "비밀" 레벨 "기밀" AES-192 또는 AES-256이 필요한 정보.

AES는 이제 기본 워크 마우스 대칭 암호화 표준으로 전 세계 DES를 완전히 대체했습니다..

AES 암호화는 어떻게 작동합니까?

AES 암호화 알고리즘은 128 비트 블록 단위로 데이터를 암호화 및 해독합니다. 128 비트, 192 비트 또는 256 비트 키를 사용하여이 작업을 수행 할 수 있습니다. 128 비트 키를 사용하는 AES는 종종 AES-128이라고도합니다..

다음 다이어그램은 AES 프로세스에 대한 간략한 개요를 제공합니다.

AES 암호화 작동 방식

일반 텍스트

이것은 암호화하려는 민감한 데이터입니다.

비밀 키

알고리즘에 의해 생성 된 128 비트, 192 비트 또는 256 비트 변수입니다..

암호

그런 다음 실제 AES 암호는 일반 텍스트와 비밀 키를 시작점으로 사용하여 일련의 수학 변환을 수행합니다. 순서대로 다음과 같습니다.

  1. 키 확장. 원래 비밀 키를 사용하여 Rijndael의 키 일정 알고리즘을 사용하여 일련의 새로운 "라운드 키"를 도출합니다..
  2. 혼입. 각 라운드 키는 XOR 알고리즘을 사용하여 일반 텍스트와 결합됩니다.

    AES 암호화 라운드 키

  3. 대체 테이블을 사용한 결과 데이터 대체. 이 단계는 원칙적으로 (실제로 훨씬 더 복잡한 경우) 아이로 만든 대체 암호와 매우 유사합니다..서브 바이트 AES 암호화

  4. 행을 이동하십시오. 128 비트 블록을 구성하는 16 바이트의 4 x 4 열에있는 모든 바이트가 오른쪽으로 이동합니다..AES 암호화 shiftRows

5. 컬럼을 혼합하십시오. 각 열에 추가 알고리즘이 적용됩니다..

일어나 반복하십시오. 이 과정은 여러 번 반복되며 각 반복은 라운드로 알려져 있습니다. 키 확장 중에 생성 된 라운드 키 중 하나를 사용하여 각 라운드를 다시 암호화합니다 (1 단계)..

수행 된 라운드 수는 사용 된 키 길이에 따라 다릅니다. AES-128은 10 라운드, AES-192는 12 라운드, AES-256은 14 라운드를 사용합니다..

추가 된 각 라운드는 2011 년에 AES-128을 공격하는 데 사용 된 종류의 바로 가기 공격의 가능성을 줄입니다.이 공격의 결과로 이미 언급 한 바와 같이, 안전 마진을 향상시키기 위해 AES-128에 4 개의 추가 라운드가 추가되었습니다..

암호문

지정된 라운드 수를 통과 한 후 암호의 암호화 된 출력입니다..

AES 암호화를 해독하는 방법

AES의 암호 해독은 간단합니다. 역 둥근 키로 시작하여 위의 모든 단계를 반대로하십시오. 물론 각 반올림 키를 사용하여 프로세스를 되돌리려면 원래 비밀 키가 있어야합니다..

파일을 암호화하면 파일 크기가 커 집니까??

예. 보통. AES는 16 바이트의 고정 블록 크기를 사용합니다. 파일이 블록 크기의 배수가 아닌 경우 AES는 채우기를 사용하여 블록을 완성합니다..

이론적으로 이것은 반드시 암호화 된 데이터의 크기가 증가한다는 것을 의미하지는 않지만 (암호 텍스트 도용 참조) 블록을 채울 데이터를 추가하는 것이 일반적으로 훨씬 쉽습니다. 암호화 된 데이터의 양을 증가시키는 것.

일화 적 증거에 따르면 AES로 암호화 된 1MB보다 큰 파일은 암호화 전보다 약 35 % 더 큰 경향이 있습니다..

AES 암호화에서 키 크기가 얼마나 중요한가?

암호의 강도를 측정하는 가장 조잡한 방법은 키의 크기입니다. 키가 클수록 가능한 조합이 더 많습니다.

AES는 126 비트, 192 비트 또는 256 비트 키 크기와 함께 사용할 수 있습니다. 원래 Rijndael 암호는 추가 키 길이를 허용하도록 설계되었지만 AES에는 채택되지 않았습니다..

무차별 대입 공격

알고리즘이 복잡할수록 무차별 대입 공격을 사용하여 암호를 해독하기가 더 어려워집니다. 이 매우 원시적 인 형태의 공격은 철저한 키 검색이라고도합니다. 기본적으로 올바른 키를 찾을 때까지 가능한 모든 숫자 조합을 시도합니다..

아시다시피 컴퓨터는 이진수 (0과 1)를 사용하여 모든 계산을 수행합니다. 우리가 보았 듯이, 암호의 복잡성은 키의 키 크기 (비트 단위)-알고리즘을 표현하는 데 필요한 1과 0의 원시 수에 따라 달라집니다. 각 0 또는 1은 단일 비트로 표시됩니다..

이것은 키 길이라고도하며 특정 암호에 대해 무차별 대입 공격을 성공적으로 수행 할 수있는 실질적인 가능성을 나타냅니다..

가능한 조합의 수 (따라서 무차별 대입의 어려움)는 키 크기에 따라 기하 급수적으로 증가합니다. AES의 경우 :

우리가 이미 논의했듯이, AES-128 키조차 강제로 세계에서 가장 빠른 슈퍼 컴퓨터가 우주보다 오래 걸릴 것입니다!

암호화 라운드

우리가 또한 논의했듯이, AES가 사용하는 키가 길수록 암호화 라운드가 더 많이 진행됩니다. 이는 주로 암호의 계산 복잡성을 줄일 수있는 바로 가기 공격을 방지하기 위해 암호를 무차별 공격하기 쉽게 만듭니다..

암호 해독기 브루스 슈나이어 (Bruce Schneier)는 AES-128에 대한 2011 년 바로 가기 공격에 대해,

“암호화는 안전 마진에 관한 것입니다. 암호의 n 라운드를 끊을 수 있다면 2n 또는 3n 라운드로 설계하십시오.”

그는 각 키 크기에 대해 더 많은 라운드를 AES에 도입 할 것을 권장했지만 NIST는 현재 레벨이 충분하다고 간주합니다..

AES-128 이상을 사용하는 이유?

AES-128조차도 우주 나이보다 오래 걸리면 왜 AES-192 또는 AES-256을 사용하는 것이 귀찮습니까? Schneier가 지적했듯이 :

“사람들이 AES-256을 사용하지 않는 것이 좋습니다. AES-128은 가까운 미래에 충분한 보안 여유를 제공합니다. 그러나 이미 AES-256을 사용하고 있다면 변경할 이유가 없습니다.”

실제로 Schneier는 과거 AE-128이 AES-256보다 더 강력한 키 스케줄을 가지고 있기 때문에 AE-128이 실제로 AES보다 더 안전하다고 주장했습니다..

그렇다면 AES-256이 대칭 키 암호화의 황금 표준으로 유지되는 이유는 무엇입니까??

안전 여유

2011 년 바로 가기 공격은 전문가들이 암호화 알고리즘을 아무리 안전하게 생각하든, 독창적 인 사람들은 항상 아무도 그것을 약화시킬 생각을하지 않은 방법을 찾을 수 있음을 보여줍니다.

사용 된 라운드 수와 마찬가지로 키 크기가 클수록 균열 발생에 대한 안전성이 향상됩니다..

블링

AES-256 암호화의 편재성을 고려할 때 마케팅의 영향을 무시해서는 안됩니다. AES-256이 세계에서 가장 안전한 대칭 암호화 암호로 널리 알려져 있다는 사실은 많은 사람들에게 최고의 선택입니다..

내 말은, AES-128이 좋으면 AES-256이 더 나아야한다는 이유 일뿐입니다.?

미국 정부가 AES-256을 사용하여 가장 민감한 데이터를 보호한다는 사실은 "블링 (bling)"가치를 높이고 VPN 회사 등이 "군용"암호화를 사용한다고 주장 할 수 있습니다..

이 "블링 인식"이 (거의) 정확하다는 것을 감안할 때, AES-256의 인기에는 거의 해를 끼치 지 않습니다 (아래 NIST에 대한 참고 사항을 참조하십시오)..

AES와 OpenVPN

그러나 VPN 사용자는 특히주의해야합니다. 대부분의 VPN 서비스는 AES-256을 사용하여 OpenVPN 프로토콜로 전송 된 데이터를 보호하지만 OpenVPN에서 데이터를 안전하게 유지하기 위해 사용하는 다양한 메커니즘 중 하나입니다..

TLS 연결은 OpenVPN을 사용할 때 AES가 데이터를 보호하기 위해 사용하는 암호화 키의 전송을 보호합니다. 따라서 OpenVPN TLS (제어 채널) 설정이 약한 경우 AES-256을 사용하여 암호화하더라도 데이터가 손상 될 수 있습니다. 자세한 내용은 VPN 암호화에 대한 최고의 가이드를 참조하십시오.

AES-CBC 및 AES-GCM

최근까지 VPN 세계에서 발생할 가능성이있는 유일한 AES 암호는 AES-CBC (Cipher Block Chaining)였습니다. 이것은 여기에 들어갈 가치가없는 복잡한 주제 인 블록 암호 모드를 나타냅니다..

CBC는 이론적으로 몇 가지 취약점이있을 수 있지만 CBC는 안전하다는 의견이 일치합니다. CBC는 OpenVPN 매뉴얼에서 권장됩니다..

OpenVPN은 이제 AES-GCM (Galios / Counter Mode)도 지원합니다. GCM은 인증을 제공하므로 HMAC SHA 해싱 기능이 필요하지 않습니다. 또한 여러 프로세서 코어에 스레딩하여 하드웨어 가속을 사용하기 때문에 CBC보다 약간 빠릅니다..

AES-CBC는 일반적으로 가장 일반적인 모드로 유지되지만 AES-GCM의 인기가 높아지고 있습니다. GCM의 장점을 감안할 때이 추세는 계속 될 것입니다. 그러나 암호화 관점에서 AES-CBC와 AES-GCM은 모두 매우 안전합니다..

NIST

AES는 NIST 인증 표준입니다. 이것은 자체 승인으로 암호 개발에 NSA와 긴밀히 협력하는 기관입니다..

국제 암호화 표준에 대한 백도어를 약화 시키거나 구축하려는 NSA의 체계적인 노력에 대해 우리가 알고있는 것을 감안할 때 NIST 알고리즘의 무결성에 의문을 제기 할 모든 이유가 있습니다. 물론 NIST는 이러한 주장을 강력하게 반박합니다.

"NIST는 의도적으로 암호화 표준을 약화시키지 않을 것입니다."

또한 앞으로의 제안 된 암호화 표준에 대한 대중의 참여를 초대하여 대중의 신뢰를 높이기위한 조치를 취했습니다..

그러나 New York Times는 NSA가 탐지 할 수없는 백도어를 도입하거나 알고리즘을 약화시키기 위해 공개 개발 프로세스를 파괴함으로써 NIST 승인 암호화 표준을 우회했다고 NSA에 고발했습니다..

이 불신은 RSA Security (EMC 부서)가 고객에게 NSA가 설계 한 결함이 포함 된 암호화 알고리즘의 사용을 중지하라고 개인적으로 지시했을 때 더욱 강화되었습니다. 이 알고리즘은 또한 NIST에 의해 승인되었습니다.

또한 Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator)는 NIST에서 설계 한 암호화 표준입니다. 수년 동안 안전하지 않은 것으로 알려져 있습니다.

2006 년 네덜란드의 아인트호벤 공과 대학 (Eindhoven University of Technology)은이 공격에 대한 공격이 "일반 PC"에서 시작하기에 충분히 쉬웠다 고 지적했다. 마이크로 소프트 엔지니어들도 알고리즘에서 백도어를 의심했다.

NIST가 이끄는 이러한 우려에도 불구하고 업계는 다음과 같습니다. 이는 NIST 표준 준수가 미국 정부 계약 (FIPS)을 획득하기위한 전제 조건이라는 사실에 기인합니다..

AES와 같은 NIST 인증 암호화 표준은 개인 정보 보호에 의존하는 모든 산업 및 비즈니스 영역에서 전 세계적으로 거의 어디에나 있습니다. 이것은 전체 상황을 차갑게 만듭니다..

아마도 정확하게는 이러한 표준에 의존하기 때문에 암호화 전문가는 문제에 직면하고 싶지 않았습니다..

이미지 크레디트 : xkcd.com/538.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me