AlgorithmParameterGenerator — 알고리즘 파라미터 생성기

AlgorithmParameterGenerator — 알고리즘 파라미터 생성기

특정 알고리즘과 함께 사용할 파라미터 집합을 생성하는 데 사용하는 클래스예요. 파라미터 생성기는 getInstance 팩토리 메서드로 만들어요. 파라미터를 생성할 객체는 알고리즘 독립적인 방식 또는 알고리즘 특정 방식으로 초기화할 수 있어요.

출처: Java API Reference

본문

알고리즘 독립적인 방식은 모든 파라미터 생성기가 공유하는 "크기(size)"와 난수 소스 개념을 사용해요. 크기는 모든 알고리즘 파라미터가 공유하지만 알고리즘마다 다르게 해석돼요. 예를 들어 DSA 알고리즘 파라미터에서 "크기"는 소수 모듈러스의 크기(비트 단위)에 해당해요. Diffie-Hellman 시스템 파라미터를 생성하려면 보통 소수 모듈러스 크기와 난수 지수 크기(둘 다 비트)를 지정해요.

클라이언트가 파라미터 생성기를 명시적으로 초기화하지 않으면 각 프로바이더가 기본 초기화를 제공해야 해요. 다만 기본값은 프로바이더에 따라 달라질 수 있으므로, 프로바이더별 기본값에 의존하지 말고 파라미터 생성기를 명시적으로 초기화하는 것이 좋아요.

Java 플랫폼의 모든 구현은 다음 표준 알고리즘과 키 크기(괄호 안)를 지원해야 해요: DiffieHellman (1024, 2048), DSA (1024, 2048).

주요 메서드

  • public final String getAlgorithm() — 이 파라미터 생성기와 연관된 알고리즘의 표준 이름을 반환해요.
  • public static AlgorithmParameterGenerator getInstance(String algorithm) throws NoSuchAlgorithmException — 지정된 알고리즘에 대한 파라미터 생성기를 반환해요.
  • public static AlgorithmParameterGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException — 지정된 알고리즘과 프로바이더에 대한 파라미터 생성기를 반환해요.
  • public static AlgorithmParameterGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException — 지정된 알고리즘과 Provider 객체에 대한 파라미터 생성기를 반환해요.
  • public final Provider getProvider() — 이 파라미터 생성기 객체의 프로바이더를 반환해요.
  • public final void init(int size) — 특정 크기로 이 파라미터 생성기를 초기화해요. 기본 SecureRandom 구현을 난수 소스로 사용해요.
  • public final void init(int size, SecureRandom random) — 특정 크기와 난수 소스로 초기화해요.
  • public final void init(AlgorithmParameterSpec genParamSpec) throws InvalidAlgorithmParameterException — 알고리즘 특정 파라미터 생성 값 집합으로 초기화해요.
  • public final void init(AlgorithmParameterSpec genParamSpec, SecureRandom random) throws InvalidAlgorithmParameterException — 알고리즘 특정 파라미터와 난수 소스로 초기화해요.
  • public final AlgorithmParameters generateParameters() — 파라미터를 생성해요. 생성된 파라미터는 init으로 초기화된 것에 따라 달라져요.
AlgorithmParameterGenerator gen =
    AlgorithmParameterGenerator.getInstance("DiffieHellman");
gen.init(2048);
AlgorithmParameters params = gen.generateParameters();

더 알아보기 (Learn more)