• 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.2 Enterprise Encryption 사용법 및 예제

응용 프로그램에서 Enterprise Encryption을 사용하려면 실행하는 연산에 적합한 함수를 호출합니다. 이 섹션에서는 일부 일반적인 작업을 수행하는 방법을 보여줍니다.

작업 : RSA 암호화를 사용하여 비밀 키와 공개 키 쌍을 생성합니다.

 - Encryption algorithm; can be 'DSA'or 'DH'instead
 SET @algo = 'RSA';
 - Minimum key length in bits; make larger for stronger keys
 SET @key_len = 1024;

 - Create private key
 SET @priv = CREATE_ASYMMETRIC_PRIV_KEY (@algo, @key_len);
 - Derive corresponding public key from private key, using same algorithm
 SET @pub = CREATE_ASYMMETRIC_PUB_KEY (@algo, @priv);

키 쌍을 사용하면 데이터를 암호화 및 복호화하고 데이터를 서명 및 검증하거나 대칭 키를 생성 할 수있게되었습니다.

작업 : 비밀 키를 사용하여 데이터를 암호화하고 공개 키를 사용하여 해독합니다. 여기에는 키 쌍​​의 멤버가 RSA 열쇠이어야합니다.

 SET @ciphertext = ASYMMETRIC_ENCRYPT (@algo 'My secret text', @priv);
 SET @plaintext = ASYMMETRIC_DECRYPT (@algo, @ciphertext, @pub);

반대로, 공개 키를 사용하여 암호화 비밀 키를 사용하여 해독 할 수 있습니다.

 SET @ciphertext = ASYMMETRIC_ENCRYPT (@algo 'My secret text', @pub);
 SET @plaintext = ASYMMETRIC_DECRYPT (@algo, @ciphertext, @priv);

어떤 경우에도 암호화 함수 및 복호화 함수에 지정된 알고리즘은 키를 생성 할 때 사용 된 알고리즘과 일치해야합니다.

작업 : 문자열에서 다이제스트를 생성합니다.

 - Digest type; can be 'SHA256', 'SHA384'or 'SHA512'instead
 SET @dig_type = 'SHA224';

 - Generate digest string
 SET @dig = CREATE_DIGEST (@dig_type 'My text to digest');

작업 : 키 쌍을 포함 다이제스트를 사용하여 데이터를 서명하고 그 서명이 다이제스트와 일치하는지 확인합니다.

 - Encryption algorithm; could be 'DSA'instead; keys must
 - have been created using same algorithm
 SET @algo = 'RSA';

 - Generate signature for digest and verify signature against digest
 SET @sig = ASYMMETRIC_SIGN (@algo, @dig, @priv, @dig_type);
 - Verify signature against digest
 SET @verf = ASYMMETRIC_VERIFY (@algo, @dig, @sig, @pub, @dig_type);

작업 : 대칭 키를 만듭니다. 여기에는 공유 대칭 암호를 사용하여 생성되는 DH 개인 키 / 공개 키가 입력으로 필요합니다. 키의 길이를 CREATE_DH_PARAMETERS() 에 전달 비밀을 만들고 그 비밀을 "키 길이"로 CREATE_ASYMMETRIC_PRIV_KEY() 에 전달합니다.

 - Generate DH shared symmetric secret
 SET @dhp = CREATE_DH_PARAMETERS (1024);
 - Generate DH key pairs
 SET @algo = 'DH';
 SET @ priv1 = CREATE_ASYMMETRIC_PRIV_KEY (@algo, @dhp);
 SET @ pub1 = CREATE_ASYMMETRIC_PUB_KEY (@algo @ priv1);
 SET @ priv2 = CREATE_ASYMMETRIC_PRIV_KEY (@algo, @dhp);
 SET @ pub2 = CREATE_ASYMMETRIC_PUB_KEY (@algo @ priv2);

 - Generate symmetric key using public key of first party,
 - private key of second party
 SET @ sym1 = ASYMMETRIC_DERIVE (@ pub1 @ priv2);

 - Or use public key of second party, private key of first party
 SET @ sym2 = ASYMMETRIC_DERIVE (@ pub2 @ priv1);

키 문자열 값은 SET , SELECT 또는 INSERT 를 사용하여 런타임에 만든 변수와 테이블에 저장할 수 있습니다.

 SET @ priv1 = CREATE_ASYMMETRIC_PRIV_KEY ( 'RSA', 1024);
 SELECT CREATE_ASYMMETRIC_PRIV_KEY ( 'RSA', 1024) INTO @ priv2;
 INSERT INTO t (key_col) VALUES (CREATE_ASYMMETRIC_PRIV_KEY ( 'RSA', 1024));

파일에 저장되어있는 키 문자열 값은 FILE 권한을 가진 사용자가 LOAD_FILE() 함수를 사용하여 읽을 수 있습니다.

다이제스트와 서명 문자열은 동일하게 처리 할 수​​ 있습니다.

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