Cryptography - Security
-
운영모드 - 2Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 17:49
ECB 모드 블록 암호로 평문을 암호화할 때 평문은 패딩을 거친 뒤 여러 블록으로 나뉘며 각각 운영모드에 맞추어 암호화된다 ECB모드에서 블록들은 모두 같은 키로 암호화된다 각 블록이 독립적으로 암호화되므로 여러 블록을 병렬적으로 암호화할 수 있다는 장점이 있지만 안전성이 부족한 단점이 있다 ECB 모드의 취약점 같은 블록은 같은 암호문으로 암호화되는 특징을 이용하여 암호문에서 평문의 정보를 습득하거나 리플레이 공격이 가능해지고 약한 혼돈 성질을 가지게 된다 재전송 공격 데이터를 재전송하여 시스템이 의도치 않은 행동을 하게 하는 것 1. Chamero 가 Nelly 에게 10,000만 원을 보내려고 은행에 암호문을 전달하였다 2. 은행은 이 암호문을 해석하여 10,000만원을 송금하였다 3. Nelly가..
-
운영모드 - 1Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 17:14
운영 모드 블록 암호로 이러한 다양한 크기의 데이터를 처리할 수 있도록 고안된 블록 암호의 사용 방법 운영 모드에는 여러 종류가 있으며, 블록 암호를 사용하는 서비스는 각각의 장단점을 고려하여 운영 모드를 선택한다 패딩 블록 암호는 블록 단위로 암호화를 하므로 입력의 길이가 정확하게 블록 크기의 배수가 되어야 합니다. 그러나 일반적으로 평문의 크기는 블록 크기의 배수가 되지 않는다 이런 문제를 해결하기 위해 평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정을 패딩이라고 한다 패딩된 암호문을 복호화할 때는 복호화된 평문에서 패딩을 제거해야 원래의 평문을 얻을 수 있다 따라서 패딩 된 암호문의 수신자는 어떤 패딩이 적용됐는지 알아야 암호문을 제대로 복호화할 수 있다 비트 패딩 마지..
-
DES - 3Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 16:49
다중 DES 서로 다른 키를 사용하는 DES모듈을 여러 개 이어 붙여서 DES의 약점을 보완한 암호 시스템이다 이중 DES는 112비트, 삼중 DES는 168비트의 키를 사용한다 p를 평문, c를 암호문이라고 했을 때, 이중 DES의 암호화를 식으로 표현하면 Ek2(Ek1(p))=c 이다 마찬가지로 삼중 DES는 Ek3(Dk2(Ek1(p)))=c가 된다 중간 일치 공격 중간 일치 공격은 공격자가 어떤 평문 p와, p를 암호화한 암호문 c를 알 수 있을 때, 수행할 수 있는 공격이다 때문에 이중 DES는 단일 DES와 비슷한 안전성을 가지며 삼중 DES는 키 길이를 2배로 늘리는 효과만이 있다 이중 DES의 안전성은 DES의 두 배 정도 이지만 삼중 DES는 112비트 키를 사용하는 DE..
-
DES - 2Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 10:26
DES의 과정 DES는 시작할 때 초기순열을, 마지막에는 최종순열을 수행한다 초기순열과 최종순열은 정해진 테이브를 이용하여 64비트 입력을 비트 단위로 전치한다 테이블의 n번째 값이 m일 때, 출력의 n번째 비트는 입력의 m번째 비트가 된다 오른쪽 최종순열에서는 아래에서 위로 1씩 증가하는 규칙이 보인다 초기순열과 최종순열은 서로 역관계여서 임의의 64비트 데이터에 초기순열을 적용하고 최종순열을 적용하면 입력값이 그대로 나오게 된다 라운드 함수 라운드 함수에 오른쪽 블록만 입력되므로 입력값의 길이는 32비트가 된다 라운드 함수는 확장순열, 라운드 키 결합, 치환테이블, 고정순열로 이루어져 있다 확장순열과 라운드 키 결합 확장순열은 입력을 비트단위로 전치하는 동시에 전체 길이를 48비트로 확장하는 순열이다..
-
DES - 1Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 09:24
DES란? 미국의 국가안보국 (NSA)에서 IBM의 루시퍼 알고리즘을 개량하여 만든 대칭키 암호이다 DES는 키 길이를 56비트로 한다 DES는 8바이트(64비트)를 한 블록으로 하는 블록암호이며, 초기순열, 최종순열, 페이스텔 구조의 16라운드, 키생성함수로 구성되어 있다 순열, 치환, 곱암호 치환과 순열을 여러 번 교차하여 적용하면 혼돈과 확산의 성질을 모두 만족하게 된다 왼쪽의 그림과 같이 치환, 순열로 1개의 라운드를 구성하고 각 라운드를 여러번 반복하는 것을 곱암호라고 한다 페이스텔 구조 DES의 라운드 함수는 아래와 같이 페이스텔 구조를 이루고 있다 1. 입력으로 들어온 블록을 동일한 길이의 왼쪽블록 L과 오른쪽 블록 R로 나눈다 L0=P[:len(P)/2] R0=P[len(P)/2:] 2..
-
AES - 2Cryptography - Security/Dreamhack - Basic 2023. 5. 2. 09:40
AES 라운드 함수 SubBytes SubBytes는 배열의 각 바이트를 S-Box를 참조하여 치환하는 함수이며 바이트의 상위 4비트가 행, 하위 4비트가 열을 결정한다 예를 들어 어떤 바이트가 2A라면, 해당 바이트는 S-box의 2행 A열을 참조하여 E5로 치환된다 ShiftRows 이 함수는 4가지 함수 중에서 유일하게 순열의 역할을 수행한다 아래와 같이 2행은 왼쪽으로 1칸, 3행은 왼쪽으로 2칸, 4행은 왼쪽으로 3칸을 밀어준다 복호화할 때는 반대로 2행, 3행, 4행을 각각 오른쪽으로 1칸, 2칸, 3칸씩 밉니다 MixColumns 이 함수는 열 단위로 치환을 수행하는 함수이며 치환은 갈루아 필드 내에서의 행렬 연산으로 구해진다 위 사진에서 a만으로 구성된 배열은 오른쪽과 같이 나타낼 수 있다..
-
AES - 1Cryptography - Security/Dreamhack - Basic 2023. 5. 1. 23:50
AES란? AES(Advanced Encryption Standard)는 연산 능력의 향상으로 DES가 더 이상 안전하지 않게 되자, 2001년에 새롭게 표준으로 선정된 블록 암호 알고리즘이다 표준으로 선정된 이후부터 지금까지, AES에는 기밀성을 위협하는 치명적인 취약점이 발견되지 않았고 CPU 제조사들이 AES 연산을 위한 명령어를 따로 정의해 주어서 암호화, 복호화의 성능도 뛰어나다 AES의 설계 원리를 이해하려면 갈루아 필드(Galois Field)를 비롯하여 체(Field)와 군(Group)에 대한 이해가 필요하다 SPN AES는 SPN(Substitution Permutation Network)이라는 암호 구조를 사용한다 SPN은 곱 암호 중의 하나이다 S-Box를 사용하는 치환(Substit..
-
현대암호 - 2Cryptography - Security/Dreamhack - Basic 2023. 4. 7. 13:26
대칭키 암호 시스템 대칭키 암호 시스템은 암호화와 복호화에 같은 키를 사용하는 암호 시스템이다 블록암호 블록 암호(Block Cipher)는 평문을 정해진 크기의 블록 단위로 암호화하는 암호이다 예를 들어 1개의 블록 안에 단어가 4개가 들어간다면 위 사진처럼 쪼개서 각각 따로따로 암호화를 진행한다 만약 평문의 크기가 블록 크기의 배수가 아니어서 균등하게 나눌 수 없다면 패딩(Padding)을 먼저 수행해 준다 패딩이란 평문뒤에 데이터를 추가해 주는 작업을 말하고 위 사진처럼 균등하게 나누어질 때까지 데이터를 추가해 준다 스트림 암호 스트림 암호(Stream Cipher)는 송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 .XOR하는 방식이다 평문, 암호문, 스트림 순으로 P, C, S ..