On the Inversion Modulo a Power of an Integer

이 논문은 소수 거듭제곱에 대한 역수 계산 알고리즘을 일반 정수 거듭제곱으로 확장하여 컴퓨터 아키텍처의 연산 특성을 활용한 효율적인 알고리즘을 제안하고, 소수 거듭제곱에 대한 기존 역수 계산 방법도 일반 정수 거듭제곱으로 일반화한 결과를 담고 있습니다.

Guangwu Xu, Yunxiao Tian, Bingxin Yang

게시일 2026-03-05
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

1. 문제 상황: "나누기"는 너무 비싸다!

컴퓨터 세상에서 숫자를 나눴을 때의 나머지 (Modulo) 를 구하는 것은 매우 중요합니다. 하지만 컴퓨터에게 **'나눗셈 (Division)'**은 **'곱셈 (Multiplication)'**보다 훨씬 느리고 에너지가 많이 드는 고된 일입니다. 마치 무거운 돌을 굴려서 이동시키는 것과 같습니다.

그래서 수학자들은 "나눗셈을 곱셈으로 바꾸면 어떨까?"라고 고민해 왔습니다. 특히, **어떤 수 aa에 대해 a×x=1a \times x = 1이 되는 수 xx (역수)**를 구하는 작업은 암호학 (RSA 등) 의 핵심인데, 이걸 구할 때 나눗셈을 피하는 것이 핵심 과제였습니다.

2. 기존 방법: "특수한 도구를 가진 전문가들"

이전까지의 방법들은 주로 특수한 상황에만 잘 작동했습니다.

  • 코치 (Koç) 의 방법: 소수 (Prime number) 의 거듭제곱 (예: $5^3,, 3^4$) 일 때만 아주 잘 작동하는 '정교한 시계공' 같은 방법입니다.
  • 허찰라 (Hurchalla) 의 방법: 컴퓨터가 가장 잘 다루는 2 의 거듭제곱 (예: $2^{64}$) 일 때 가장 빠른 '스피드 레이서' 같은 방법입니다.

하지만 문제는 **"그렇다면 10 진법 (10) 이나 60 진법 (60) 처럼 소수가 아닌 숫자를 기준으로 하거나, 2 의 거듭제곱이 아닌 일반적인 수를 다룰 때는 어떡하지?"**였습니다. 기존 방법들은 이 경우엔 너무 느리거나 아예 쓸모가 없었습니다.

3. 이 논문의 해결책: "초등학교 곱셈의 지혜"

저자 (서광우, 천윤효, 양빙신) 는 **"왜 복잡한 공식을 쓰지, 우리가 어릴 때 배운 '초등학교 곱셈 (Schoolbook Multiplication)'을 다시 보자!"**라고 제안합니다.

🏫 비유: 레고 블록으로 탑 쌓기

상상해 보세요. 거대한 탑 (큰 수) 을 쌓으려는데, 바닥에 10이라는 기준이 있습니다.

  • 기존 방법: 탑을 쌓을 때마다 무거운 나눗셈 기계를 돌려서 높이를 재고 다듬었습니다.
  • 이 논문의 방법: "아! 곱셈을 할 때 생기는 '올림 (Carry)' 숫자를 잘만 활용하면, 나눗셈 없이도 다음 블록을 정확히 끼울 수 있구나!"라고 깨달았습니다.

이들은 **컴퓨터가 가장 잘하는 '덧셈'과 '오른쪽 이동 (Shift)'**만 반복해서 역수를 구하는 알고리즘을 만들었습니다.

  • 핵심 아이디어: "나눗셈" 대신 "올림 수를 계산해서 다음 단계로 넘기는" 방식을 썼습니다.
  • 장점: 이 방법은 어떤 수 (nn) 를 기준으로 하든 (10 이든, 64 이든, 128 이든) 유연하게 작동합니다. 마치 어떤 모양의 레고 블록이든 맞춰서 탑을 쌓을 수 있는 만능 키트 같은 것입니다.

4. 실험 결과: "컴퓨터의 본능을 자극하다"

이 논문은 특히 64 비트 컴퓨터128 비트 컴퓨터 환경에서 이 방법을 테스트했습니다.

  • 결과: 기존의 fastest 방법들보다 훨씬 더 빨랐습니다.
  • 이유: 컴퓨터는 64 비트 숫자를 한 번에 처리하는 것이 가장 자연스럽습니다. 이 알고리즘은 컴퓨터의 '본능' (내장 연산) 을 그대로 활용하도록 설계되었기 때문입니다.
  • 재미있는 사실: 64 비트 컴퓨터에서 128 비트 단위로 계산을 하면, 오히려 64 비트 단위로 계산할 때보다 더 빨라지기도 했습니다. (마치 큰 화물을 한 번에 실어 나르는 트럭이, 작은 화물을 여러 번 나르는 것보다 효율적인 것과 같습니다.)

5. 두 번째 기여: "허찰라 방법의 확장"

논문 후반부에서는 허찰라 (Hurchalla) 의 유명한 방법을 더 넓은 세상으로 확장했습니다.

  • 기존: 오직 2 의 거듭제곱 ($2^s$) 만 가능.
  • 확장: **어떤 수 nn의 거듭제곱 (n2sn^{2s})**에서도 작동하도록 일반화했습니다.
  • 방법: 복잡한 미분이나 고급 수학 대신, **단순한 대수학 (Algebra)**의 마법 (식 변형) 만으로 증명했습니다. 이는 마치 "복잡한 기계 없이도 간단한 레버 하나로 무거운 물건을 들 수 있다"는 것을 보여주는 것과 같습니다.

📝 한 줄 요약

이 논문은 **"컴퓨터가 가장 좋아하는 덧셈과 이동 연산만 써서, 어떤 수를 기준으로 하든 역수를 구할 수 있는 초고속 알고리즘"**을 개발했습니다.

이는 마치 무거운 돌 (나눗셈) 을 굴리는 대신, 미끄럼틀 (올림 계산) 을 만들어서 숫자들을 순식간에 목적지로 보내는 것과 같습니다. 암호학, 통신, 그리고 모든 디지털 기술의 속도를 한 단계 업그레이드할 수 있는 중요한 발견입니다.