다음을 통해 공유


SymmetricAlgorithm.IV 속성

정의

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

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

속성 값

Byte[]

초기화 벡터입니다.

예외

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

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

설명

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

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

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

적용 대상

추가 정보