언어

DrbgParameters 클래스

정의

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

[Android.Runtime.Register("java/security/DrbgParameters", ApiSince=35, DoNotGenerateAcw=true)]
public class DrbgParameters : Java.Lang.Object
[<Android.Runtime.Register("java/security/DrbgParameters", ApiSince=35, DoNotGenerateAcw=true)>]
type DrbgParameters = class
    inherit Object
상속
DrbgParameters
특성

설명

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

NIST 특별 간행물 800-90A 수정 버전 1에 따르면 결정적 임의 비트 생성기(800-90Ar1)<를 사용하는 난수 생성에 대한 권장 사항인 blockquote> A DRBG는 이 권장 사항에 지정된 DRBG 메커니즘을 기반으로 하며 임의 소스를 포함합니다. DRBG 메커니즘은 임의성 소스의 출력에서 결정되는 초기 값에서 결정되는 비트 시퀀스를 생성하는 알고리즘(즉, DRBG 알고리즘)을 사용합니다." </blockquote>

800-90Ar1 사양을 사용하면 엔트로피 소스<>ul<>li<, DRBG 메커니즘(예: Hash_DRBG),><DRBG 알고리즘(예: >Hash_DRBG SHA-256, CTR_DRBG AES-256)과 같은 다양한 DRBG 구현을 선택할 수 있습니다. 여기서는 em SecureRandom 알고리즘SecureRandom#getInstance/em<을 >< 호출><하는 데 사용되는 >알고리즘이 아닙니다. 예측 저항 및 다시 시딩 지원을 비롯한 li 선택적 기능, <> 가장 높은 보안 강도입니다. </ul>

이러한 선택은 각 구현에서 설정되며 API에서 SecureRandom 직접 관리되지 않습니다. DRBG 공급자의 설명서를 확인하여 상황에 적합한 구현을 찾습니다.

반면, 800-90Ar1 사양에는 ul<li 필수 보안 강도, 예측 저항이 필요한 경우 li>, <>li< 개인 설정 문자열 및 추가 입력과 같은 >몇 가지 구성 가능한 옵션이 있습니다.<> </ul>

DRBG 인스턴스는 개체 및 기타 정보(예: 이 API에서 DrbgParameters.Instantiation 관리되지 않는 nonce)의 매개 변수를 사용하여 인스턴스화할 수 있습니다. NIST SP 800-90Ar1에 정의된 값 Instantiate_function 에 매핑합니다.

DRBG 인스턴스는 개체의 DrbgParameters.Reseed 매개 변수를 사용하여 다시 설정할 수 있습니다. NIST SP 800-90Ar1에 정의된 값 Reseed_function 에 매핑합니다. 호출 SecureRandom#reseed() 은 추가 입력 없이 유효 인스턴스화된 예측 저항 플래그(반환됨SecureRandom#reseed(SecureRandomParameters))를 사용하여 호출 SecureRandom#getParameters() 하는 것과 같습니다.

DRBG 인스턴스는 개체의 추가 매개 변수를 사용하여 DrbgParameters.NextBytes 데이터를 생성합니다. NIST SP 800-90Ar1에 정의된 값 Generate_function 에 매핑합니다. 호출 SecureRandom#nextBytes(byte[]) 은 추가 입력 없이 유효 인스턴스화된 강도 및 예측 저항 플래그(반환됨SecureRandom#nextBytes(byte[], SecureRandomParameters))를 사용하여 호출 SecureRandom#getParameters() 하는 것과 같습니다.

DRBG는 의 하위 클래스 SecureRandomSpi로 구현되어야 합니다. 구현에는 인수를 사용하는 DrbgParameters.Instantiation 1-arg SecureRandomSpi#SecureRandomSpi(SecureRandomParameters) 생성자를 포함하는 것이 좋습니다. 이러한 방식으로 구현되는 경우 모든 SecureRandom.getInstance() 메서드에서 이 구현을 선택할 수 있습니다. 매개 변수를 사용하여 SecureRandom.getInstance()SecureRandomParameters 선택한 경우 매개 변수가 이 생성자로 전달됩니다. 매개 변수 없이 SecureRandom.getInstance() 선택한 SecureRandomParameters 경우 생성자는 인수를 사용하여 null 호출되고 구현은 자체 매개 변수를 선택해야 합니다. SecureRandom#getParameters() DRBG가 실제로 인스턴스화되는 방법을 반영하는 null이 아닌 유효 DrbgParameters.Instantiation 개체를 항상 반환해야 합니다. 호출자는 이 정보를 사용하여 개체가 DRBG인지 여부 SecureRandom 와 개체가 지원하는 기능을 확인할 수 있습니다. 반환된 값이 호출에 DrbgParameters.Instantiation 전달된 개체와 SecureRandom.getInstance() 반드시 같은 것은 아닙니다. 예를 들어 요청된 접근 권한 값은 DrbgParameters.Capability#NONE 구현에서 다시시딩을 지원하는 경우 유효 값일 DrbgParameters.Capability#RESEED_ONLY 수 있습니다. 구현은 매개 변수를 SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters) 사용하는 메서드를 DrbgParameters.NextBytes 구현해야 합니다. 결과에 SecureRandom#getParameters() DrbgParameters.Instantiation#getCapability() 기능이 없는 Capability#NONE NONE한 매개 변수를 SecureRandomSpi#engineReseed(SecureRandomParameters) 사용하는 기능을 구현 DrbgParameters.Reseed 해야 합니다.

반면에 DRBG 구현에 인수가 있는 생성자가 없는 경우(권장되지 않음) 매개 변수가 없는 생성자 DrbgParameters.Instantiation 만 선택할 SecureRandom.getInstance() 수 있지만 매개 변수가 있는 SecureRandomParameters 메서드가 호출되는 경우에는 getInstance 선택되지 SecureRandomParameters 않습니다. 이러한 방식으로 구현된 경우 반드시 SecureRandom#getParameters() 반환 null해야 하며, 구현하거나 SecureRandomSpi#engineNextBytes(byte[], SecureRandomParameters)SecureRandomSpi#engineReseed(SecureRandomParameters)구현할 필요가 없습니다.

시드 기간이 DRBG 메커니즘에 정의된 최대 시드 수명보다 큰 경우 DRBG가 자동으로 다시 시드될 수 있습니다.

DRBG 구현은 구성 및 유효 매개 변수를 유지하여 직렬화 및 역직렬화를 지원해야 하지만 내부 상태를 직렬화해서는 안 되며 역직렬화된 개체를 다시 시작해야 합니다.

예: <blockquote>

SecureRandom drbg;
            byte[] buffer = new byte[32];

            // Any DRBG is OK
            drbg = SecureRandom.getInstance("DRBG");
            drbg.nextBytes(buffer);

            SecureRandomParameters params = drbg.getParameters();
            if (params instanceof DrbgParameters.Instantiation) {
                DrbgParameters.Instantiation ins = (DrbgParameters.Instantiation) params;
                if (ins.getCapability().supportsReseeding()) {
                    drbg.reseed();
                }
            }

            // The following call requests a weak DRBG instance. It is only
            // guaranteed to support 112 bits of security strength.
            drbg = SecureRandom.getInstance("DRBG",
                    DrbgParameters.instantiation(112, NONE, null));

            // Both the next two calls will likely fail, because drbg could be
            // instantiated with a smaller strength with no prediction resistance
            // support.
            drbg.nextBytes(buffer,
                    DrbgParameters.nextBytes(256, false, "more".getBytes()));
            drbg.nextBytes(buffer,
                    DrbgParameters.nextBytes(112, true, "more".getBytes()));

            // The following call requests a strong DRBG instance, with a
            // personalization string. If it successfully returns an instance,
            // that instance is guaranteed to support 256 bits of security strength
            // with prediction resistance available.
            drbg = SecureRandom.getInstance("DRBG", DrbgParameters.instantiation(
                    256, PR_AND_RESEED, "hello".getBytes()));

            // Prediction resistance is not requested in this single call,
            // but an additional input is used.
            drbg.nextBytes(buffer,
                    DrbgParameters.nextBytes(-1, false, "more".getBytes()));

            // Same for this call.
            drbg.reseed(DrbgParameters.reseed(false, "extra".getBytes()));

</blockquote>

9에 추가되었습니다.

에 대한 java.security.DrbgParametersJava 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

생성자

Name Description
DrbgParameters(IntPtr, JniHandleOwnership)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

속성

Name Description
Class

Object런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

interop 런타임에 의해 이 Java 피어에 할당된 ID 해시 코드를 가져옵니다.

(다음에서 상속됨 Object)
JniManagedPeerState

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
JniPeerMembers

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

PeerReference

이 Java 피어에 대한 JNI 개체 참조를 가져옵니다.

(다음에서 상속됨 Object)
ThresholdClass

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

ThresholdType

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

메서드

Name Description
Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
Dispose()

이 Java 피어에서 보유한 리소스를 해제합니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

이 Java 피어에서 보유한 리소스를 해제합니다.

(다음에서 상속됨 Object)
DisposeUnlessReferenced()

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
Equals(Object)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
InvokeInstantiation(Int32, DrbgParameters+Capability, Byte[])

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

InvokeNextBytes(Int32, Boolean, Byte[])

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

InvokeReseed(Boolean, Byte[])

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
ToArray<T>()

이 Java 배열 래퍼에서 관리되는 배열을 만듭니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

interop 런타임에서 이 Java 피어의 등록을 취소합니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받><거나 ><>중단/종료<합니다.>

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

Name Description
IJavaPeerable.Disposed()

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.Finalized()

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

(다음에서 상속됨 JavaObject)

확장명 메서드

Name Description
GetJniTypeName(IJavaPeerable)

인스턴스 self형식의 JNI 이름을 가져옵니다.

JavaAs<TResult>(IJavaPeerable)

형식self을 강제 TResult 변환하여 강제 변환이 Java 쪽에서 유효한지 확인합니다.

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

이 클래스는 DRBG(결정적 임의 비트 생성기)에서 사용하는 매개 변수를 지정합니다.

TryJavaCast<TResult>(IJavaPeerable, TResult)

형식self을 강제 TResult 변환하여 강제 변환이 Java 쪽에서 유효한지 확인합니다.

적용 대상