Share via


TripleDES.Create에서 생성된 인스턴스의 기본 FeedbackSize 값이 변경됨

TripleDES.Create()에서 반환된 TripleDES 인스턴스에서 SymmetricAlgorithm.FeedbackSize 속성의 기본값은 .NET Framework에서 더 쉽게 마이그레이션할 수 있도록 64에서 8로 변경되었습니다. 호출자 코드에서 직접 사용되지 않는 경우 이 속성은 Mode 속성이 CipherMode.CFB인 경우에만 사용됩니다.

CFB 모드 지원은 5.0 RC1 릴리스의 .NET에 처음 추가되었으므로 .NET 5 RC1 및 .NET 5 RC2 애플리케이션만 해당 변경의 영향을 받습니다.

변경 내용 설명

.NET Core 및 이전 .NET 5 시험판 버전에서 TripleDES.Create().FeedbackSize의 기본값은 64입니다. RTM 버전의 .NET 5부터 TripleDES.Create().FeedbackSize의 기본값은 8입니다.

변경 이유

.NET Framework에서 TripleDES 기본 클래스는 FeedbackSize 값을 기본적으로 64로 설정하지만 TripleDESCryptoServiceProvider 클래스는 기본값을 8로 덮어씁니다. FeedbackSize 속성이 버전 2.0의 .NET Core에 도입될 때 동일한 동작이 유지되었습니다. 그러나 .NET Framework에서 TripleDES.Create()TripleDESCryptoServiceProvider의 인스턴스를 반환하므로 알고리즘 팩터리의 기본값은 8입니다. .NET Core 및 .NET 5 이상의 경우 알고리즘 팩터리는 지금까지 기본값이 64였던 퍼블릭이 아닌 구현을 반환합니다.

TripleDES 구현 클래스의 FeedbackSize 값을 8로 변경하면 암호화 모드를 CFB로 지정하지만 FeedbackSize 속성을 명시적으로 할당하지 않은 .NET Framework용으로 작성된 애플리케이션이 .NET 5에서 계속 작동할 수 있습니다.

도입된 버전

5.0

다음 조건이 충족되면 RC1 또는 RC2 버전의 .NET 5에서 데이터를 암호화하거나 암호 해독하는 애플리케이션은 CFB64를 사용하여 해당 작업을 수행합니다.

이 동작을 유지 관리하려면 64FeedbackSize 속성을 할당합니다.

일부 TripleDES 구현은 FeedbackSize에 대해 동일한 기본값을 사용하지 않습니다. TripleDES 인스턴스에서 CFB 암호화 모드를 사용하는 경우 항상 FeedbackSize 속성 값을 명시적으로 할당하는 것이 좋습니다.

TripleDES cipher = TripleDES.Create();
cipher.Mode = CipherMode.CFB;
// Explicitly set the FeedbackSize for CFB to control between CFB8 and CFB64.
cipher.FeedbackSize = 8;

영향을 받는 API