암호 응용 프로그램을 작성 중이며 128 비트 정수로 작업해야합니다.라이브러리 또는 128 비트 연산을 수행하는 다른 방법이 있습니까?
표준 덧셈, 뺄셈, 곱셈, 나눗셈 및 비교 외에도 전력 및 모듈러스 기능도 필요합니다.
누구든지이 작업을 수행 할 수있는 라이브러리 또는 다른 구현에 대해 알고 있습니까? 128 비트가 아니라면 64 비트 옵션을 사용할 수 있습니까?
암호 응용 프로그램을 작성 중이며 128 비트 정수로 작업해야합니다.라이브러리 또는 128 비트 연산을 수행하는 다른 방법이 있습니까?
표준 덧셈, 뺄셈, 곱셈, 나눗셈 및 비교 외에도 전력 및 모듈러스 기능도 필요합니다.
누구든지이 작업을 수행 할 수있는 라이브러리 또는 다른 구현에 대해 알고 있습니까? 128 비트가 아니라면 64 비트 옵션을 사용할 수 있습니까?
대부분의 최신 컴파일러는 long long
유형의 사용을 통해 최소 64 비트를 제공합니다.
정말 충분하지 않습니다. 64 비트 키를 가진 암호 시스템은 무차별 공격에 취약합니다 (사소하지는 않지만). 128 비트 키를 가진 암호 시스템은 물리 법칙이 바뀌거나 새로운 계산 모델이 없다면 무차별 대입 공격에 무적입니다 (양자 컴퓨팅이 128 비트 키 해독을 2로 줄일 수 있다고 주장했습니다 64 - 비트 키 해독, 나는 그게 얼마나 정확한지 모르겠다.) –
@David Thornley : 1. 동의합니다. 2. OP는 64 비트 유형이 있는지 물어 봤고 대답했습니다. 나는 그것이 암호에 적합한 방법에 대해서는 아무 말도하지 않았다. 3. 내 가정은 64 비트 정수를 사용할 수있는 경우 128 비트 연산을 구현하는 것이 더 쉬울 것이라는 것이 었습니다. –
이 답변은 답변이 완전히 누락 된 경우에도 이미 명성을 얻은 경우에만 upvote를 얻는 이유가됩니다. – tilz0R
유한 체에서 곱셈과 거듭 제곱을위한 몽고메리 알고리즘을 찾으십시오. 나는 도서관을 모른다. 그러나 나는 조용하다는 것을 확신한다.
gcc는 uint128_t (128 비트 정수)를 지원하지만 매우 휴대 성이 높지는 않습니다.
저는 128 비트 모듈러 산술을 사용하는 모든 주요 스트림 암호 시스템을 알지 못하므로 어떤 스키마를 구현하고 있는지 궁금합니다.
고정 소수점 또는 부동 소수점? –
@ 마크 : 그는 암호를 언급하기 때문에 128 비트 정수를 원한다고 생각합니다. –
@ GregS : 아마도 사람들은 질문하는 내용에서 모호하지 않고 명확해야합니다. –