AesCryptoServiceProvider.IV 속성

정의

대칭 알고리즘에 대한 초기화 벡터(IV)를 가져오거나 설정합니다.

public:
 virtual property cli::array <System::Byte> ^ IV { cli::array <System::Byte> ^ get(); void set(cli::array <System::Byte> ^ value); };
public override byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overrides Property IV As Byte()

속성 값

Byte[]

초기화 벡터입니다.

예외

초기화 벡터를 null로 설정하려고 한 경우

초기화 벡터를 잘못된 크기로 설정하려고 한 경우

설명

IV 클래스 중 하나의 새 인스턴스를 만들거나 메서드를 수동으로 호출할 때마다 속성이 SymmetricAlgorithm 자동으로 새 임의 값으로 GenerateIV 설정됩니다. 속성의 IV 크기는 8로 나눈 속성과 BlockSize 동일해야 합니다.

클래스에서 SymmetricAlgorithm 파생되는 클래스는 데이터에 대한 암호화 변환을 수행하기 위해 키와 초기화 벡터가 필요한 CBC(암호 블록 체인)라는 체인 모드를 사용합니다. 클래스 중 SymmetricAlgorithm 하나를 사용하여 암호화된 데이터의 암호를 해독하려면 속성과 IV 속성을 암호화에 사용된 것과 동일한 값으로 설정 Key 해야 합니다.

지정된 비밀 키 k 의 경우 초기화 벡터를 사용하지 않는 간단한 블록 암호화는 동일한 일반 텍스트 입력 블록을 동일한 암호화 텍스트의 출력 블록으로 암호화합니다. 일반 텍스트 스트림 내에 중복 블록이 있는 경우 암호화 텍스트 스트림 내에 중복 블록이 있습니다. 권한이 없는 사용자가 일반 텍스트 블록의 구조에 대해 알고 있는 경우 해당 정보를 사용하여 알려진 암호 텍스트 블록을 해독하고 키를 복구할 수 있습니다. 이 문제를 해결하기 위해 이전 블록의 정보가 다음 블록을 암호화하는 프로세스에 혼합됩니다. 따라서 동일한 두 일반 텍스트 블록의 출력은 다릅니다. 이 기술은 이전 블록을 사용하여 다음 블록을 암호화하기 때문에 첫 번째 데이터 블록을 암호화하려면 초기화 벡터가 필요합니다.

적용 대상