.NET Framework 암호화 모델

업데이트: 2010년 7월

.NET Framework에서는 여러 가지 표준 암호화 알고리즘을 구현합니다. 이러한 알고리즘은 사용하기 쉬우며 가능한 가장 안전한 기본 속성을 갖고 있습니다. 또한 .NET Framework의 개체 상속, 스트림 디자인 및 구성에 대한 암호화 모델은 크게 확장할 수 있습니다.

개체 상속

.NET Framework 보안 시스템에서는 확장할 수 있는 패턴의 파생 클래스 상속을 구현합니다. 이 계층 구조는 다음과 같습니다.

이 패턴의 파생 클래스를 사용하면 기존 알고리즘에 새 알고리즘 또는 새 구현을 추가하기가 쉽습니다. 예를 들어, 새 공개 키 알고리즘을 만들려면 AsymmetricAlgorithm 클래스에서 상속합니다. 특정 알고리즘의 새 구현을 만들려면 해당 알고리즘의 비추상 파생 클래스를 만듭니다.

.NET Framework에서 알고리즘이 구현되는 방법

알고리즘에 대해 사용 가능한 여러 구현 방법에 대한 예로 대칭 알고리즘을 생각해 보십시오. 모든 대칭 알고리즘의 기본은 다음 알고리즘으로부터 상속되는 SymmetricAlgorithm입니다.

  1. Aes

  2. DES

  3. RC2

  4. Rijndael

  5. TripleDES

Aes는 두 클래스인 AesCryptoServiceProviderAesManaged에 의해 상속됩니다. AesCryptoServiceProvider 클래스는 Aes의 Windows CAPI(암호화 API)지만 AesManaged 클래스는 전적으로 관리되는 코드 내에서 작성됩니다. 또한 관리되는 구현과 CAPI 구현 외에 CNG(Cryptography Next Generation)라는 세 번째 유형의 구현도 있습니다. CNG 알고리즘의 예는 ECDiffieHellmanCng입니다. CNG 알고리즘은 Windows Vista 이상에서 사용할 수 있습니다.

사용자는 자신에게 가장 적합한 구현을 선택할 수 있습니다. 관리되는 구현은 .NET Framework를 지원하는 모든 플랫폼에서 사용할 수 있습니다. CAPI 구현은 이전 운영 체제에서 사용할 수 있으며 더 이상 개발되고 있지 않습니다. CNG는 새로운 개발이 수행되는 최신 구현 방식입니다. 하지만 FIPS(Federal Information Processing Standard)에서 관리되는 구현이 인증되지 않았으며 래퍼 클래스보다 속도가 느릴 수 있습니다.

스트림 디자인

공용 언어 런타임에서는 대칭 알고리즘 및 해시 알고리즘을 구현하기 위한 스트림 지향 디자인을 사용합니다. 이 디자인의 핵심은 Stream 클래스에서 파생된 클래스인 CryptoStream입니다. 스트림 기반 암호화 개체는 개체의 데이터 전송 부분을 처리하기 위한 하나의 표준 인터페이스(CryptoStream)를 지원합니다. 모든 개체가 표준 인터페이스를 기반으로 빌드되기 때문에 해시 개체 다음에 암호화 개체를 결합하는 것과 같이 여러 개체를 함께 결합할 수 있으며 중간 저장소 없이도 데이터에 대해 여러 작업을 수행할 수 있습니다. 스트리밍 모델을 사용하면 보다 작은 여러 개체를 결합하여 개체를 빌드할 수도 있습니다. 예를 들어, 결합된 암호화 및 해시 알고리즘은 여러 스트림 개체의 집합에서 가져와 빌드된 경우에도 하나의 스트림 개체로 볼 수 있습니다.

암호화 구성

암호화 구성을 사용하면 특정 알고리즘 구현을 알고리즘 이름으로 확인할 수 있으며 .NET Framework 암호화 클래스의 확장성이 확보됩니다. 알고리즘에 대한 사용자 고유의 하드웨어 또는 소프트웨어 구현을 추가할 수 있으며 사용자가 선택한 알고리즘 이름에 해당 구현을 매핑할 수 있습니다. 구성 파일에 알고리즘이 지정되지 않은 경우에는 기본 설정 값이 사용됩니다. 암호화 구성에 대한 자세한 내용은 암호화 클래스 구성을 참조하십시오.

알고리즘 선택

데이터 무결성, 데이터 개인 정보 보호 또는 키 생성 등 다양한 이유에 따라 알고리즘을 선택할 수 있습니다. 대칭 및 해시 알고리즘은 무결성 이유(변경되지 않도록 보호) 또는 개인 정보 보호 이유(데이터를 볼 수 없도록 보호)로 데이터를 보호하기 위한 것입니다. 해시 알고리즘은 주로 데이터 무결성 목적으로 사용됩니다.

다음은 응용 프로그램에 권장되는 알고리즘 목록입니다.

참고 항목

개념

암호화 서비스

암호화 서비스

기타 리소스

암호화 작업

변경 기록

날짜

변경 내용

이유

2010년 7월

항목의 내용 범위가 확장되었습니다.

향상된 기능 관련 정보