152. 암호 알고리즘

alpaka·2024년 2월 6일
0

정보처리기사

목록 보기
156/161
post-thumbnail

암호 알고리즘의 개요

  • 암호 알고리즘은 패스워드, 주민번호, 은행계좌와 같은 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미한다.
  • 암호 알고리즘은 해시(Hash)를 사용하는 단방향 암호화 방식과, 개인키 및 공개키로 분류되는 양방향 암호화 방식이 있다.
  • 암호 방식 분류

개인키 암호화(Private Key Encryption) 기법

  • 개인키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화한다.
  • 데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 개인키(Private Key) K를 이용하여 암호문 C로 바꾸어 저장시켜 놓으면 사용자는 그 데이터베이스에 접근하기 위해 복호화 알고리즘 D와 개인키 K를 이용하여 다시 평문의 정보 M으로 바꾸어 이용하는 방법이다.
  • 개인키 암호화 기법에서 암호화 대상이 n개일 때 사용되는 키의 개수는 n(n-1)/2이다.
  • 개인키 암호화 기법은 대칭 암호 기법 또는 비밀키 암호화 기법이라고도 한다.
  • 개인키 암호화 기법은 한 번에 하나의 데이터 블록을 암호화 하는 블록 암호화 방식과, 평문과 동일한 길이의 스트림을 생성하여 비트/바이트/워드 단위로 암호화하는 스트림 암호화 방식으로 분류된다.
  • 종류
    • 블록 암호화 방식: DES, SEED, AES, ARIA, IDEA
    • 스트림 암호화 방식 : LFSR, RC4
  • 장점: 암호화/복호화 속도가 빠르며, 알고리즘이 단순하고, 공개키 암호 기법보다 파일의 크기가 작다.
  • 단점: 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다.

공개키 암호화(Public Key Encryption) 기법

  • 공개키 암호화 기법은 데이터를 암호화할 때 사용하는 공개키(Public Key)는 데이터 베이스 사용자에게 공개하고, 복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리한다.
  • 데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 공개키(Public Key) P를 이용하여 암호문 C로 바꾸어 저장시켜 놓고, 이를 복호화하기 위해서는 비밀키와 복호화 알고리즘에 권한이 있는 사용자만이 복호화 알고리즘 D와 비밀키(Secret Key) S를 이용하여 다시 평문의 정보 M으로 바꿀 수 있는 기법이다.
  • 공개키 암호화 기법에서 암호화 대상이 n개일 때 사용되는 키의 개수는 2n이다.
  • 공개키 암호화 기법은 비대칭 암호 기법이라고도 하며, 대표적으로는 RSA(Rivest Shamir Adleman) 기법이 있다.
  • 자신만이 보관하는 비밀키를 이용하여 인증, 전자서명 등에 적용이 가능하다.
  • 장점: 키의 분배가 용이하고, 관리해야 할 키의 개수가 적다.
  • 단점: 암호화/복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일의 크기가 크다.

공개키 기반 구조(PKI: Public Key Infrastructure)

  • 공개키 기반 구조는 공개키 암호 시스템을 안전하게 사용하고 관리하기 위한 정보 보호 표준 방식으로 ITU-T의 X.509 방식과 비X.509 방식으로 구분됩니다.
  • X.509 방식: 인증기관에서 발생하는 인증서를 기반으로 상호 인증을 제공
  • 비X.509 방식: 국가별 지역별로 맞게 보완 및 개발

양방향 알고리즘 종류

  • 개인키 암호화 방식과 공개키 암호화 방식에서 사용되는 주요 암호화 알고리즘에는 SEED ARA 등이 있습니다.
  • SEED
    • 1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
    • 블록 크기는 128비트이며, 키 길이에 따라 128, 256으로 분류됩니다.
  • ARIA(Academy, Research Institute, Agency)
    • 2004년 국가정보원과 산학연협회가 개발한 블록 암호화 알고리즘
    • ARIA는 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞 글자로 구성되었습니다.
    • 블록 크기는 128비트이며, 키 길이에 따라 128, 192, 256으로 분류됩니다.
  • DES(Data ncryption Standard)
    • 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘
    • DES를 3번 적용하여 보안을 더욱 강화한 3DES(Triple DES)도 있습니다.
    • 블록 크기는 64비트이며, 키 길이는 56비트입니다.
  • AES(Advanced Encryption Standard)
    • 2001년 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘
    • DES의 한계를 느낀 NIST에서 공모한 후 발표하였습니다.
    • 블록 크기는 128비트이며, 키 길이에 따라 128, 192, 256으로 분류됩니다.
  • RSA(Rivest Shamir Adleman)
    • 1978년 MIT의 라이베스트(Rivest), 샤미르(Shamir), 애들먼(Adelman)에 의해 제안된 공개키 암호화 알고리즘
    • 큰 숫자를 소인수분해하기 어렵다는 것에 기반하여 만들어졌습니다.
    • 공개키와 비밀키를 사용하는데, 여기서 키란 메시지를 열고 잠그는 상수(Constant)를 의미합니다.
  • ECC(Elliptic Curve Cryptography)
    • 1985년 RSA 암호 방식의 대안으로 제안되었다.
    • 이산대수 문제를 타원곡선으로 옮겨 기밀성과 효율성을 높인 암호화 알고리즘이다.
  • Rabin
    • 1979년 미하엘 라빈이 제안하였다.
    • 소인수분해의 어려움에 안전성의 근거를 둔 암호화 알고리즘이다.

해시(Hash)

  • 해시는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미한다.
  • 해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부른다.
  • 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용된다.
  • 복호화가 거의 불가능한 일방향 함수에 해당한다.
  • 해시 함수의 종류에는 SHA 시리즈, MD5, N-NASH, SNEFRU 등이 있다.
  • SHA 시리즈
    • 1993년 미국 국가안보국(NSA)이 처음 설계했으며, 미국 국립표준기술연구소(NIST)에 의해 발표되었다.
    • 초기 개발된 SHA-0 이후 SHA-1이 발표되었고, 다시 SHA-2라고 불리는 SHA-224, SHA-256, SHA-384, SHA-512가 발표되었다.
  • MD5
    • 1991년 R.Rivest가 MD4를 대체하기 위해 고안한 암호화 해시 함수이다.
    • 블록 크기는 512비트이며, 키 길이는 128비트이다.
  • N-NASH
    • 1989년 일본의 전신전화주식회사(NTT)에서 발표한 암호화 해시 함수이다.
    • 블록 크기와 키 길이가 모두 128비트이다.
  • SNEFRU
    • 1990년 RC.Merkle가 발표한 해시 함수이다.
    • 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발되었다.
    • 블록 크기는 512비트이며, 키 길이에 따라 128과 256으로 분류된다.

솔트(Salt)

  • 둘 이상의 계정에 대해 패스워드를 'qwer1234'라고 지정하고, 같은 암호화 알고리즘을 적용하게 되면 결과도 마찬가지로 동일하게 나타납니다. 이 경우 공격자가 나타난다면 하나의 암호만 해제해도 둘 이상의 계정을 얻게 되죠. 이를 방지하고자 암호화를 수행하기에 앞서 원문에 무작위의 값을 덧붙이는 과정을 수행하는데, 이 때 덧붙이는 무작위의 값을 솔트(Sall)라고 합니다.
  • 솔트(Salt)를 사용하면 같은 패스워드에 대해 암호화를 수행하더라도 서로 다른 결과가 나타나게 되어 더 안전하게 암호화된 데이터를 관리할 수 있게 되는 것이죠.
profile
alpaka의 자격증 공부장

0개의 댓글

관련 채용 정보