암호화의 종류

김승수·2022년 12월 26일
0

단방향 암호화

단방향 암호화란?

단방향 암호화는 평문을 암호화할수는 있지만 암호화된 문자를 다시 평문으로 즉, 복호화가 불가능한 암호화 방법, 주로 해시 알고리즘을 통하여 단방향 암호화를 구현함, 단방향암호화를 사용하는 주된 이유는 메시지 또는 파일의 무결성을 보장하기위함, 원본의값이 1bit라도 달라지게되면 해시알고리즘을 통과한 후 해시값이 높은확률 로 달라짐, 이걸 통해 메세지나 파일이 원본인지 아닌지 확인
대표적인 해시 알고리즘은 MD5, SHA등이 있음

단방향 암호화의 한계

해시 알고리즘은 동일한 평문은 항상 동일한 해시값을 갖음, 따라서 특정 해시알고리즘에 대해서 어떤 평문이 어떤 해시값을 갖는지 알수 있음, 이런 특징을 통해 함수의 해시값을 대량으로 정리한 테이블이 존재하며, 이를 레인보우 테이블이라고 부름, 그리고 이테이블을 이용하여 사용자정보를 해킹하는 공격을 레인보우 공격이라고함

해시함수는 본래 데이터를 빠르게 검색하기위해 태어남, 이러한 특징은 공격자에 오히려 장점이 됨, 공격자는 매우 빠른 속도로 임의의 문자열의 해시값과 해킹할 대상의 해시값을 비교하여 공격가능함,
(MD5를 사용한 경우 일반장비를 이용하여 초당 56억개 해시값 비교가능)

솔팅

솔팅은 단방향 해시함수를 통해 암호화 진행할때 본래 데이터에 랜덤 데이터를 더하여 암호를 진행하는 방식, 원래데이터에 추가 데이터를 더하므로 해시값이 달라짐,

키스트레칭

단방향 해시값을 계산하고, 그 해시값을 또다시해시하고 이를 반복하는 방식, 최근엔 일반장비로 1초에 50억개 이상 해시값을 비교할수있지만, 키스트레치를 적용하여 동일한 장비에서 1초에 5번 정도만 비교가능, GPU를 사용하더라도 수백에서수천번 까지만 비교가능

양방향 암호화

대칭키 암호화란?

단방향암호화와 달리 양방향 암호화는 암호화된 값을 다시 암호화하기전값으로 복호화가 가능, 양방향 암호화는 알고리즘과 키를 이용해 암호화를 하는데, 이 키를 통해 암호화된 값을 보호할수 있습니다.
대칭키 방식은 암호화할때 키와 암호화된 값을 복호화할때 사용하는키가 동일한 암호 시스템, 따라서 암호화할때 사용했던 키를 모른다면 해당 암호문을 다시 복호화 못함
대표적인 알고리즘으론 AES가 있는데 AES는 128, 192, 256비트의 정해진 길이의 키를 사용함, 암호화 진행시 키의 길이가 길어져 복잡할수록 암호화도 복잡하게되지만 그만큼 컴퓨터 자원이 많이필요하기때문에 적절한 길이의 키를 사용해야함

대칭키 암호화 한계

하나의키를 이용하므로 다른사람과 대칭키 기반으로 암호화 통신을 할경우 상대방도 사전에 키를 갖고있어야함,
이때 키를 주고받는과정에 키가 중간에 유출될 우려가 있음, 여러상대방과 통신 할경운 각각의 키를 관리하는게 더욱 어려워진다는 단점이있음

비대칭키 암호화란?

비대칭키 암호화또한 암호화와 복호화 모두 가능하며, 암호화 진행할때 키를 사용함, 하지만 대칭키 암호화랑 다르게 암호화때 사용하는키랑 복호화때 사용하는 키가 다름, 일반적으로 다른사람에게 공개하는 Public Key와 절때 노출하지않는 Private Key가 있으며, 이두개를 Key Pair라고 명칭함, 비대칭키 암호화는 암호화키와 복호화키를 따로 관리함으로써 대칭키 암호화의 고질적인 문제였던 키의 탈취 또는 관리의 단점을 보완함

데이터 암호화

비대칭키 암호화는 Key Pair를 쓰기때문에 키노출에 대한 문제를 해결할수있습니다.

사용자가 서버로 비대칭키 방식을 이용하여 데이터 보내는 과정

  • 서버에 Key Pair 발급후 Public Key를 사용자에게 전달
  • 사용자는 데이터를 암호화 할때 서버에서받은 Public Key를 사용함
  • 서버는 사용자가 보낸 암호화 된 데이터를 Private Key로 복화화 하여 내용을 확인함

전자서명

전자서명은 종이문서의 서명과 같이 전자문서에 서명한사람이 누군지 확인하고 위변조사실을 알수있도록 전자문서에 부착하는 특수한형태의 디지털 정보를 말함, 전자서명은 비대칭키 암호화를 통해 구현할수 있음, 비대칭 암호화의 Key Pair가 종이문서의 인감도장과 인감증명의 역할을 하게됨, Private Key(인감도장)는 서명자만 보관해서 사용하고, 공개된 Public Key(인감증명) 통해 서명이 진짜인지 아닌지 판단가능

비대칭키 이용시 전자서명 과정

  • A가 Key pair 발급 후 Public Key 공개합니다.
  • A가 메세지를 작성하고, 본인의 전자서명을 기입합니다.
  • 전자 서명은 A가 작성한 메세지내용을 Private Key로 암호화 한 값
  • A의 메세지를 받은 B가 해당 메세지가 정말 A가 보낸 메세지인지 확인하고 싶습니다.
  • B는 공개된 A의 Public Key를 가지고 전달 받은 전자서명을 복호화 합니다.
  • 복호화의 내용과 메세지의 내용을 일치하면 A가 작성한 메세지란걸 확인 가능

Summary

  • 단방향 암호화는 해시 알고리즘을 사용하여 암호화는 가능하지만 복호화는 불가
  • 솔팅과 스트레칭 기법을 이용하여 단방향 암호화 단점 보완가능
  • 양방향 암호화는 대칭키와 비대칭키 방식이 존재하며 암호화 , 복호화를 할땐 key를 사용
  • 대칭키 방식의 양방향암호화는 암호화,복호화에 key 하나를 사용, key를 노출시 보안에 취약
  • 비대칭키는 암호화, 복호화에 key를 따로따로 사용 key노출 문제 해결할수있음.
profile
외부형 확장뇌

0개의 댓글