Java/이론

암호화

한번은하자 2024. 6. 23. 15:47

비밀번호 암호화하면서 대략적인 정보만 알고 있었다. 좀 자세히 알아보자.

 

  • 평문(Plaintext) : 해독 가능한 형태의 메시지(암호화전 메시지)
  • 암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지
  • 암호화(Encryption) : 평문을 암호문으로 변환하는 과정
  • 복호화(Decryption) : 암호문을 평문으로 변환하는 과정
  • 전자서명
    • 송신자의 Private Key로 메시지를 서명하여 전달
    • 수신자측에서는 송신자의 Public Key를 이용하여 서명값을 검증
  • 양방향암호화 : 암호화와 복호화과정을 통해 송.수신간 주고받는 메시지를 안전하게 암.복호화하는 과정
  • 단방향암호화 : 해싱(Hashing)을 이용한 암호화 방식으로 양방향과는 다른 개념으로, 평문을 암호문으로 암호화는 가능하지만 암호문을 평문으로 복호화 하는 것은 불가능.

 

양방향 암호화(대칭/비대칭 키)

● 대칭키 : 같은 키를 이용하여 메시지를 암, 복호화 하는 것

● 비대칭키 : 메시지를 암호화 하는 키와 복호화 하는 키가 다름

 

1) 대칭키 암호화

● 종류 : AES128, AES256, SEED(국내표준)

● 암, 복호화 키가 같음

● 수신 측에 키를 전달하는 과정에서 유출될 우려가 있음

스트림기반, 블록기반의 암호화로 나눌 수 있음

  → 스트림기반 암호화

  1. 비트단위로 암호화하는 방식

  2. 속도가 빠르고 오류 전파 현상이 없다는 장점(오디오, 비디오 스트리밍 시 사용)

  →  블록기반 암호화

  1. 블록 단위로 암호화를 수행하는 방식

  2. 문자열 단어 하나하나를 블록으로 나누어 암호화하는 과정

  3. DES, AES, IDEA, SEED 등의 블록기반 암호화 알고리즘

 

2) 비대칭키 암호화

  • 종류 : DSA(전자서명), RSA(메시지 암.복호화)
  • 대칭키에 비해서는 느리다는 단점이 있음
  • 키생성시 Private Key와 Public Key 2개의 키가 도출되며, Public Key는 공개해도 문제가 되지 않는다.
  • 인수분해, 이산대수, 타원곡선 암호화로 나뉨

3) 단방향 암호화

  • Hash를 이용하여 암호화하는 과정
  • 평문을 암호화할순 있지만, 복호화는 불가능하다
  • 데이터의 진위여부는 확인하고 싶으나, 본 데이터의 Privacy를 지키고 싶은 경우 사용
  • 대표적으로 SHA 종류가 있다.