개발자 '쑥말고인절미'

[정보처리기사] 5과목 정보시스템 구축 관리 361 ~ 366 (접근 제어자, 개인키/공개키 암호화 기법, 양방향 알고리즘 종류, 해시, 솔트) 본문

STUDY/정보처리기사

[정보처리기사] 5과목 정보시스템 구축 관리 361 ~ 366 (접근 제어자, 개인키/공개키 암호화 기법, 양방향 알고리즘 종류, 해시, 솔트)

쑥말고인절미 2024. 2. 27. 16:01
  • 361 접근 지정자(접근 제어자)
  • 362 개인키 암호화 기법(Private Key Encyption)
  • 363 공개키 암호화 기법(Public Key Encryption)
  • 364 양방향 알고리즘 종류
  • 365 해시(Hash)
  • 366 솔트(Salt)

 

  • 접근 지정자(접근 제어자)
한정자 클래스 내부 패키지 내부 하위 클래스 패키지 외부
Public 접근 가능 접근 가능 접근 가능 접근 가능
Protected 접근 가능 접근 가능 접근 가능 접근 불가능
Default 접근 가능 접근 가능 접근 불가능 접근 불가능
Private 접근 가능 접근 불가능 접근 불가능 접근 불가능

 


  • 개인키 암호화 기법(Private Key Encryption)
    • 동일한 키로 데이터를 암호화하고 복호화한다.
    • 개인키 암호화 기법에서 암호화 대상이 n개일 때 사용되는 키의 개수는 n(n-1) / 2 이다.
    • 대칭 암호 기법 또는 단일키 암호화 기법이라고도 한다.
    • 분류
      • 1) 블록 암호화 방식
        • 한 번에 하나의 데이터 블록을 암호화 하는 방식
        • 종류
          • 1. DES
          • 2. SEED
          • 3. AES
          • 4. ARIA
      • 2) 스트림 암호화 방식
        • 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식
        • 종류
          • 1. LFSR
          • 2. RC4
    • 데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 개인키(Private Key) K를 이용하여 암호문 C로 바꾸어 저장시켜놓으면 사용자는 그 데이터베이스에 접근하기 위해 복호화 알고리즘 D와 개인키 K를 이용하여 다시 평문의 정보 M으로 바꾸어 이용하는 방법

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

  • 공개키 암호화 기법(Public Key Encryption)
    • 데이터를 암호화할 때 사용하는 공개키(Public Key)는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키(Secret Key)는 관리자가 비밀리에 관리한다.
    • 공개키 암호화 기법에서 암호화 대상이 n개일 때 사용되는 키의 개수는 2n이다.
    • 비대칭 암호 기법이라고도 하며, 대표적으로는 RSA(Rivest Sharmir Adleman) 기법이 있다.
    • 데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 공개키(Public Key) P를 이용하여 암호문 C로 바꾸어 저장시켜 놓고, 이를 복호화하기 위해서는 비밀키와 복호화 알고리즘에 권한이 있는 사용자만이 복호화 알고리즘 D와 비밀키(Secret Key) S를 이용하여 다시 평문의 정보 M으로 바꿀 수 있는 기법이다.

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

  • 개인키 암호화 방식과 공개키 암호화 방식에서 사용되는 주요 암호화 알고리즘(양방향 알고리즘) 종류
    • 1) SEED
      • 1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
      • 블록 크기는 128비트이며, 키 길이에 따라 128, 256으로 분류됨
    • 2) ARIA (Academy, Research Institute, Agency)
      • 2004년 국가정보원산학연협회가 개발한 블록 암호화 알고리즘
      • ARIA는 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞 글자로 구성됨
      • 블록 크기는 128비트이며, 키 길이에 따라 128, 192, 256으로 분류됨
    • 3) DES (Data Encryption Standard)
      • 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘
      • DES를 3번 적용하여 보안을 더욱 강화한 3DES(Triple DES)도 있음
      • 블록 크기는 64비트이며, 키 길이는 56비트
    • 4) AES(Advanced Encryption Standard)
      • 2001년 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘
      • DES의 한계를 느낀 NIST에서 공모한 후 발표
      • 블록 크기는 128비트이며, 키 길이에 따라 128, 192, 256으로 분류됨
    • 5) RSA(Rivest Sharmir Adleman)
      • 1978년 MIT의 라이베스트(Rivest), 샤미르(Shamir), 애들먼(Adelman)에 의해 제안된 공개키 암호화 알고리즘
      • 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐
      • 공개키와 비밀키를 사용하는데, 여기서 키란 메시지를 열고 잠그는 상수(Constant)를 의미함

  • 해시(Hash)
    • 임의의 길이의 입력 데이터나 메시지고정된 길이의 값이나 키로 변환하는 것
    • 해시 알고리즘해시 함수라고 부르며, 해시 함수로 변환된 값이나 키해시값 또는 해시키라고 부른다.
    • 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용된다.
    • 해시 함수의 종류
      • 1) SHA 시리즈
        • 1993년 미국 국가안보국(NSA)이 처음 설계했으며, 미국 국립표준기술연구소(NIST)에 의해 발표됨
        • 초기 개발된 SHA-0 이후 SHA-1이 발표되었고, 다시 SHA-2라고 불리는 SHA-224, SHA-256, SHA-384, SHA-512가 발표됨
      • 2) MD5
        • 1991년 R.Rivest가 MD4를 대체하기 위해 고안한 암호화 해시 함수
        • 블록 크기는 512비트이며, 키 길이는 128비트
      • 3) N-NASH
        • 1989년 일본의 전신전화주식회사(NTT)에서 발표한 암호화 해시 함수
        • 블록 크기와 키 길이가 모두 128비트
      • 4) SNEFRU
        • 1990년 R.C.Merkle가 발표한 해시 함수
        • 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발됨
        • 블록 크기는 512비트이며, 키 길이에 따라 128과 256으로 분류
  •  솔트(Salt)
    • 둘 이상의 계정에 대해 패스워드를 'qwer1234'라고 지정하고, 같은 암호화 알고리즘을 적용하게 되면 결과도 마찬가지로 동일하게 나타난다. 이 경우 공격자가 나타난다면 하나의 암호만 해제해도 둘 이상의 계정을 얻게되므로, 이를 방지하고자 암호화를 수행하기에 앞서 원문에 무작위의 값을 덧붙이는 과정을 수행한다. 이 때 덧붙이는 무작위의 값을 솔트(Salt)라고 한다.
    • 솔트(Salt)를 사용하면 같은 패스워드에 대해 암호화를 수행하더라도 서로 다른 결과가 나타나게 되어 더 안전하게 암호화된 데이터를 관리할 수 있게 된다.