공부 기록

[정보보안] Cryptographic Tools

by 너나나

수업 들은 거 개인적으로 정리한 거!! 틀릴 수 있고 공부하면서 계속 추가/수정할 예정입니다!!

 

정보 보안의 3요소

Confidentiality (기밀성) 기밀 정보가 허가받지 않은 상대에게 노출되지 않음
Integrity (무결성) 허가된 방식으로만 information이나 programs를 변경할 수 있음
Availabilty (가용성) 시스템이 권한이 있는 사용자에게 즉각적으로 바로 사용될 수 있고 허용돼야 함

cryptographic algorithms

  1. Symmetric encryption
  2. Public-key (Asymmetric) encryption
  3. Random number

Symmetric encryption(대칭 암호화 기법)

symmetric encryption은 conventional encryption이나 single-key encryption이라고도 부른다.

symmetric encryption의 5가지 요소

  • plaintext(평문) : 보내고자 하는 원본 데이터
  • encryption algorithm : 입력으로 들어온 원문을 다양한 방법으로 치환하고 변환
  • secret key
  • ciphertext(암호문) : 출력으로 나오는 암호화된 데이터
  • decryption algorithm : 암호문에 알고리즘과 암호에 사용했던 동일한 키를 적용하여 원문을 복구하는 것

 

symmetric encryption의 안전한 사용을 위해 요구되는 두 가지

1. 알고리즘이 강력해야 함

2. 키 공유 알고리즘이 필요

 

attacking symmetric encryption

  • Brute-force attack : ciphertext에 관해 가능한 모든 키 값을 다 해보는 것
  • cryptanalysis : 알고리즘이 가지고 있는 특징 + plaintext가 가지고 있는 특징에 대한 지식이 있는 경우 주어진 plaintext와 ciphertext 쌍을 이용하는 것

symmetric encrypiton algorithms에서 가장 흔하게 사용되는 게 block ciphers인데 data encryption standard(DES), triple DES, Advanced Encryption Standard(AES)이 있다.

  • DES : 64비트 암호문을 만들기 위해 64비트 plaintext block과 56비트의 키를 사용한다. -> brute force attack에 굉장히 취약함
  • triple DES : DES algorithm을 세 번 반복, 2개나 3개의 unique keys를 사용한다. 더 안전하지만 더 느리다.
  • AES : 128비트 데이터와 128/192/256 비트의 키를 사용

applications: message authentication : active attacks으로부터 보호한다.

active attack example : falsification(위조) of data and transactions

It verifies that received message is authentic.

  • Contents unaltered by includeing an error-detection code, etc. - 컨텐츠가 수정 없이(에러 없이) 잘 전송되었다는 걸 보장해줄 수 있어야 됨.
  • From authentic source
  • Timely(timeliness) and in correct seqeunce

To verify a message's timeliness and sequence relative to other messages flowing between two parties, it can use conventional encryption or separate authentication mechanisms.

  • For conventional encryption, only sender & receiver have key needed.
  • For separate authentication mechanism, not relying on encryption, it appends authentication tag to cleartext message.

Message Authentication Methods

- MAC (Message Authentication Code)

  • 메시지에 덧붙여지는 작은 데이터 블록을 만들기 위해 비밀키를 사용하는 인증 방식.
  • 이 기술은 A와 B로 불리는 쌍방의 통신 장치가 공통의 secret key k를 공유한다고 가정한다.
  • operational procedure 

      1. A(sender)가 B에게 메시지를 보낼 때 MAC을 계산하고 의도한 메시지와 함께 보낸다.

      2. B(receiver)는 A가 MAC을 만들 때 사용했던 것과 같은 secret key를 이용하여 받은 메시지에서 MAC을 계산하고           이 계산 결과가 받은 MAC과 같은지 비교해본다.

  • 계산한 MAC이 같으면 B는 메시지가 수정되지 않았다는 것과 신고된(확인된) 발송인에게서 메세지가 왔다는 것을 확인할 수 있다.

- One-Way Hash Function

해쉬 함수의 목적은 메시지의 "fingerprint"를 만드는 것이다.

(fingerprint : 데이터의 무결성을 위해 임의 크기의 메시지를 특정한 고정 크기의 블록으로 만드는 일)

그러니까 다양한 사이즈의 값이 해쉬 함수의 입력값으로 들어와도 output은 항상 특정한 길이로 주어진다.

MAC과 달리 해쉬 함수는 input으로 secret key를 받지 않는다.

Hash Function Requirements

  • applied to any size data
  • H produces a fixed-length output
  • H(x)는 어떤 주어진 x에 대해 계산하기 쉽다.(상대적으로)
  • one-way property : 다음과 같은 H(x) = h인 x를 찾는 것이 계산적으로 불가능하다.
  • weak collision resistance : 다음과 같은 H(x) = H(y)인 y != x를 찾는 것이 계산적으로 불가능하다. (다른 메시지가 같은 해시값을 가지는 충돌이 일어나지 않는다)
  • strong collision resistance : H(x) = H(y)인 어떤 쌍의 (x, y)를 찾는 것이 계산적으로 불가능하다.

송신자가 원래의 메시지 M을 보낼 때 H(M)도 같이 보내는데 이 M값이 중간에 바뀌었는지를 확인하기 위해 수신자는 수신된 M으로부터 H(M)을 만들어 수신받은 H(M)과 비교해보면 된다. 해쉬 함수의 성질에 의해서 두 개가 같으면 안 달라진 것이다.

Public Key Encryption

  • Public-key cryptography(공개 키 암호)는 비트 패턴에 대한 단순한 연산 보다는 수학적 함수에 기반을 두고 있다.
  • public=key cryptography는 두 개의 key를 가지는 asymmetric(비대칭)이다.
  • public key는 공개된 키이고 private key는 사용자만 알고 있는 키이다.

A public-key encryption sheme has the following ingredients

  • Plaintext
  • Encryption algorithm
  • Public and private key : 하나는 encryption에, 다른 하나는 decryption에 사용
  • Ciphertext
  • Decryption algorithm

 

 

블로그의 정보

공부 기록

너나나

활동하기