SymmetricAlgorithm.IV 속성

정의

대칭 알고리즘에 대한 초기화 벡터(IV)를 가져오거나 설정합니다.Gets or sets the initialization vector (IV) for the symmetric algorithm.

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[]

초기화 벡터입니다.The initialization vector.

예외

초기화 벡터를 null로 설정하려고 한 경우An attempt was made to set the initialization vector to null.

초기화 벡터 크기가 잘못 되었습니다.로 설정 하려고 했습니다.An attempt was made to set the initialization vector to an invalid size.

설명

SymmetricAlgorithm 클래스 중 하나의 새 인스턴스를 만들 때마다 또는 GenerateIV 메서드를 수동으로 호출 하는 경우 IV 속성이 자동으로 새 임의 값으로 설정 됩니다.The IV property is automatically set to a new random value whenever you create a new instance of one of the SymmetricAlgorithm classes or when you manually call the GenerateIV method. IV 속성의 크기는 BlockSize 속성을 8로 나눈 값과 같아야 합니다.The size of the IV property must be the same as the BlockSize property divided by 8.

SymmetricAlgorithm 클래스에서 파생 되는 클래스는 CBC (암호화 블록 체인) 라고 하는 연결 모드를 사용 합니다 .이 모드에서는 데이터에 대 한 암호화 변환을 수행 하기 위해 키와 초기화 벡터가 필요 합니다.The classes that derive from the SymmetricAlgorithm class use a chaining mode called cipher block chaining (CBC), which requires a key and an initialization vector to perform cryptographic transformations on data. SymmetricAlgorithm 클래스 중 하나를 사용 하 여 암호화 된 데이터의 암호를 해독 하려면 Key 속성 및 IV 속성을 암호화에 사용 된 것과 동일한 값으로 설정 해야 합니다.To decrypt data that was encrypted using one of the SymmetricAlgorithm classes, you must set the Key property and IV property to the same values that were used for encryption.

지정 된 비밀 키 k의 경우 초기화 벡터를 사용 하지 않는 단순 블록 암호는 일반 텍스트의 동일한 입력 블록을 암호화 텍스트의 동일한 출력 블록으로 암호화 합니다.For a given secret key k, a simple block cipher that does not use an initialization vector will encrypt the same input block of plain text into the same output block of cipher text. 일반 텍스트 스트림에 내에서 중복 된 블록이 있는 경우 암호화 텍스트 스트림에 내에서 중복 요소를 해야 합니다.If you have duplicate blocks within your plain text stream, you will have duplicate blocks within your cipher text stream. 권한이 없는 사용자가 일반 텍스트 블록의 구조에 대 한 모든 것을 알고 경우 알려진된 암호화 텍스트 블록을 해독 및 키를 복구할 수도에 해당 정보를 사용할 수 있습니다.If unauthorized users know anything about the structure of a block of your plain text, they can use that information to decipher the known cipher text block and possibly recover your key. 이 문제를 해결 하려면 다음 블록을 암호화 하는 프로세스에 이전 블록의 내용은 mixed입니다.To combat this problem, information from the previous block is mixed into the process of encrypting the next block. 따라서 두 개의 동일한 일반 텍스트 블록의 출력이 다릅니다.Thus, the output of two identical plain text blocks is different. 이 기술은 이전 블록 다음 블록 암호화를 사용 하므로 초기화 벡터는 데이터의 첫 번째 블록을 암호화 해야 합니다.Because this technique uses the previous block to encrypt the next block, an initialization vector is needed to encrypt the first block of data.

적용 대상

추가 정보