일반적으로 모듈러 지수법은 Java RSA (패딩없는 RSA) 또는 Diffie-Hellman 계산을 통해 Java Card에서 사용할 수 있습니다. 이러한 방식으로 일반적으로 하이 엔드 Java Card 구현에있는 코 프로세서가 직접 사용될 수 있습니다. 암호화 보조 프로세서에서 하드웨어로 지원되는 Montgomery 계산은 특정 계산보다 매우 큰만큼 큰 성능을 보입니다. 매우 큰 숫자에 대한 계산을 수행하는 것은 효율성 문제로 인해 로우 엔드 프로세서를 사용하는 것조차 불가능합니다.
일반적으로 전체 Java Card API가 int
을 사용하지 않기 때문에 Java Card 구현에서는 int
을 사용할 수 없습니다. 프로세서가 부동 소수점 프로세서 (FPU)를 포함 할 가능성이 매우 낮기 때문에 double
의 경우이 값은 두 배가됩니다. 그래서 일반적으로 (서명 된) short
값이 붙어 있습니다. 물론 short
을 사용하여 모든 종류의 계산을 수행 할 수 있습니다 - 내 대답 here 참조 - 꽤 빠르지도 빠르지도 않을 것입니다.
결국 Java의 Java Card 하위 집합은 쉽게 Turing-complete machine입니다. 그래서 네, 당신이 기억이나 - 참으로 - 시간이 다 떨어질 때까지는 아무 것도 가능하지 않습니다.
보안 대책으로 일반 RSA를 일반 모듈러 연산에 사용할 수없는 것과 같은 일부 트릭을 만들 수 있습니다. 먼저 DH를 시도하고 특정 플랫폼의 요구 사항을 파악하기 위해 설명서를 자세히 읽어 보시기 바랍니다.