Symmetric key cryptography

hong·2022년 10월 15일
0

22 정보보호

목록 보기
2/8

🔎 Symmetric encryption

송신자-수신자 공동의 비밀 키 공유

대칭키 종류
1️⃣ Block cipher 블록 암호: 메세지를 일정 단위 block으로 나누어서 각 block마다 암호화 (단위 안맞으면 padding 추가)
2️⃣ Streaming cipher 스트링 암호: 비트 단위 암호화. 메시지 길이만큼 랜덤 숫자 생성하여 XOR

🔎 Caesar Cipher

특정 문자를 다른 문자로 1:1 대체
⚠️ 한계: brute force search로 해독 가능(문자의 모든 이동을 시도)


🔎 One time pad

  • 평문과 암호문 사이의 통계적 연관성 존재x
  • 키를 한 번만 사용
  • 키 생성 및 안전한 배포 문제점 발생
  • 무결성 제공x
  • stream chipher

ex)
암호화
복호화


🔎 Data Encryption Standard(DES)

  • 블록 암호 (64bit 단위)
  • 평문과 암호문의 길이가 같은 대칭 암호 알고리즘
  • 키 길이 56bit (8bit는 checksum)
  • 한 개의 블록(64bit 평문 비트열)은 16단계의 단일 반복 과정을 거쳐 암호화
  • 복호화시 동일한 키를 사용하여 암호화의 역순으로 수행

➕ Mangler Function 치환박스 Si
: 데이터를 섞어주는 역할. 입력값 6bit와 출력값 4bit를 갖는 8개의 S박스 사용


🔎 Modes of Operation

✔︎ Electronic Code Block(ECB)

동일한 키 사용하여 각각의 블록 독립적으로 암호화
→ 각각의 블록이 안전하게 암호화되었더라도, 전체는 안전하게 암호화x (블록이 동일하다면, 암호화된 블록도 동일)
→ ⚠️ 문제점: 원본에 대한 힌트 가능

✔︎ Cipher Blobk Chaining(CBC)

ECB 문제점 해결 방법. 현재 블록을 암호화할 때 이전 블록의 암호화된 결과를 이용. 무결성 제공
→ ⚠️ 문제점: 암호활 내용과 키가 동일하다면, 암호문 동일. 예측 가능

✔︎ Initialization Vector(IV)

암호화된 별도의 랜덤 블록. 최초 XOR연산에 Initialization Vector(초기화 벡터) 사용
→ 암호화할 내용과 키가 동일하더라도, 매번 IV가 다르기 때문에 다른 형태로 암호화됨


🔎 Encrypting Large Message

➡️ Message Authentication Code(MAC)
: MAC 값은 모든 메시지 블록과 해당 순서에 따라 다름


🔎 Triple DES

  • DES 3번 수행
  • 키 사이즈 128bit (DES 64bit)

🔎 Advanced Encryption Standard(AES)

  • DES 대체하는 표준 암호 알고리즘
  • 128bit 데이터에 대해, 128/192/256bit 키 사이즈 사용
  • Triple DES보다 강하고 빠름

🔎 PKCS#5 padding

암호화하려는 데이터가 블록의 배수가 아닐 경우 부족한 길이만큼 패딩


🔎 Stream Cipher(RC4)

비트 단위 암호화. 난수 생성기인 스트림 암호에 의해 생성된 일회용 패드

profile
🐶 ☕️ 🧳

0개의 댓글