암호화 알고리즘 선택Choose an Encryption Algorithm

암호화는 SQL ServerSQL Server의 인터페이스를 보호하려는 관리자가 사용할 수 있는 여러 가지 심층 방어 중 하나입니다.Encryption is one of several defenses-in-depth that are available to the administrator who wants to secure an instance of SQL ServerSQL Server.

암호화 알고리즘은 사용자가 무단으로 쉽게 바꿀 수 없는 데이터 변환을 정의합니다.Encryption algorithms define data transformations that cannot be easily reversed by unauthorized users. SQL ServerSQL Server 를 사용하면 관리자와 개발자가 DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128비트 RC4, DESX, 128비트 AES, 192비트 AES, 256비트 AES 등의 여러 알고리즘 중에서 원하는 알고리즘을 선택할 수 있습니다. allows administrators and developers to choose from among several algorithms, including DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128-bit RC4, DESX, 128-bit AES, 192-bit AES, and 256-bit AES.

참고

SQL Server 2016SQL Server 2016부터는 AES_128, AES_192 및 AES_256 이외의 모든 알고리즘을 지원하지 않습니다.Beginning with SQL Server 2016SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. 오래된 알고리즘을 사용하려면(권장하지 않음) 데이터베이스 호환성 수준을 120 이하로 설정해야 합니다.To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

모든 상황에 맞는 이상적인 단일 알고리즘은 없으며 각 알고리즘의 장점에 대한 내용은 SQL ServerSQL Server 온라인 설명서에서 다루지 않지만No single algorithm is ideal for all situations, and guidance on the merits of each is beyond the scope of SQL ServerSQL Server Books Online. 다음과 같은 일반적인 원칙이 적용됩니다.However, the following general principles apply:

  • 강력한 암호화는 일반적으로 약한 암호화보다 더 많은 CPU 리소스를 사용합니다.Strong encryption generally consumes more CPU resources than weak encryption.

  • 일반적으로 짧은 키보다 긴 키가 강력한 암호화를 생성합니다.Long keys generally yield stronger encryption than short keys.

  • 동일한 키 길이를 사용하는 대칭 암호화보다 비대칭 암호화가 약하지만 상대적으로 속도가 느립니다.Asymmetric encryption is weaker than symmetric encryption using the same key length, but it is relatively slow.

  • 스트림 암호화보다 긴 키를 사용하는 블록 암호화가 강력합니다.Block ciphers with long keys are stronger than stream ciphers.

  • 짧은 암호보다 길고 복잡한 암호가 강력합니다.Long, complex passwords are stronger than short passwords.

  • 많은 양의 데이터를 암호화하는 경우 대칭 키를 사용하여 데이터를 암호화한 다음 비대칭 키를 사용하여 해당 대칭 키를 암호화하는 것이 좋습니다.If you are encrypting lots of data, you should encrypt the data using a symmetric key, and encrypt the symmetric key with an asymmetric key.

  • 암호화된 데이터는 압축할 수 없지만 압축된 데이터는 암호화할 수 있습니다.Encrypted data cannot be compressed, but compressed data can be encrypted. 압축을 사용할 경우 데이터를 암호화하기 전에 먼저 압축해야 합니다.If you use compression, you should compress data before encrypting it.

중요

RC4 알고리즘은 이전 버전과의 호환성을 위해서만 지원됩니다.The RC4 algorithm is only supported for backward compatibility. 데이터베이스의 호환성 수준이 90 또는 100인 경우 새 자료는 RC4 또는 RC4_128로만 암호화할 수 있습니다.New material can only be encrypted using RC4 or RC4_128 when the database is in compatibility level 90 or 100. 이 옵션은 사용하지 않는 것이 좋습니다. 대신 AES 알고리즘 중 하나와 같은 새 알고리즘을 사용하십시오.(Not recommended.) Use a newer algorithm such as one of the AES algorithms instead. SQL Server 2012SQL Server 2012 이상에서 RC4 또는 RC4_128을 사용하여 암호화된 자료는 모든 호환성 수준에서 해독할 수 있습니다.In SQL Server 2012SQL Server 2012 and higher material encrypted using RC4 or RC4_128 can be decrypted in any compatibility level.

SQL ServerSQL Server 에서는 솔트를 자동으로 제공하지 않기 때문에 서로 다른 데이터 블록에서 동일한 RC4 또는 RC4_128 KEY_GUID를 반복해서 사용하면 동일한 RC4 키가 만들어집니다.Repeated use of the same RC4 or RC4_128 KEY_GUID on different blocks of data will result in the same RC4 key because SQL ServerSQL Server does not provide a salt automatically. 동일한 RC4 키를 반복해서 사용하는 것은 암호화를 매우 약하게 만드는 잘 알려진 오류입니다.Using the same RC4 key repeatedly is a well-known error that will result in very weak encryption. 따라서 RC4 및 RC4_128 키워드는 더 이상 사용되지 않습니다.Therefore, we have deprecated the RC4 and RC4_128 keywords. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하세요.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

암호화 알고리즘 및 암호화 기술에 대한 자세한 내용은 MSDN에서 .NET Framework Developer's Guide의 주요 보안 개념(Key Security Concepts) 을 참조하십시오.For more information about encryption algorithms and encryption technology, see Key Security Concepts in the .NET Framework Developer's Guide on MSDN.

DES 알고리즘 관련 설명:Clarification regarding DES algorithms:

  • DESX 이름이 잘못 지정되었습니다.DESX was incorrectly named. ALGORITHM = DESX를 사용하여 만든 대칭 키에 실제로 192비트 키를 포함하는 TRIPLE DES 암호화가 사용됩니다.Symmetric keys created with ALGORITHM = DESX actually use the TRIPLE DES cipher with a 192-bit key. DESX 알고리즘은 제공되지 않습니다.The DESX algorithm is not provided. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • ALGORITHM = TRIPLE_DES_3KEY를 사용하여 만든 대칭 키에 192비트 키를 포함하는 TRIPLE DES가 사용됩니다.Symmetric keys created with ALGORITHM = TRIPLE_DES_3KEY use TRIPLE DES with a 192-bit key.

  • ALGORITHM = TRIPLE_DES를 사용하여 만든 대칭 키에 128비트 키를 포함하는 TRIPLE DES가 사용됩니다.Symmetric keys created with ALGORITHM = TRIPLE_DES use TRIPLE DES with a 128-bit key.

대칭 키를 사용하여 암호화Encrypting using a symmetric key. CREATE SYMMETRIC KEY (Transact-SQL)CREATE SYMMETRIC KEY (Transact-SQL)
비대칭 키를 사용하여 암호화Encrypting using an asymmetric key. CREATE ASYMMETRIC KEY (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)
인증서를 사용하여 암호화Encrypting using a certificate. CREATE CERTIFICATE(Transact-SQL)CREATE CERTIFICATE (Transact-SQL)
투명한 데이터 암호화를 사용하여 데이터베이스 파일 암호화Encrypting database files using transparent data encryption. 투명한 데이터 암호화(TDE)Transparent Data Encryption (TDE)
테이블의 한 열을 암호화하는 방법How to encrypt one column of a table. 데이터 열 암호화Encrypt a Column of Data

참고 항목See Also

SQL Server 암호화 SQL Server Encryption
암호화 계층Encryption Hierarchy