암호화 (대칭키 암호화, 비대칭키 암호화)

성연주·2022년 2월 9일
0

암호화


대칭키 암호화

암호화와 복호화에 사용하는 키가 같은 암호화 알고리즘
EX) DES, 3-DES, AES, SEED, ARIA, MASK

  • 하나의 비밀키양쪽(client & server)가 모두 같이 사용

  • 공개키와 비밀키를 별도로 가지는 것과 구별되는데, 이와 비교하면 계산속도가 빠르다는 장점

  • 비밀키 하나만 알아내면 암호화된 내용을 해독 가능 → 해커로부터 안전 X

  • 대킹키 암호는 암호화하는 단위에 따라 스트림암호블록암호로 나눌 수 있음

    º 스트림암호연속적인 비트/바이트를 계속해서 입력받아, 그에 대응하는 암호화 비트/마이트를 생성하는 방식

    º 블록암호는 정해진 한 단위(블록)을 입력받아 그에 대응하는 암호화 블록을 생성하는 방식

    블록암호의 경우, 적절한 운용모드를 조합하면 블록 단위보다 큰 입력을 처리할 수 있음. 또한 스트림암호와 유사하게 지속적인 입력에 대해 동작할 수 있음.
    (대신 입출력 단위는 스트림암호보다 큰 블록 단위가 됨)

스트림암호

데이터의 흐름(스트림)순차적으로 처리해가는 암호 알고리즘의 총칭

✔ 스트림암호는 OPT(One-Time Pad)를 실용적으로 구현할 목적으로 만들어짐.

  • 암호화 방식은 평문과 키 스트림을 XOR하여 생성.
    👉 평문을 이진수로 바꾼 결과와 이진수로 되어있는 키값을 XOR하여 암호문을 만든다.

❗ 비트단위로 암호화 하기 때문에 블록암호화 방식보다는 매우 빠르지만, 암호화 강도는 약하다.

블록암호(block cipher)

어느 특정 비트 수의 집합한 번에 처리하는 암호 알고리즘을 총칭
EX) DES, 3DES, AES(Rijdael)

❗ 각각 블록형태로 묶여서 암호화가 되는데, 만약 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용모드가 사용되는데 ECB, CBC, OFB, CFB, CTR 등이 존재.

  • 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화함.
  • 일반적으로 블록의 크기는 8비트(ASCII) 또는 16비트(Unicode)에 비례.

블록암호 구조

페스탈 구조
  • 장점 : 암복호화 과정에서 역함수가 필요 없음
  • 단점 : 구현시 스왑(Swap)단계 때문에 연산량이 많이 소요되며 암호에 사용되는 라운드 함수를 안전하게 설계해야함

❗ 대표적인 암호로 DES가 있고 Single DES는 안전성 문제로 현재 사용하고 있지 않다.
(한국에서는 개발된 암호 중에서는 페스탈 구조기반으로 설계된 *SEED가 있음)

SPN구조

단점 : 암복호화 과정에서 역함수가 필요하도록 설계되어야함
장점 : 중간에 비트의 이동없이 한 번에 암볻호화가 가능하기 때문에 페스탈 구조에 비해 효율적으로 설계할 수 있음

❗ 대표적인 암호로는 AES가 있으며 AES는 현재 널리 상용되고 있다.

🌱 출처 : https://gaeko-security-hack.tistory.com/101?category=735008

비대칭키(공개키) 암호화

공개키와 비밀키 두 개가 존재하는 암호화 알고리즘
EX) RSA, Elgamal

📌 비대칭키 암호화 = 공개키 암호화
📌 개인키 = 비밀키 = 비공개키

  • 공개키 암호를 구성하는 알고리즘을 대칭키 암호 방식과 비교하여 비대칭 암호라고 불림

  • 암호화와 복호화에 사용하는 키가 서로 다름

  • 암호화할 때의 키는 공개키(public key), 복호화할 때의 키는 개인키(private key)

  • 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키키의 소유자만이 알 수 있어서
    👉 특정한 비밀키를 가지는 사용자만이 내용을 열어볼 수 있도록 하는 방식

  • 대칭키(비밀키)알고리즘에 비하여 속도가 느리다. (약 1000배)
  • 속도가 느리기 때문에 긴문서의 암호화하는 경우보다 대칭키 알고리즘의 키값에 대한 암호에 사용.

공개키 암호화 개념도

대칭키, 비대칭키 암호화 비교


🌱출처 :
https://gaeko-security-hack.tistory.com/123
https://liveyourit.tistory.com/183

0개의 댓글