• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 1. 함수와 연산자 참조
    2. 식 평가 형식 변환
    3. 연산자
    4. 제어 흐름 함수
    5. 문자열 함수
    6. 수치 함수와 연산자
    7. 날짜 및 시간 함수
    8. MySQL에서 사용되는 달력
    9. Full-Text 검색 기능
    10. 캐스트 함수와 연산자
    11. XML 함수
    12. 비트 함수
    13. 암호화 함수와 압축 함수
    14. 정보 함수
    15. 공간 분석 함수
    16. 글로벌 트랜잭션 ID와 함께 사용되는 함수
    17. MySQL Enterprise Encryption 기능
    1. Enterprise Encryption 설치
    2. Enterprise Encryption 사용법 및 예제
    3. Enterprise Encryption 함수 참조
    4. Enterprise Encryption 기능 설명
    18. 기타 함수
    19. GROUP BY 절에서 사용되는 함수와 수식
    20. 정밀 계산
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

12.17.4 Enterprise Encryption 기능 설명

Enterprise Encryption 기능에는 다음과 같은 일반적인 특성이 있습니다.

  • 인수의 형태가 부정한 경우 나 인수의 수가 잘못된 경우 각 함수에서 오류가 반환됩니다.

  • 요청 된 연산을 수행 할 함수에 허용하는 인자가 적합하지 않으면 필요에 따라 NULL 또는 0이 반환됩니다. 이것은 지정된 알고리즘이 함수가 지원되지 않는 경우 키의 길이가 너무 짧거나 너무 길거나 할 경우 PEM 형식의 키 문자열로 요구되는 문자열이 유효한 키가 아닌 경우에 발생합니다.

  • 기반이되는 SSL 라이브러리는 불규칙성의 초기화가 처리됩니다.

함수의 일부는 암호화 알고리즘 인수가 지정됩니다. 다음 표에는 지원되는 알고리즘의 요약 함수별로 보여줍니다.

표 12.22 함수에서 지원되는 알고리즘

함수 지원되는 알고리즘
ASYMMETRIC_DECRYPT() RSA
ASYMMETRIC_DERIVE() DH
ASYMMETRIC_ENCRYPT() RSA
ASYMMETRIC_SIGN() RSA, DSA
ASYMMETRIC_VERIFY() RSA, DSA
CREATE_ASYMMETRIC_PRIV_KEY() RSA, DSA, DH
CREATE_ASYMMETRIC_PUB_KEY() RSA, DSA, DH

참고

RSA, DSA 또는 DH 중 하나의 암호화 알고리즘을 사용하면 열쇠를 만들 수 있지만 키 인수가 지정하는 다른 함수는 특정 유형의 키만 허용 될 수 있습니다. 예를 들어, ASYMMETRIC_ENCRYPT() 및 ASYMMETRIC_DECRYPT() 는 RSA 키 만 허용됩니다.

다음의 설명에서는 Enterprise Encryption 함수를 호출 순서를 나타냅니다. 추가 예제와 설명은 섹션 12.17.2 "Enterprise Encryption 사용법 및 예제" 를 참조하십시오.

  • ASYMMETRIC_DECRYPT( algorithm , crypt_str , key_str )

    지정된 알고리즘 및 키 문자열을 사용하여 암호화 된 문자열을 해독하고 그 결과로 생성되는 일반 텍스트를 바이너리 문자열로 반환합니다. 해독에 실패하면 결과가 NULL 입니다.

    key_str 은 PEM 형식의 유효한 키 문자열이어야합니다. 해독에 성공하면 공개 키 또는 비밀 키의 문자열을 암호화 된 문자열을 생성 할 때 ASYMMETRIC_ENCRYPT() 에서 사용 된 공개 키 또는 비밀 키의 문자열에 대응하고있을 필요 수 있습니다. algorithm 은 열쇠를 만들 때 사용 된 암호화 알고리즘을 나타냅니다.

    지원되는 algorithm 값 : 'RSA'

    사용 예는 ASYMMETRIC_ENCRYPT() 의 설명을 참조하십시오.

  • ASYMMETRIC_DERIVE( pub_key_str , priv_key_str )

    있는 파티의 비밀 키와 다른 파티의 공개 키를 사용하여 대칭 키를 도출하고 그 결과로 생성되는 키를 바이너리 문자열로 반환합니다. 키 추출에 실패하면 결과가 NULL 입니다.

    pub_key_str 및 priv_key_str 은 PEM 형식의 유효한 키 문자열이어야합니다. 이들은 DH 알고리즘을 사용하여 작성해야합니다.

    공개 키와 개인 키의 두 쌍을 가지고 있다고 가정합니다.

     SET @dhp = CREATE_DH_PARAMETERS (1024);
     SET @ priv1 = CREATE_ASYMMETRIC_PRIV_KEY ( 'DH', @dhp);
     SET @ pub1 = CREATE_ASYMMETRIC_PUB_KEY ( 'DH'@ priv1);
     SET @ priv2 = CREATE_ASYMMETRIC_PRIV_KEY ( 'DH', @dhp);
     SET @ pub2 = CREATE_ASYMMETRIC_PUB_KEY ( 'DH'@ priv2);
    

    또한 하나의 쌍에서 개인 키를 사용하고 다른 한 쌍의 공개 키를 사용하여 대칭 키 문자열을 작성한다고 가정합니다. 그 후,이 대칭 키의 ID 관계가 다음과 같이 개최됩니다.

     ASYMMETRIC_DERIVE (@ pub1 @ priv2) = ASYMMETRIC_DERIVE (@ pub2 @ priv1)
    
  • ASYMMETRIC_ENCRYPT( algorithm , str , key_str )

    지정된 알고리즘 및 키 문자열을 사용하여 문자열을 암호화하고 결과로 생성 된 암호문을 바이너리 문자열로 반환합니다. 암호화에 실패했을 경우, 결과는 NULL 이됩니다.

    str 의 길이는 바이트 단위로 key_str 길이 - 11보다 클 수 없습니다.

    key_str 은 PEM 형식의 유효한 키 문자열로해야합니다. algorithm 은 열쇠를 만들 때 사용 된 암호화 알고리즘을 나타냅니다.

    지원되는 algorithm 값 : 'RSA'

    문자열을 암호화하려면 비밀 또는 공개 키의 문자열을 ASYMMETRIC_ENCRYPT() 에 전달합니다. 원래의 암호화되지 않은 문자열을 복구하려면 암호화에 사용 된 비밀 키 또는 공개 키 문자열에 대응하는 공개 키 또는 비밀 키의 문자열과 함께 암호화 된 문자열을 ASYMMETRIC_DECRYPT() 에 전달합니다.

     - Generate private / public key pair
     SET @priv = CREATE_ASYMMETRIC_PRIV_KEY ( 'RSA', 1024);
     SET @pub = CREATE_ASYMMETRIC_PUB_KEY ( 'RSA', @priv);
    
     - Encrypt using private key, decrypt using public key
     SET @ciphertext = ASYMMETRIC_ENCRYPT ( 'RSA', 'The quick brown fox', @priv);
     SET @plaintext = ASYMMETRIC_DECRYPT ( 'RSA', @ciphertext, @pub);
    
     - Encrypt using public key, decrypt using private key
     SET @ciphertext = ASYMMETRIC_ENCRYPT ( 'RSA', 'The quick brown fox', @pub);
     SET @plaintext = ASYMMETRIC_DECRYPT ( 'RSA', @ciphertext, @priv);
    

    다음과 같이 가정합니다.

     SET @s = a string to be encrypted
     SET @priv = a valid private RSA key string in PEM format
     SET @pub = the corresponding public RSA key string in PEM format
    

    그렇다면 이러한 ID 관계가 다음과 같이 개최됩니다.

     ASYMMETRIC_DECRYPT ( 'RSA', ASYMMETRIC_ENCRYPT ( 'RSA'@s, @priv) @pub) = @s
     ASYMMETRIC_DECRYPT ( 'RSA', ASYMMETRIC_ENCRYPT ( 'RSA'@s, @pub) @priv) = @s
    
  • ASYMMETRIC_SIGN( algorithm , digest_str , priv_key_str , digest_type )

    비밀 키 문자열을 사용하여 다이제스트 문자열에 서명하고 그 서명을 바이너리 문자열로 반환합니다. 서명에 실패하면 결과가 NULL 입니다.

    digest_str 다이제스트 문자열입니다. 이것은 CREATE_DIGEST() 를 호출하여 생성 할 수 있습니다. digest_type 다이제스트 문자열을 생성하는 데 사용 된 다이제스트 알고리즘을 나타냅니다.

    priv_key_str 다이제스트 문자열로 유명 할 때 사용되는 비밀 키 문자열입니다. 이는 PEM 형식의 유효한 키 문자열로해야합니다. algorithm 은 열쇠를 만들 때 사용 된 암호화 알고리즘을 나타냅니다.

    지원되는 algorithm 값 : 'RSA' , 'DSA'

    지원되는 digest_type 값 : 'SHA224' , 'SHA256' , 'SHA384' , 'SHA512'

    사용 예는 ASYMMETRIC_VERIFY() 의 설명을 참조하십시오.

  • ASYMMETRIC_VERIFY( algorithm , digest_str , sig_str , pub_key_str , digest_type )

    서명 문자열이 다이제스트 문자열과 일치 여부를 확인하고 확인에 성공했는지 실패했는지를 나타내는 1 또는 0을 반환합니다.

    digest_str 다이제스트 문자열입니다. 이것은 CREATE_DIGEST() 를 호출하여 생성 할 수 있습니다. digest_type 다이제스트 문자열을 생성하는 데 사용 된 다이제스트 알고리즘을 나타냅니다.

    sig_str 서명 문자열입니다. 이것은 ASYMMETRIC_SIGN() 를 호출하여 생성 할 수 있습니다.

    pub_key_str 은 서명자의 공개 키 문자열입니다. 이것은 서명 문자열을 생성하는 ASYMMETRIC_SIGN() 에 전달되는 비밀 키에 대응하고 PEM 형식의 유효한 키 문자열로해야합니다. algorithm 은 열쇠를 만들 때 사용 된 암호화 알고리즘을 나타냅니다.

    지원되는 algorithm 값 : 'RSA' , 'DSA'

    지원되는 digest_type 값 : 'SHA224' , 'SHA256' , 'SHA384' , 'SHA512'

     - Set the encryption algorithm and digest type
     SET @algo = 'RSA';
     SET @dig_type = 'SHA224';
    
     - Create private / public key pair
     SET @priv = CREATE_ASYMMETRIC_PRIV_KEY (@algo 1024);
     SET @pub = CREATE_ASYMMETRIC_PUB_KEY (@algo, @priv);
    
     - Generate digest from string
     SET @dig = CREATE_DIGEST (@dig_type 'The quick brown fox');
    
     - Generate signature for digest and verify signature against digest
     SET @sig = ASYMMETRIC_SIGN (@algo, @dig, @priv, @dig_type);
     SET @verf = ASYMMETRIC_VERIFY (@algo, @dig, @sig, @pub, @dig_type);
    
  • CREATE_ASYMMETRIC_PRIV_KEY( algorithm , { key_len | dh_secret })

    지정된 알고리즘 및 키 길이 또는 DH 암호를 사용하여 개인 키를 생성 해, 그 키를 PEM 형식의 이진 문자열로 반환합니다. 키 생성에 실패했을 경우, 결과는 NULL 이됩니다.

    지원되는 algorithm 값 : 'RSA' , 'DSA' , 'DH'

    지원되는 key_len 값 : 최소 키 길이는 1024 비트입니다. 최대 키 길이는 알고리즘에 따라 다르며, RSA의 경우는 16,384, DSA의 경우는 10,000입니다. 이 길이는 OpenSSL에 의해 부과 된 제약입니다.

    DH 키의 경우 키의 길이 대신 공유 DH 비밀을 전달합니다. 암호를 만들려면 키 길이를 CREATE_DH_PARAMETERS() 에 전달합니다.

    이 예에서는 2048 DSA 비밀 키를 생성하고 그 비밀 키에서 공개 키를 도출합니다.

     SET @priv = CREATE_ASYMMETRIC_PRIV_KEY ( 'DSA', 2048);
     SET @pub = CREATE_ASYMMETRIC_PUB_KEY ( 'DSA', @priv);
    

    DH 키 생성을 나타내는 예는 ASYMMETRIC_DERIVE() 의 설명을 참조하십시오.

    키 길이와 암호화 알고리즘을 선택할 때의 일반적인 몇 가지 고려 사항은 다음과 같습니다.

    • 키 크기와 함께 공개 키와 비밀 키의 암호화 강도가 증가하지만 키 생성 시간도 증가합니다.

    • DH 키 생성 시간은 RSA 키 또는 RSA 키보다 훨씬 길어집니다.

    • 비대칭 암호화 함수는 대칭 함수보다 느립니다. 성능이 중요한 요소이며, 그 함수가 매우 자주 사용되는 경우 대칭 암호화를 사용하는 것이 좋습니다. 예를 들어, AES_ENCRYPT() 및 AES_DECRYPT() 를 사용하는 것을 고려하십시오.

  • CREATE_ASYMMETRIC_PUB_KEY( algorithm , priv_key_str )

    지정된 알고리즘을 사용하여 지정된 비밀 키에서 공개 키를 도출하고 그 키를 PEM 형식의 이진 문자열로 반환합니다. 키 추출에 실패하면 결과가 NULL 입니다.

    priv_key_str 은 PEM 형식의 유효한 키 문자열로해야합니다. algorithm 은 열쇠를 만들 때 사용 된 암호화 알고리즘을 나타냅니다.

    지원되는 algorithm 값 : 'RSA' , 'DSA' , 'DH'

    사용 예는 CREATE_ASYMMETRIC_PRIV_KEY() 의 설명을 참조하십시오.

  • CREATE_DH_PARAMETERS( key_len )

    DH 비밀 키와 공개 키 쌍을 생성하기 위해 공유 암호를 만들고 CREATE_ASYMMETRIC_PRIV_KEY() 에 전달할 수있는 바이너리 문자열을 반환합니다. 암호 생성에 실패하면 결과가 NULL입니다.

    지원되는 key_len 값 : 최소 및 최대 키 길이는 1024 비트 및 10,000 비트입니다. 이 길이는 OpenSSL에 의해 부과 된 제약입니다.

    대칭 키를 생성하는 반환 값을 사용하는 방법을 보여주는 예제는 ASYMMETRIC_DERIVE() 의 설명을 참조하십시오.

     SET @dhp = CREATE_DH_PARAMETERS (1024);
    
  • CREATE_DIGEST( digest_type , str )

    지정된 다이제스트 유형을 사용하여 지정된 문자열에서 다이제스트를 만들고 다이제스트를 바이너리 문자열로 반환합니다. 다이제스트의 생성에 실패했을 경우, 결과는 NULL 이됩니다.

    지원되는 digest_type 값 : 'SHA224' , 'SHA256' , 'SHA384' , 'SHA512'

     SET @dig = CREATE_DIGEST ( 'SHA512'The quick brown fox ');
    

    결과로 생성되는 다이제스트 문자열은 ASYMMETRIC_SIGN() 및 ASYMMETRIC_VERIFY() 와 사용에 적합합니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved