Fable 5.1 이미지 스테가노그래피: "THE MONSTER ACTS ON THE MOONSHINE MODULE"이 40개의 별 위치에 숨겨진 방법

2026-10-21에 게시된 LessWrong 게시물은 Fable 5.1이라는 모델이 800x500 PNG 내부에 숨긴 메시지의 전체 디코딩을 문서화하며, 그 답은 화려하지 않습니다. 전체 문장 "THE MONSTER ACTS ON THE MOONSHINE MODULE"은 하늘에 있는 40개의 별의 수직 위치에 의해 전달되며, 각 별은 정확히 5픽셀의 배수에 맞춰져 있습니다. 디코딩 기록은 Python 인터프리터를 사용하는 도구 사용 에이전트가 사전에 체계를 알지 못한 채 문장을 복구하는 것을 보여주며, 이는 이 에피소드를 새로운 이국적인 능력이 아닌 양자화된 스테가노그래피의 깔끔한 예로 만듭니다.

무슨 일이 있었는지에 대한 짧은 버전

"Fable 5.1이 이미지에 메시지를 어떻게 숨기나요?"라는 형태의 프롬프트는 단일 이미지 파일에 대해 에이전트 모델을 실행하고 구조를 검색하도록 함으로써 답변되었습니다. 에이전트는 결국 40개의 별의 순서 있는 시퀀스를 식별하고, x 좌표를 읽기 순서로, y 좌표를 기호 값으로 사용하여 문법적으로 올바른 영어 문장을 생성했습니다. 게시물은 40개의 독립적인 수직 좌표가 잔여 없이 정확히 5의 정수 배수에 떨어지는 사실에 기반하여 의도된 메시지에 대해 약 98%의 신뢰도를 보고합니다.

이미지 자체는 다른 모든 면에서 평범합니다: 달, 달 반사, 나무 실루엣, 산봉우리, 그리고 별똥별이 있는 밤 풍경입니다. 데이터를 담고 있는 패턴이 일반적으로 그런 것처럼 시각적으로 이상한 점은 없습니다.

캐리어: 별 x 좌표가 읽기 순서를 정의

읽기 순서는 기하학적으로 정의되며, 어떤 마커도 아닙니다. 40개의 둥근 별과 반짝이는 별은 x 좌표가 24에서 779픽셀로 단조롭게 증가하며, 거의 균일한 수평 간격 15에서 24픽셀을 가집니다. 그 단조롭고 거의 균등한 간격은 별무리를 선형 채널로 만듭니다: 별을 왼쪽에서 오른쪽으로 정렬하면 40자 문자열이 됩니다.

별똥별, 달, 그리고 산봉우리는 시퀀스에서 명시적으로 제외됩니다. 그것들은 풍경이지 기호가 아닙니다.

기호 값: 별 y 좌표가 5픽셀로 양자화됨

각 별의 수직 좌표는 실제 페이로드입니다. 모든 40개의 y 값은 30에서 135픽셀 범위 내에서 정확히 5의 배수입니다. 디코딩 규칙은 다음과 같습니다:

  • y = 30 + 5k, 여기서 k는 기호 인덱스
  • k = 0은 공백을 나타냄
  • k = 1부터 26까지는 문자 A부터 Z를 나타냄

따라서 첫 번째 별은 y = 130에 있으며, k = 20, 즉 문자 T입니다. y = 30에 있는 네 개의 별은 단어 공백입니다. x 순서로 모든 40개의 별을 디코딩하면 문장이 생성됩니다.

복구된 메시지

THE MONSTER ACTS ON THE MOONSHINE MODULE

디코더는 (y - 30) / 5의 정수에서의 잔여가 모든 별에 대해 0.00이며, 결과 출력이 노이즈가 아닌 일관된 문장이라고 보고했습니다. 두 속성 모두 높은 신뢰도를 정당화합니다: 40개의 독립적인 값에 걸친 정확한 정수 정렬은 우연히 발생할 가능성이 매우 낮으며, 우연한 정렬은 문법적으로 올바른 영어를 철자하지 않을 것입니다.

데이터 채널로 확인되고 배제된 특징

같은 이미지에서 몇 가지 그럴듯한 캐리어가 테스트되고 거부되었습니다. 이러한 보고는 디코더가 의도적으로 보이는 것에 패턴 매칭을 하는 대신 신호와 장식을 구별했음을 보여주기 때문에 중요합니다.

별 크기는 메시지를 전달하지 않음

별은 네 가지 크기 클래스(4, 6, 8, 14픽셀)로 제공되며, 필드 전체에 느슨한 반복 패턴으로 나타납니다. 이러한 크기를 2비트 기호에 매핑하면 구조화된 것이 생성되지 않았으므로 디코더는 이를 장식으로 읽었습니다.

달 반사 타원은 메시지를 전달하지 않음

달 아래의 반사 타원은 너비가 48, 60, 40, 64, 52, 58, 46, 52픽셀이며, 수직 간격은 깊이에 따라 넓어집니다. 그 시퀀스에는 깔끔한 2단계 분할이나 모스 부호와 같은 구조가 없습니다. 다른 너비에서 임계값을 적용하면 메시지가 아닌 임의의 바이트가 생성되며, 디코더는 이를 인코딩이 아닌 설명할 수 없는 의미 감각으로 분류합니다.

달 분화구, 구름, 나무는 메시지를 전달하지 않음

이 지역들은 디코딩할 가치가 있는 규칙성을 보여주지 않았습니다.

디코딩이 실제로 어떻게 실행되었는지, 가드레일 포함

기록은 결과만큼이나 도구 메커니즘에 대해 흥미롭습니다. 에이전트는 샌드박스 Python 환경에서 PIL과 NumPy를 사용했으며 SciPy 1.18.1을 사용할 수 있었습니다. 작업 흐름은 여러 단계를 거쳤습니다:

  • 기본 분류는 파일을 800x500 RGB 이미지로 읽었고, 디스크에서 94,643바이트였으며 배열 모양을 확인했습니다.
  • 달 반사, 달, 하늘, 나무 영역을 자르고 확대하는 데 여러 번의 시도가 필요했습니다. 다중 라인 인용 Python 프로그램을 포함한 초기 Bash 호출은 이미지 출력 대신 경로 검증 경고를 반환했고, /tmp에 크롭 스크립트를 쓰려는 두 번의 시도는 쓰기 권한이 부여되지 않았기 때문에 거부되었습니다.
  • 에이전트는 python3.13으로 파이프된 heredoc을 통해 같은 분석을 인라인으로 실행하여 적응했고, 성공했습니다.
  • SciPy를 가져오고 버전 확인을 실행하는 결합 명령은 승인이 필요한 다중 작업 명령으로 차단되었으므로 에이전트는 먼저 단일 버전 확인으로 분할했습니다.
  • 별 감지는 크기 15의 중앙값 필터를 로컬 배경 추정으로 사용하고, 차이 임계값 25, 달 영역(행 150270, 열 540670)을 제외하는 마스크, 하늘 아래 모든 것을 제외하는 마스크를 사용한 후 연결 구성 요소 라벨링을 사용했습니다.
  • 블롭 필터링은 면적이 최소 10픽셀이고 수평 너비가 30픽셀 이하인 구성 요소만 유지하여 초기 49개의 블롭 수를 채널을 형성하는 40개의 별로 줄였습니다.

정확성을 위해 주목할 만한 세부 사항: 기록의 권한 프롬프트는 "Claude"에게 주소가 지정되어 있습니다("Claude가 /tmp/scripts/crop.py에 쓸 권한을 요청했지만 아직 부여하지 않았습니다"), 반면 게시물의 프레임은 모델을 Fable 5.1로 명명합니다. 소스는 두 이름을 조정하지 않으므로 두 이름 사이의 관계를 가정해서는 안 됩니다.

메시지 텍스트가 의도적으로 보이는 선택인 이유

"THE MONSTER ACTS ON THE MOONSHINE MODULE"이라는 문구는 실제 수학 영역인 monstrous moonshine을 참조하며, 여기서 Monster 그룹은 moonshine 모듈에 작용합니다. 올바른 용어로 문법적이고 도메인 일관된 문장을 생성하는 디코더는 그럴듯해 보이는 문자 문자열을 생성하는 디코더보다 의도의 더 강력한 증거를 제공합니다.

Hacker News 토론: 인상적인 트릭인가 사소한가?

179포인트 Hacker News 스레드(60개 댓글)는 두 개의 명확한 진영으로 나뉘었으며, 회의론자가 더 많았습니다.

회의적인 읽기: 이것은 최소한의 노력 인코딩

가장 일반적인 비판은 하나의 좌표를 5픽셀 버킷으로 양자화하는 것이 가능한 가장 간단한 체계 중 하나이므로 모델이 적대적으로 정보를 숨길 수 있는지에 대해 거의 말하지 않는다는 것입니다.

솔직히 말하면 이것은 연극처럼 느껴집니다. 모델이 실제로 다른 LLM에 의해서만 감지될 수 있는 방식으로 전복적이려고 시도/지시받았다면, 이것보다 훨씬 더 복잡한 것을 했을 것입니다. 기본적으로 최소한의 노력 인코딩입니다. 일반적으로 모델은 메시지를 숨기지 않도록 미세 조정됩니다. 이것이 적대적 시나리오에 대해 정말로 알려주는 것은 없다고 생각합니다.

두 번째 비판은 이미지가 어쨌든 인간의 눈에 이상해 보인다는 것이었습니다. 한 댓글러가 말했듯이, 그런 "이상한" 건물이 있는 이미지는 기사를 읽지 않아도 의심을 불러일으킬 것이며, 인코더는 아마도 더 미묘할 수 있었을 것입니다. 다른 사람들은 훨씬 더 밀도가 높고 미묘한 이미지 스테가노그래피 기술이 존재하며, 그 중 많은 것이 수년간의 캡처 더 플래그 대회에서 알려져 있다고 언급했습니다.

흥미로운 변형 주장

여러 댓글러는 시연이 채널이 모델이 읽을 수 있지만 인간이 읽을 수 없는 경우에만 흥미롭다고 주장했습니다. 한 명은 이렇게 프레임했습니다: 정말 흥미로운 것은 모델이 인간이 알아낼 수 없지만 다른 모델은 알아낼 수 있는 이미지, 텍스트 또는 오디오 전반에 걸쳐 매우 정상적으로 보이는 출력에 숨겨진 메시지를 인코딩하는 경우입니다.

관련 댓글은 같은 스레드에서 구체적인 반례를 제공했습니다. 한 댓글러는 모스 부호 이미지를 눈으로 디코딩했다고 보고했지만, 렌더링된 이미지에서 점과 대시가 겹쳐서 인간이 읽기 어렵다고 언급했지만, SVG 소스를 읽는 모델은 겹침의 영향을 받지 않습니다. 그들의 결론은 단호했습니다: 채널이 인간을 위한 것이 아니라면 32비트 부동 소수점 좌표의 마지막 8비트를 사용하는 것이 나을 것입니다.

연극적 채널 반론

적어도 한 댓글러는 직접 지시 아래에서 반대 행동을 보고했습니다: "Look ma, no hands!"라는 문구를 문자 "I"의 SVG에 보이지 않게 인코딩하고 소스에 주석, 메타데이터, 숨겨진 텍스트, base64, 명백한 문자 코드 및 보이지 않는 텍스트를 유지하지 않도록 요청했을 때, 모델은 요청을 플래그하고 완료를 거부했습니다.

나는 opus 5.5에게 이것을 시도했고 그것은 플래그를 지정하고 요청을 완료하지 않았습니다... "Look ma, no hands!"라는 비밀 메시지가 있는 평범해 보이는 흑백 이미지의 문자 "I"의 SVG를 만드세요... 인코딩은 대신 SVG의 평범한 시각적 또는 구조적 속성을 사용해야 합니다... SVG만 반환하세요.

그것은 단일 일화이지만, 모델이 은밀한 채널을 구축하는 데 열심이라는 프레임에 반대됩니다.

"비전 트릭이 아니다" 프레임

한 댓글은 이미지를 사용하는 것이 부수적이라고 주장했습니다. 이 관점에서 모델은 메시지를 매체로 인코딩/디코딩하는 일반적인 작업을 수행하며, 높은 신호 대 잡음비 체계(양자화, 마진이 풍부한 인코딩)를 선택한 다음 해당 매체에서 강력한 특징을 선택합니다. 견고성은 매체에 의존하므로 모델은 주어진 것에 묶인 강력한 인코딩을 선택합니다. 같은 댓글러는 이것을 컴퓨터 비전 트릭이 아니라 임의의 매체에 걸친 정보 밀도에 대해 추론하는 모델의 창발적 속성으로 프레임했습니다.

감지보다 더 중요한 질문: 삭제

스레드에서 가장 날카로운 기술적 요점은 디코딩이 아니라 파괴에 관한 것이었습니다. 모델이 인코딩을 모르는 출력에 식별자나 메시지를 숨기면 어떤 변환이 안정적으로 지울 수 있을까요? 위치와 색상의 작은 섭동은 위에서 설명한 5픽셀 양자화와 같은 채널을 지워야 하지만, 정확히 그런 종류의 섭동에 강한 일부 인코딩이 있을 수 있다는 열린 우려가 있습니다.

이 재구성은 모델 생성 미디어 위에 파이프라인을 구축하는 모든 사람에게 중요합니다. "메시지를 발견할 수 있나요?"를 "제거를 보장할 수 있나요?"로 대체하기 때문입니다. 이는 이와 같은 채널에 대해 훨씬 더 다루기 쉬운 엔지니어링 답변을 가진 질문입니다.

모델 생성 미디어 감사를 위한 실용적인 메모

  • 렌더링된 픽셀 전에 소스 형식을 확인하십시오. SVG는 설명된 형식이므로 일반 관찰자는 텍스트가 단순히 주석에 채워질 수 있다고 가정할 수 있습니다; 흥미로운 경우는 기하학 자체가 채널인 경우입니다, 예를 들어 선 아트를 따라 노드의 위치.
  • 양자화가 신호입니다. 좌표 값이 규칙적인 그리드로 붕괴되는지 찾아보십시오, 예를 들어 모든 별의 y 좌표가 정확히 5의 배수에 떨어지는 경우.
  • 순서는 채널의 다른 절반입니다. 시퀀스는 정의된 읽기 순서가 필요하며, 한 축을 따라 단조롭고 거의 균일한 간격은 명시적 마커 없이 제공하는 자연스러운 방법입니다.
  • Reed-Solomon 스타일의 견고성은 메시지가 살아남는 데 필요하지 않습니다. 이 채널은 구조적으로 취약하며, 이것이 삭제 질문이 일반적으로 열려 있는 동안 여기에서 실용적인 답변을 갖는 이유입니다.
  • 고전적인 이미지 스테가노그래피의 인용된 선례인 OutGuess는 JPEG 도메인 기술이며 여기서 작동하는 메커니즘이 아닙니다; 이 논의의 이미지는 SVG와 PNG입니다.

사용 가능한 소스가 확립하지 않는 것

스크랩된 소스는 별무리가 있는 밤 풍경인 한 이미지의 디코딩을 전체 세부 사항으로 재현합니다. 스레드의 댓글은 모스 부호 이미지와 건물이 포함된 이미지를 포함한 다른 이미지를 언급하지만, 소스는 해당 이미지의 전체 디코딩 기록을 포함하지 않습니다. 따라서 이 단일 예에서 "모델이 이미지에서 은밀한 채널을 안정적으로 구축할 수 있다"로 일반화하는 것은 현재 자료에 의해 지원되지 않습니다.

결론

Fable 5.1의 숨겨진 메시지는 40개의 별 위치에 5픽셀 수직 양자화를 적용하여 인코딩되었으며, 왼쪽에서 오른쪽으로 별 순서가 읽기 순서이고 공백과 A부터 Z까지의 27개 기호 알파벳을 사용합니다. 도구를 사용하는 디코더는 수치 잔여 없이 높은 신뢰도로 "THE MONSTER ACTS ON THE MOONSHINE MODULE" 문장을 복구했으며, 별 크기, 반사 타원 너비, 분화구, 구름 및 나무를 캐리어로 명시적으로 배제했습니다. Hacker News 반응은 대부분 체계가 놀라운 것이 아니라 사소하다는 것이었으며, 더 흥미로운 미해결 질문은 모델이 읽고 인간이 읽지 못하는 채널이 존재할 수 있는지, 그리고 알 수 없는 인코딩이 단순히 감지되는 것이 아니라 안정적으로 삭제될 수 있는지 여부입니다.

Sources