note [🌿 다듬는 중 · growing] [⏳ 시점에 민감 · date-sensitive]

문제를 옮겨 푼다 — 번역으로 읽는 수학과 시스템

약 14분 · 각주 3분
목차 7

합성곱(convolution)을 처음 손으로 계산하면 일거리가 꽤 많다. 두 신호 가운데 하나를 뒤집어 밀어 가며, 겹치는 값을 곱하고 적분한다. 사진의 흐림 효과도 대개 각 점을 주변 값과 섞는 합성곱이다. 그런데 푸리에 변환으로 신호를 주파수 영역에 옮기면 이 번거로운 연산이 곱셈이 된다.1

주파수 영역은 신호에 느린 떨림과 빠른 떨림이 각각 얼마나 세게, 어떤 타이밍으로 섞였는지 적은 표현이다. 음악 앱에서 저음부터 고음까지 들썩이는 막대 그래프는 그중 세기만 보여 주는 그림이다.

시간 영역:   y = f * g      두 신호의 합성곱
주파수 영역: Y = F · G      주파수별 곱셈

적분을 더 열심히 한 게 아니다. 계산하기 좋은 표현으로 문제를 옮긴 것이다. 주파수 영역에서 계산한 뒤 다시 돌아오면, 처음에 원했던 답을 얻는다. 로마 숫자 XLVII × XIX를 47 × 19로 옮겨 곱한 뒤 답만 로마 숫자로 되돌리는 요령과 닮았다. 다만 숫자 표기를 바꿔도 곱셈은 여전히 곱셈이다. 푸리에 변환은 연산의 모양 자체를 바꾼다. 물론 왕복 변환에도 비용은 든다. 그래도 그 발상은 통쾌하다.

처음엔 이게 푸리에의 특별한 재주인 줄 알았다. 그런데 파스칼 삼각형, 리만 제타 함수, 케르베로스 인증, 암호, 4색정리를 차례로 들여다보다가 비슷한 동작이 자꾸 눈에 들어왔다.

그 자리에서 계산이 막히면, 계산하기 좋은 자리로 문제를 옮겨 본다.

다만 닮았다고 전부 같은 수학은 아니다. 좌표를 바꾸는 일, 신뢰할 대상을 바꾸는 일, 원문을 복원할 수 없는 지문으로 바꾸는 일은 서로 다르다. 이 글에서는 이들을 넓게 번역이라고 부르려 한다.

닮은 모양보다 번역하고도 무엇이 남느냐가 중요하다. 소설을 번역할 때 줄거리는 반드시 살려야 하지만, 말장난은 포기할 때도 있다. 번역마다 꼭 지켜야 할 것이 따로 있다. 푸리에 변환에서는 원래 신호로 돌아갈 수 있어야 한다. 인증 티켓에서는 누구의 권한인지 확인할 수 있어야 한다. 해시에서는 원문을 보지 않고도 내용이 바뀌었는지 확인할 수 있어야 한다. 수학에서는 보존되는 양을 불변량이라 부르지만, 시스템의 보안 조건까지 모두 같은 뜻의 불변량인 것은 아니다.

표현을 바꾸는 다섯 가지 장면을 따라가 보자. 처음에는 숫자 배열을 다루고, 나중에는 남을 믿어도 되는지를 묻는다.


① 고쳐 읽는다 — 같은 숫자에서 다른 구조를 본다

가장 깔끔한 예는 파스칼 삼각형이다. 양 끝에는 1을 쓰고, 안쪽에는 바로 위 두 수의 합을 쓴다.

        1
       1 1
      1 2 1
     1 3 3 1
    1 4 6 4 1

이 작은 배열을 무엇으로 읽느냐에 따라 이야기가 달라진다.

이렇게 읽으면이런 구조가 보인다
(a+b)n(a+b)^n을 전개할 때 붙는 계수이항정리
nn개 중 kk개를 고르는 경우의 수조합
공정한 동전을 nn번 던져 앞면이 kk번 나오는 경우의 수이항분포의 확률 계산
홀수인 칸만 색칠한 무늬시어핀스키 삼각형으로 이어지는 반복 패턴
비스듬한 대각선들을 따라 더한 값피보나치 수열
베른슈타인 다항식에 들어가는 계수베지어 곡선(그림 프로그램의 펜 도구가 긋는 곡선)을 그리는 재료

예를 들어 1 4 6 4 1은 (a+b)4(a+b)^4의 계수이면서, 동전을 네 번 던졌을 때 앞면 개수별 경우의 수이기도 하다. 전체 경우의 수인 16으로 나누면 확률이 된다. 앞면이 정확히 두 번 나올 확률은 6/16이다. 숫자는 가만히 있는데, 우리가 던지는 질문이 달라진다.

동전을 많이 던지면 이 확률 분포는 익숙한 종 모양, 곧 정규분포에 가까워진다. 단, 던질 때마다 결과가 서로 영향을 주지 않고(독립) 앞면 확률이 일정해야 한다. 앞면 확률이 아주 작다면 — 복권 당첨처럼 드문 일을 센다면 — 횟수를 꽤 늘려도 정규분포로 잘 근사되지 않을 수 있다.2

방정식 x2+y2=1x^2+y^2=1을 원으로 읽는 일도 비슷하다. 식과 그림을 오가면 한쪽에서 안 보이던 성질이 다른 쪽에서 드러난다. 원을 중심 둘레로 아무리 돌려도 모양이 그대로라는 사실은 그림에서 한눈에 보이지만, 원과 직선이 만나는 정확한 좌표는 식을 풀어야 나온다. 수학의 여러 분야가 만나는 순간에는 이런 번역이 자주 등장한다.

여기서는 같은 대상을 새로 읽었다. 다음에는 표현을 바꿔 실제 계산량과 계산 순서까지 달라지게 한다.


② 대각화한다 — 얽힌 계산을 따로 떼어 낸다

여러 변수가 서로 영향을 주는 계산은 복잡하다. 그런데 방향을 잘 고르면 사정이 달라진다. 고무판을 가로로 잡아당긴다고 해 보자. 비스듬히 그린 화살표는 방향이 틀어지지만, 가로나 세로로 그린 화살표는 방향은 그대로이고 길이만 변한다. 이처럼 어떤 변환은 특정 방향의 벡터를 자기 자신의 배수로만 바꾼다.

Av=λvAv = \lambda v

AA는 그 변환을 나타내는 행렬이고, vv는 그런 방향을 가리키는 고유벡터, λ\lambda는 그 방향으로 얼마나 늘이는지 알려 주는 고유값이다. 이런 방향들로 공간 전체를 표현할 수 있다면, 복잡한 행렬 계산이 방향마다 숫자를 곱하는 일로 풀린다. 예를 들어 고무판을 같은 방식으로 열 번 잡아당겨도 행렬을 열 번 곱할 필요가 없다. 가로 방향과 세로 방향에 각자의 배율을 열 번씩 곱하면 끝이다. 이렇게 푸는 방법이 대각화다.

모든 행렬이 대각화되지는 않는다. 고무판의 윗변만 옆으로 밀어 기울이면, 방향이 그대로인 화살표는 가로 방향 하나뿐이라 공간 전체를 그런 방향들로 나타낼 수 없다. 그래도 가능한 경우에는 계산이 크게 단순해진다.

대상따로 떼어 보는 성분각 성분에서 하는 계산
선형·시간불변 필터의 합성곱주파수별 복소 지수함수 eiωte^{i\omega t}주파수 응답 H(ω)H(\omega)를 곱한다
선형 진동 모델고유한 진동 모양모드별 진동을 계산한다
양자역학의 에너지 연산자에너지 고유상태그 상태의 에너지 고유값을 다룬다

첫 줄이 도입부에서 본 푸리에 변환이다. 음악 앱의 이퀄라이저에 빗대면, 주파수 ω\omega는 저음부터 고음까지 늘어선 슬라이더의 이름표이고, 필터가 실제로 곱하는 값 H(ω)H(\omega)는 슬라이더마다 정한 배율이다. 필터는 주파수 성분 하나하나에 제 슬라이더의 배율을 곱할 뿐이다. 그래서 저음을 키워도 고음 막대는 꿈쩍하지 않는다. 물론 실제 배율은 크기뿐 아니라 떨림의 타이밍인 위상까지 바꾸는 복소수라서, 소리 크기만 조절하는 슬라이더보다 하는 일이 많다.

리만 제타 함수에서도 이와 닮은 풍경이 나온다. 다만 아직 같은 정리로 묶을 수는 없다. 제타 함수는 소수에 관한 정보를 품은 함수이고, 그 값이 0이 되는 자리를 영점이라 부른다. 리만의 명시적 공식은 소수와 그 거듭제곱을 세는 함수를 이 영점들로 표현한다. 그 안에는 다음과 같은 조각이 등장한다.3

xρ=xβeiγlog⁡x,ρ=β+iγx^\rho=x^\beta e^{i\gamma\log x}, \qquad \rho=\beta+i\gamma

여기서 ρ\rho는 제타 함수의 영점 하나이고, β\beta와 γ\gamma는 그 실수부와 허수부다. log⁡x\log x를 가로축으로 놓고 보면 이 조각은 진동하고, 크기는 xβx^\beta를 따른다. 허수부가 0이 아닌 영점 하나마다 이런 떨림이 하나씩 붙는다. 불규칙해 보이는 소수를 진동의 언어로 옮겨, 여러 음이 겹친 화음처럼 들어 보는 것이다.

리만 가설은 모든 비자명 영점(음의 짝수에 놓인 뻔한 영점을 뺀 나머지)에서 β=1/2\beta=1/2라는 주장이다. 가설이 맞다면 이 조각들의 크기가 모두 x\sqrt{x}를 따른다고 읽을 수 있다.

여기서 한 발 더 나아가, 영점의 허수부를 적절한 연산자의 고유값으로 설명하려는 힐베르트–푈리야 구상이 있다. 하지만 리만 가설을 해결해 줄 그런 연산자는 아직 알려져 있지 않다. 명시적 공식은 확립된 결과이지만, 이 공식을 실제 대각화와 연결하는 일은 남은 과제다. 닮은 그림을 얻었다고 같은 증명을 얻은 것은 아니다.


③ 신뢰를 옮긴다 — 누구 말을 믿을지 다시 정한다

이제 수식 밖으로 나가 보자. 케르베로스는 네트워크에서 “당신이 누구인지 어떻게 확인할까”를 다루는 인증 체계다.

클라이언트가 “나는 Alice다”라고 말하는 것만으로는 부족하다. 케르베로스는 신뢰하는 인증 기관인 KDC가 발급한 티켓을 쓰고, 클라이언트가 그 티켓에 묶인 세션키도 알고 있는지 확인한다.4 세션키는 KDC가 티켓을 내줄 때 함께 만드는 임시 키로, 한 벌은 클라이언트에게 주고 한 벌은 서비스만 열 수 있게 티켓 안에 넣는다. 그 티켓은 클라이언트가 서비스에 들고 간다.

자기소개만 받기: “이 컴퓨터가 Alice라니까 믿자.”
티켓 검증하기:   “인증 기관이 발급했나? 티켓에 묶인 키도 아는가?”

공연장을 떠올리면 쉽다. 입구 직원은 관객 얼굴을 하나하나 알지 못해도 매표소가 발급한 표는 알아본다. 그리고 주운 표로는 들어오지 못하도록, 표와 짝지어 받은 비밀을 아는지도 확인한다.

신원이 마법처럼 보존된 게 아니다. 누가 보증하는지, 그 보증을 어떻게 확인하는지가 바뀌었다. 그만큼 KDC와 키 관리가 중요해진다. 매표소가 뚫리면 입구에서 아무리 꼼꼼히 봐도 소용이 없다. 클라이언트가 티켓과 키를 통째로 도난당하는 문제까지 사라지지는 않는다.

교통 상태추정에서도 믿음이 자리를 옮긴다. 센서 몇 개가 꺼져도 도로의 혼잡도를 추정하려면, 남은 측정값과 교통 흐름 모델을 함께 써야 한다. 이제는 측정값만이 아니라 모델도 믿어야 한다.

이때 먼저 물을 것은 “서로 다른 도로 상태를 남은 센서로 구분할 수 있는가”다. 두 도로가 합쳐지는 지점 뒤에만 센서가 남았다고 해 보자. A 도로가 막히고 B 도로가 한산한 상태와 그 반대 상태는 센서 기록만으로 구별되지 않을 수 있다. 제어 이론에서는 이렇게 상태를 구분할 수 있는지를 관측가능성이라고 부른다.

선형 모델에서는 관측가능성 행렬로 이를 검사한다. 조건을 만족하면 이상적인 측정으로 전체 초기 상태를 구별할 수 있다.5 센서 수만 세어서는 답이 나오지 않는다. 같은 곳을 중복해서 보는 센서 열 개보다, 놓친 길목을 보는 하나가 중요할 수 있다. 다만 구별할 수 있다는 것은 출발 조건이다. 센서 잡음과 모델 오차까지 해결했다는 뜻은 아니다.

4색정리의 형식 증명에서는 검사 결과를 믿는 방식이 바뀐다. 4색정리는 각 나라가 한 덩어리로 이어진 평면 지도라면, 국경선을 맞댄 나라끼리 색이 겹치지 않게 칠하는 데 네 가지 색이면 충분하다는 정리다. 그 증명에는 원래도 컴퓨터 계산이 쓰였다. 곤티에는 그 계산과 논리를 Coq라는 증명 보조기가 확인할 수 있는 형식으로 옮겼다. 증명 보조기는 증명의 각 단계를 기계로 검사하는 프로그램이다.

이렇게 옮긴 덕분에 여러 검사 프로그램을 하나하나 믿어야 하던 부담이 줄고, 믿음은 논리 규칙을 적용하는 작은 핵심 검사기인 커널로 모였다.6 여러 사람이 만든 저울을 저마다 믿는 대신, 작아서 꼼꼼히 점검할 수 있는 저울 하나로 모든 물건을 다시 다는 것과 비슷하다.

세 사례가 보증하는 대상은 서로 다르다. 케르베로스는 신원을, 상태추정은 모델 안의 상태를, 증명 보조기는 논리적 도출을 다룬다. 그래도 셋 모두에 던져 볼 만한 질문이 있다.

믿음이 사라진 것인가, 아니면 믿어야 할 자리가 바뀐 것인가?


④ 되돌리기 어려움에 건다 — 지문과 비밀 문

푸리에 변환은 원래 신호로 돌아갈 길을 남겼다. 암호학적 해시는 다르다. SHA-256은 길이가 제각각인 데이터를 256비트 지문으로 바꾼다. 가능한 입력은 지문의 가짓수보다 훨씬 많으니, 여러 입력이 같은 지문으로 갈 수밖에 없다. 그래서 지문만으로 원문을 하나로 복원할 수는 없다.7

그렇다고 “원문을 하나로 정할 수 없다”는 사실만으로 안전한 해시가 되지는 않는다. 예를 들어 글자 수를 지문으로 쓰는 함수도 원문을 하나로 정하지 못한다. 하지만 지문이 5인 문장은 누구나 금방 지어낸다. 그러니 주어진 지문에 맞는 입력 하나를 찾는 일 자체가 어려워야 한다. 이 성질이 역상 저항성이다. 서로 다른 입력인데 지문이 같은 한 쌍을 찾기 어려워야 한다는 조건은 충돌 저항성이다.

이 어려움 덕분에 큰 파일의 지문만 비교해도 내용이 같은지 효율적으로 확인할 수 있다. 이를테면 내려받은 설치 파일의 지문이 배포처가 공개한 지문과 같다면, 원본을 따로 구해 나란히 펼쳐 보지 않아도 된다. Git의 객체 주소와 Merkle 트리(지문들을 다시 묶어 지문을 만드는 나무 구조)도 이런 아이디어를 쓴다. 다만 비교 기준인 지문은 믿을 수 있는 경로로 받아야 한다. 공격자가 배포 페이지를 손봐 파일과 지문을 함께 바꾸면, 둘이 서로 맞는지만 확인해서는 변조를 알아낼 수 없다.

해시는 암호화와도 다르다. 비밀키를 넣어 원문을 되찾는 문이 없다. 하지만 해시했다는 이유만으로 입력이 비밀이 되지는 않는다. 가능한 입력이 몇 개 안 된다면 후보를 전부 해시해 지문과 맞춰 보면 그만이다. 네 자리 PIN이라면 많아야 만 번이다.

RSA에는 그 비밀 문이 있다. 공개키로 계산하고, 대응하는 개인키로 되돌리는 구조다. 교과서 속 기본 연산은 다음과 같다.

c=me mod nc=m^e\bmod n

메시지 mm을 ee제곱한 뒤 nn으로 나눈 나머지가 암호문 cc다. 여기서 n=pqn=pq는 큰 소수 두 개를 곱한 수이고, 이 곱을 인수분해해 두 소수를 되찾으면 개인키를 계산할 수 있다.

곱하기와 되돌리기는 난도가 크게 다르다. 7 × 13 = 91은 금방 나오지만, 91만 보고 두 소수를 찾을 때는 작은 소수로 나눠 보는 등의 탐색이 필요하다. 수가 수백 자리로 커져도 곱셈은 여전히 금방이지만, 되돌리기는 지금 알려진 방법으로는 훨씬 어려워진다. 그래서 큰 수의 인수분해가 어렵다는 점이 RSA 보안의 중요한 버팀목이다. 다만 RSA를 깨는 모든 방법이 인수분해와 같다고 증명된 것은 아니다.8

수식만 잘 고른다고 충분하지는 않다. 교과서 그대로의 RSA는 같은 메시지를 넣으면 늘 같은 암호문을 낸다. 그래서 답이 ‘예’ 아니면 ‘아니오’라는 걸 아는 도청자는 두 답을 직접 암호화해 암호문과 맞춰 볼 수 있다. 앞의 PIN과 같은 수법이다. 실제 암호화에서 메시지에 무작위 값을 섞어 넣는 OAEP 같은 인코딩이 필요한 까닭 가운데 하나다.

키도 안전하게 만들어야 한다. ROCA라는 취약점은 특정 라이브러리가 소수를 고르는 방식에 패턴이 있어 개인키 복구가 쉬워진 사례다.9 패딩 처리에서 새는 응답이나 실행 시간도 공격의 단서가 된다. 종이 위의 연산을 코드로 옮기는 순간, 지켜야 할 조건이 더 생긴다.

양자컴퓨터는 ‘곱하기는 쉽고 되돌리기는 어렵다’는 이 비대칭 자체를 바꿀 수 있다. 충분한 규모의 오류정정 양자컴퓨터에서 Shor 알고리즘을 실행하면 인수분해를 효율적으로 할 수 있다. 이에 대비해 NIST는 2024년 ML-KEM, ML-DSA, SLH-DSA라는 양자내성암호 표준을 확정했다. 쓰임새는 키 설정과 전자서명으로 나뉘며, 셋이 전부 같은 종류의 암호화 알고리즘은 아니다.10

그렇다고 해시까지 똑같이 무너지지는 않는다. Grover 알고리즘은 일반적인 역상 탐색에 필요한 시도를 제곱근 수준으로 줄인다. 이상화한 탐색 횟수로는 SHA-256의 22562^{256} 규모가 21282^{128} 규모가 되는 셈이다. 지수가 반으로 줄면 횟수는 어마어마하게 준다. 그래도 남은 21282^{128} 역시 까마득한 수다. 실제 양자 회로를 돌리는 데는 따로 큰 비용이 들고, 충돌 탐색의 수치가 이와 같다고 말해서도 안 된다.11

마지막으로 재미있는 변형이 동형암호다. 보통은 암호화된 데이터로 계산하려면 먼저 복호화해야 한다. 동형암호를 쓰면 암호문 그대로 계산한 다음, 결과만 복호화할 수 있다.12 아래 식의 Enc는 암호화, Eval은 암호문 위에서 하는 계산, Dec는 복호화다.

Dec(Eval(f,Enc(x),Enc(y)))=f(x,y)\mathrm{Dec}(\mathrm{Eval}(f,\mathrm{Enc}(x),\mathrm{Enc}(y)))=f(x,y)

정확한 연산을 지원하는 방식에서는 이런 관계를 만족하도록 설계한다. 예를 들어 암호화한 가계부를 서버에 맡기면, 서버는 암호문끼리 더해 한 달 지출 합계를 구한다. 그 합계도 여전히 암호문이라서, 키를 가진 내가 열어 봐야 숫자가 보인다. 서버는 입력 평문을 직접 받지 않는다. 번역된 상태에서도 계산의 의미가 이어지게 만든 것이다. 근사 계산을 지원하는 방식에서는 위 등식에도 허용 오차가 붙는다.


⑤ 옮겨도 남는다 — 풀리는 것과 이해되는 것은 다르다

4색정리는 이미 풀렸다. 하지만 그 증명을 읽고 싶은 사람에게는 또 다른 문제가 남아 있다.

1996년에 발표된 대표적인 증명은 먼저 지도를 그래프로 옮긴다. 나라는 점으로 바꾸고, 국경을 맞댄 두 나라는 선으로 잇는다. 그다음 네 색으로 칠할 수 없는 가장 작은 지도, 곧 최소 반례가 있다면 그 안에 반드시 나타나야 할 작은 패턴들을 찾는다. 이어서 그 패턴들이 모두 최소 반례에 들어갈 수 없음을 보인다. 있어야 하는데 있을 수 없으므로 반례가 없다는 논리다.6

뼈대는 짧다. 그런데 검사할 패턴이 633개, 그 패턴 가운데 하나가 반드시 나타남을 보이는 방전 규칙이 32개다. 방전 규칙은 점마다 ‘전하’ 같은 값을 매긴 뒤, 그 값을 이웃에게 어떻게 옮길지 정한 규칙이다. 컴퓨터는 이 경우들을 확인할 수 있지만, 전체 검사를 사람이 손으로 따라가기는 어렵다. 문제를 푸는 표현은 얻었는데, 그 모든 경우를 한눈에 이해할 수 있는 표현은 얻지 못한 것이다. 모자이크 벽화를 돋보기로 한 칸씩 훑어 빠진 타일이 없다는 것은 확인했지만, 한 걸음 물러나 무슨 그림인지는 보지 못한 것과 비슷하다.

파스칼 삼각형과 나란히 놓으면 차이가 재미있다. 파스칼 삼각형에서는 작은 규칙 하나로 여러 구조를 읽었다. 4색정리에서는 간단한 질문 하나에 답하려고 방대한 경우 목록을 거쳤다. 답이 짧다고 답에 이르는 길까지 짧은 것은 아니다. 이 역사는 네 색이면 충분하다에서 더 자세히 다뤘다.

사람이 참여하는 시스템에서는 남는 것의 종류부터 다르다. 공유 세탁기 예약 방식을 설계한다고 해 보자. “공정하게 나눠 쓰자”를 “주당 예약 횟수를 같게 하자”로 옮기면 검사 가능한 규칙이 된다. 그런데 새벽 시간 한 번과 토요일 오후 한 번의 가치는 같을까. 근무 시간이 제각각인 사람들에게 같은 횟수가 같은 기회일까.

규칙을 악용하는 사람을 가려내는 일도 마찬가지다. 취소된 예약을 특정 사람이 반복해서 잡는 패턴은 조사할 단서다. 하지만 그것만으로 담합을 입증하지는 못한다. 생활 시간이 비슷해서 생긴 패턴일 수도 있고, 반대로 진짜 악용이라도 여러 계정에 나눠 잡으면 수치가 평범해 보일 수도 있다.

이런 행동을 수학으로 다룰 수 없다는 뜻은 아니다. 모델에 조건과 전략을 더 넣을 수 있다. 다만 지금 모델에 넣지 않은 행동까지 해결했다고 여겨서는 안 된다. 4색정리에서는 검사의 분량이 남고, 예약 시스템에서는 규칙 밖의 행동과 가치 판단이 남는다. 둘은 다른 한계다.


번역하고 나서 물을 것

장면쉬워지는 일다시 확인해야 할 것
파스칼 삼각형같은 배열에서 여러 구조를 읽는다읽어 낸 관계가 정확한가
대각화·푸리에 변환얽힌 연산을 성분별 계산으로 바꾼다변환 조건이 맞고 원래 답으로 돌아갈 수 있는가
인증·추정·형식 증명확인 가능한 근거에 판단을 맡긴다새로 믿게 된 기관·모델·검사기가 무엇인가
해시·암호지문으로 비교하거나 비밀을 보호한다필요한 보안 성질과 구현 조건이 충족되는가
경우 검사·사회적 규칙풀거나 검사할 수 있는 문제로 만든다분량과 모델 밖의 행동 중 무엇이 남았는가

푸리에 변환과 케르베로스 티켓과 SHA-256은 같은 이론이 아니다. 그래도 셋을 함께 보면, 쓸모 있는 습관이 하나 생긴다. 지금 표현에서 계속 막힌다면 다른 표현을 찾아보고, 옮긴 다음에는 무엇을 잃었고 무엇을 새로 믿어야 하는지 묻는 습관이다.

문제를 옮긴다고 문제가 저절로 사라지지는 않는다. 하지만 옮겨 놓아야 비로소 풀리는 문제는 있다. 그리고 풀고 난 뒤에도 남는 것을 보는 일까지가, 좋은 번역이다.

주석

  1. MIT OpenCourseWare, Signals and Systems, Lecture 9: Fourier Transform Properties. 합성곱 정리와 Parseval 관계를 다룬다. 변환의 존재 조건과 정규화 방식에 맞춰 적용해야 한다. ↩

  2. NIST, Binomial Distribution. 비율 검정 설명은 정규근사의 한 경험칙으로 min⁡{np,n(1−p)}≥5\min\{np,n(1-p)\}\ge5를 제시한다. 이 숫자가 모든 꼬리확률의 정확도를 보장하지는 않는다. ↩

  3. James Maynard, Patterns in the primes; Clay Mathematics Institute, Riemann Hypothesis. 명시적 공식의 실제 항에는 xρ/ρx^\rho/\rho 같은 계수와 다른 보정항이 붙는다. 본문은 그중 xρx^\rho의 진동과 크기를 설명한다. 개별 조각의 x\sqrt{x} 크기를 곧바로 소수 개수의 총오차와 동일시하면 안 된다. 힐베르트–푈리야 구상은 Sarnak의 Problems of the Millennium: The Riemann Hypothesis 참고. ↩

  4. RFC 4120, The Kerberos Network Authentication Service (V5). 티켓, 세션키로 암호화한 인증자, 재전송 방지와 KDC의 신뢰 가정을 함께 설명한다. ↩

  5. MIT OpenCourseWare, Dynamic Systems and Control, Chapter 24: Observability. nn차원 선형·시간불변 모델에서 관측가능성은 O=[C;CA;…;CAn−1]\mathcal O=[C;CA;\ldots;CA^{n-1}]의 계수(rank)가 nn인지로 판정한다. 교통망 자체가 언제나 이런 선형 모델에 정확히 맞는다는 뜻은 아니다. ↩

  6. Robertson–Sanders–Seymour–Thomas, The Four Color Theorem; Gonthier, A computer-checked proof of the four colour theorem; 형식 증명 코드. 633개와 32개는 모든 후속 증명의 공통 수치가 아니라 RSST 증명의 수치다. ↩ ↩2

  7. NIST FIPS 180-4, Secure Hash Standard. 본문은 SHA-256을 예로 들지만 Git의 해시가 모두 SHA-256이라는 뜻은 아니다. Git 객체에는 SHA-1과 SHA-256 형식이 있다. Git의 해시 전환 문서 참고. ↩

  8. RFC 8017, PKCS #1 v2.2. 인수분해와 RSA 역산의 관계는 Boneh–Venkatesan, Breaking RSA may not be equivalent to factoring 참고. ↩

  9. CRoCS, ROCA: Vulnerable RSA generation. ROCA는 약한 난수 때문에 서로 다른 키가 같은 소인수를 공유하게 되는 사고와 달리, 특정 소수 생성 방식의 구조적 취약점이다. ↩

  10. NIST, NIST Releases First 3 Finalized Post-Quantum Encryption Standards. ML-KEM은 키 캡슐화, ML-DSA와 SLH-DSA는 전자서명 표준이다. ↩

  11. Amy et al., Estimating the cost of generic quantum pre-image attacks on SHA-2 and SHA-3. Grover 탐색의 질의 횟수와, 오류정정을 포함한 실제 양자 회로의 자원 비용은 구분해야 한다. ↩

  12. NIST, Fully Homomorphic Encryption. 암호문 상태의 계산은 입력 평문의 노출을 줄이지만, 접근 패턴·메타데이터·사이드채널까지 자동으로 숨겨 주는 것은 아니다. ↩