.NET Framework 암호화 모델

업데이트: 2007년 11월

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

개체 상속

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

  • 알고리즘 형식 클래스(예: SymmetricAlgorithm 또는 HashAlgorithm). 이 수준은 추상 클래스입니다.

  • 알고리즘 형식 클래스에서 상속되는 알고리즘 클래스(예: RC2 또는 SHA1). 이 수준은 추상 클래스입니다.

  • 알고리즘 클래스에서 상속되는 알고리즘 클래스의 구현(예: RC2CryptoServiceProvider 또는 SHA1Managed). 이 수준은 완전히 구현됩니다.

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

스트림 디자인

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

암호화 구성

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

참고 항목

개념

암호화 개요

기타 리소스

암호화 작업

암호화 서비스