암호화 알고리즘

김태웅·2023년 5월 29일
0

개발스터디

목록 보기
6/8
post-thumbnail

암호화 알고리즘

정보를 안전하게 전송하거나 저장하기 위해 사용되는 수학적인 절차

이 알고리즘들은 데이터를 변환하거나 숨기는 방법을 제공하여 외부에서 알아볼 수 없도록 만들어줍니다.

대칭 키 암호화(Symmetric Key Encryption)

대칭 키 암호화는 암호화와 복호화에 같은 키를 사용하는 알고리즘

빠르고 효율적이지만, 키를 안전하게 공유해야 한다.

AES(Advanced Encryption Standard)

  • 현재 가장 널리 사용되는 대칭 키 암호화 알고리즘 중 하나
  • 미국 국립표준기술연구소(NIST)에 의해 2001년에 공식적으로 표준으로 채택
  • AES는 128비트, 192비트, 256비트 세 가지 키 길이를 지원하며, 블록 암호화 방식을 사용
  • 블록 암호화는 고정된 크기의 데이터 블록을 암호화하는 방식으로, AES에서는 128비트 블록 크기를 사용

DES(Data Encryption Standard)m

  • 초기 미국 국립표준기술연구소(NIST)에서 정한 표준으로 사용
  • 현재는 보안성이 약해짐에 따라 보다 강력한 암호화 알고리즘으로 대체(AES)
  • 56비트의 키 길이를 가지며, 64비트 블록 크기를 가진 블록 암호화 알고리즘

공개 키 암호화(Public Key Encryption)

공개 키 암호화는 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘

이를 통해 대칭 키 암호화의 키 교환 문제를 해결

키 교환 문제?

  • 암호화에 사용되는 비밀 키를 안전하게 공유하는 문제

암호화에는 공개 키를 사용하고, 복호화에는 해당 키 쌍의 비밀 키를 사용

RSA(Rivest-Shamir-Adleman)

  • 소인수 분해 기반
  • 매우 큰 두 개의 소수를 선택하고, 이를 기반으로 공개 키와 개인 키를 생성
    = 이 때 소수의 소인수 분해는 쉽지 않은 계산 문제로 알려져 있으며, RSA의 보안성은 이 소인수 분해의 어려움에 기반합니다.
  • 대칭 키 암호화 알고리즘에 비해 상대적으로 느리며, 더 긴 키 길이를 필요로 하기 때문에 자원이 제한된 환경에서는 효율적이지 않을 수 있음

ECC(Elliptic Curve Cryptography)

  • 타원 곡선을 기반으로 보안 기능을 제공
  • ECC는 RSA와 비교했을 때 더 작은 키 크기로 동일한 수준의 보안을 제공하며, 더 효율적인 암호화와 키 교환 가능
  • ECC의 핵심 아이디어는 타원 곡선에서 정의된 연산을 사용하여 암호화와 관련된 계산을 수행하는 것
  • 타원 곡선은 다음과 같은 수학적 속성을 갖고 있어 보안에 유리:
    1. 타원 곡선 위의 점들의 집합은 연산에 대해 닫혀 있다. 즉, 두 점을 연결하면 항상 다른 점이 타원 곡선 위에 존재한다.
    2. 타원 곡선에서는 덧셈과 스칼라 곱셈 연산이 정의되어 있다. 이러한 연산들은 타원 곡선 암호화에서 사용되는 핵심 연산으로, 효율적인 계산을 가능하게 한다.

해시 함수(Hash Functions):

해시 함수는 임의의 크기의 데이터를 고정된 크기의 해시 값으로 매핑하는 함수

해시 함수는 단방향 함수로, 해시 값을 통해 원래 데이터를 복원할 수 없음

MD5(Message Digest Algorithm 5)

  • 현재는 보안성이 취약하다는 이유로 안전한 용도로는 권장되지 않음
  • 128비트의 해시값을 생성
  • 빠른 계산 속도를 가지고 있어 대량의 데이터에 대한 해시 계산이 빠르게 이루어질 수 있지만, 충돌 가능성이 있음

SHA(Secure Hash Algorithm)

  • SHA 계열에는 여러 버전이 있으며, 각 버전은 해시값의 크기와 연산 프로세스의 차이점을 가지고 있음
  • SHA-1:
    • 160비트 해시값을 생성
    • SHA-1은 1995년에 개발되었으며, 이전에는 널리 사용되었으나 현재는 안전하지 않다고 여겨짐
    • 충돌 공격에 취약한 취약점을 가지고 있어, 안전한 용도로는 권장되지 않음
  • SHA-2:
    • SHA-2는 SHA-256, SHA-384, SHA-512 등의 변종으로 구성
    • 각각 256비트, 384비트, 512비트의 해시값을 생성
    • SHA-2 계열은 현재 보안 요구 사항을 충족하기 위해 널리 사용되는 알고리즘
    • SHA-256은 가장 일반적으로 사용되는 버전으로, 안전한 데이터 통신, 디지털 서명, 데이터 무결성 등 다양한 보안 응용에서 활용 중
  • SHA-3:
    • SHA-3는 2015년에 발표된 최신 버전으로, Keccak 알고리즘을 기반
    • SHA-3은 SHA-256과 비교했을 때 구조와 알고리즘이 다르며, 224비트, 256비트, 384비트, 512비트의 해시값을 생성
    • SHA-3는 암호 분석에 대한 최신 연구 결과를 반영하고 보안성이 검증된 알고리즘으로 인정받고 있음

중요한 것은 적절한 암호화 알고리즘과 올바른 키 관리 방법을 사용하여 데이터를 안전하게 보호하는 것

profile
Everything Counts

0개의 댓글