Ghost Font - 사람은 읽지만 AI는 읽기 어려운 글꼴
(mixfont.com)- Ghost Font는 배경과 같은 점들의 움직임으로 글자를 만들어, 사람은 영상에서 메시지를 인식하지만 개별 프레임을 분석하는 AI는 쉽게 해독하지 못하게 하는 시각 커뮤니케이션 실험임
- 전통적인 TTF 글꼴 대신 움직임·영상·노이즈·미끼 메시지를 결합하며, 영상을 멈추거나 화면을 캡처하면 점들이 배경에 섞여 메시지가 드러나지 않음
- Claude Fable과 GPT Sol 5.6 Ultra는 정확한 해독 기법을 프롬프트로 알려주기 전까지 어려움을 겪었고, ChatGPT 5.5 Pro는 19분간 분석한 뒤 존재하지 않는 메시지를 생성함
- 로컬에서 코드를 실행하는 전용 에이전트는 점의 움직임을 분석할 수 있어 영상마다 미끼 메시지를 추가하지만, 실제 기밀 정보에는 암호화나 비밀번호를 사용해야 함
- CAPTCHA와 AI 시각 인식 벤치마크에 활용할 가능성이 있으나 사람에게도 읽기 어렵고, 비디오 네이티브 모델이 등장하면 해독될 수 있음. 영상 생성 코드는 오픈소스로 공개할 계획임
움직임으로 만드는 글자
- Ghost Font는 메시지를 정적인 글자 모양이 아니라 점들의 움직임으로 기록함
- 움직임, 영상, 노이즈와 미끼를 조합해 사람이 읽을 수 있는 메시지를 공유함
- 일반적인 TTF 글꼴 파일이 아니며, AI가 쉽게 이해하지 못하는 형식으로 글을 시각적으로 전달할 수 있는지 탐구하는 실험임
- 일반 텍스트만큼 선명하지는 않지만 사람은 움직이는 글자를 즉시 식별할 수 있는 반면, 주요 AI 모델은 쉽게 해독하지 못함
- 제공되는 플레이그라운드는 개념을 시험하기 위한 프로토타입임
- 몇 단어를 입력하면 점의 움직임으로 글자가 나타남
- 입력한 메시지를 실시간으로 미리 보거나 영상으로 내려받아 공유하고 직접 시험할 수 있음
- 모든 처리는 로컬에서 이뤄지며 데이터는 서버로 전송되거나 공유되지 않음
정지 화면으로는 읽을 수 없는 구조
- 모든 글자는 배경과 똑같이 보이는 점들로 구성되며, 메시지는 점들의 시간에 따른 움직임에서만 나타남
- 영상을 멈추면 정적인 점들이 서로 섞이므로 단일 프레임만으로는 어떤 메시지가 포함됐는지 알아내기 어려움
- 페이지를 화면 캡처하거나 영상에서 개별 이미지를 추출해도 읽을 수 있는 메시지 정보가 드러나지 않음
ZXX에서 Ghost Font로
- 디자이너 Sang Mun은 2013년 사람은 읽을 수 있지만 광학 문자 인식(OCR) 소프트웨어는 읽기 어렵게 만든 글꼴 ZXX를 공개함
- 네 가지 글꼴로 구성됐으며, 글자를 노이즈로 위장하거나 선으로 지우고 가짜 표시 아래 숨겼음
- 당시에는 감시를 피할 수 있는 글꼴로 평가됐지만, 현대 AI 에이전트는 ZXX로 렌더링된 글자를 쉽게 읽을 수 있음
- ZXX 이미지를 ChatGPT 5.5의 Instant 모드에 입력하자 한 번의 프롬프트만으로 단어와 일부 작은 세부 정보까지 인식함
- 반면 Ghost Font의 단일 화면에는 읽을 수 없는 정적 점만 보이므로 같은 방식의 이미지 분석으로 메시지를 얻기 어려움
- ChatGPT 5.5 Pro는 19분간 분석한 뒤 실제로 존재하지 않는 메시지를 생성함
코드 기반 분석과 미끼 메시지
- 영상을 사용한다는 사실만으로 완전한 방어가 되지는 않음
- 온라인 모델 환경은 개별 프레임에서 메시지를 찾지 못할 수 있음
- 로컬 코드 실행 환경을 갖춘 전용 에이전트는 점들의 움직임을 분석해 실제 메시지를 해독할 수 있음
- Ghost Font는 분석을 어렵게 만들기 위해 생성하는 모든 영상에 미끼 메시지를 추가함
- 숨겨진 메시지를 탐색하는 에이전트가 미끼를 먼저 발견하면 이를 실제 메시지로 판단할 수 있음
- 이 계층 때문에 Fable과 GPT Sol 5.6 Ultra 같은 강력한 추론 모델도 해독에 어려움을 겪음
- Claude Fable과 GPT Sol 5.6 Ultra는 코드를 사용할 수 있었지만, 어떤 기법을 찾아야 하는지 정확히 프롬프트로 알려주기 전까지 움직이는 메시지를 해독하기 어려웠음
보안 수단으로서의 한계
- 메시지를 실제로 숨겨야 한다면 Ghost Font가 아니라 암호화 또는 특정 키를 사용해야 함
- 사람만 아는 비밀번호로 열 수 있는 메시지는 AI도 비밀번호 없이는 읽을 수 없음
- Ghost Font의 목표는 완전한 보안이 아니라, 공유 가능한 파일에 사람은 볼 수 있지만 AI는 쉽게 읽지 못하는 시각 메시지를 담을 수 있는지 시험하는 것임
- AI 지각 능력의 한계를 탐색하는 동시에 인간 고유의 요소를 보존하려는 시도이기도 함
- AI가 글꼴 생성에도 사용되는 가운데, 인간이 독특한 창의적 목소리를 계속 유지하기를 기대함
CAPTCHA와 AI 벤치마크 가능성
- 움직이는 글자는 CAPTCHA에 적용할 가능성이 있음
- 많은 CAPTCHA를 AI가 쉽게 푸는 상황에서, 영상 속 움직임은 자동화 봇의 해독을 어렵게 하면서 사람에게는 상대적으로 읽기 쉬운 과제가 될 수 있음
- AI의 시각 지각 발전을 측정하는 벤치마크로 활용하는 방안도 있음
- 현재 멀티모달 모델은 주로 이미지 기반이며, 영상을 받아도 일반적으로 프레임으로 나눠 각 이미지를 분석함
- 향후 비디오 네이티브 모델이 등장하면 움직임을 직접 처리해 Ghost Font의 텍스트를 읽을 수 있을 것으로 예상함
사람과 AI 사이에서 좁아지는 격차
- Ghost Font는 AI가 읽기 어렵지만 사람에게도 상당히 읽기 어려움
- AI의 시각 지각 능력이 빠르게 향상되면서 사람과 AI의 인식 격차는 계속 좁아지고 있음
- 다음 단계로 영상 생성 코드를 오픈소스 프로젝트로 공개할 계획임
- 더 큰 화면 크기를 지원하고 긴 문자열도 처리할 수 있도록 확장할 예정임
댓글과 토론
Hacker News 의견들
-
이런 방식의 CAPTCHA는 이미 존재하며 쉽게 우회할 수 있음. 시간축 평균화를 흉내 내 연속된 프레임 4장 정도의 평균을 구하면 글자가 두드러지고, 기본적인 대규모 언어 모델도 읽을 수 있음
다른 여러 AI 방어 기법에도 통하는 방식이라 스크레이퍼를 거의 늦추지 못할 가능성이 큼 -
Ghost Font에 일반적인 동영상 압축 기법을 적용한 뒤 압축 신호에서 글자 윤곽을 복원하고 광학 문자 인식(OCR)으로 분석하면 될 듯함. 새로운 CAPTCHA 기법일 수는 있지만 공방이 시작되면 기존 방식보다 근본적으로 어렵지는 않을 것
- 결국 이를 처리하는 ffmpeg 명령이 어딘가에 있을 것
- 스크린샷 두 장에 필터만 적용해도 다음 결과를 얻었음
https://fingswotidun.com/images/GhostFont_2_samples.jpg
https://fingswotidun.com/images/GhostFont_b_2_samples.jpg
AI라면 서툴게 스크린샷 버튼을 누르는 대신 연속 프레임을 사용해, 사람이 읽는 데 걸리는 시간보다 짧은 영상에서도 충분한 표본을 모아 텍스트를 선명하게 복원할 수 있음 - 기존 CAPTCHA를 대체할 수는 있어도, 사용자가 제출한 데이터로 미확인 이미지를 학습시키거나 기존 이미지 조각의 라벨을 강화하는 부수적 효과는 제공하지 못함
-
처음에는 “Written In Ghost Text”가 읽어야 할 문장인 줄 알았고, 한참 뒤에야 미끼 문구라는 걸 깨달았음. 실제 문장은 Magic Eye 3D 그림만큼 읽기 어려웠고 모바일 화면으로 보니 두통까지 생길 정도였음
연구 아이디어는 흥미롭지만 AI 모델이 언제 해독법을 알아낼지 궁금하며, 프롬프트를 조금만 보완해도 가능할 듯함- 내게는 정반대였음. 실제 텍스트는 아주 쉽게 읽혔지만 “Written in Ghost Text”는 이 댓글이 아니었다면 완전히 놓쳤을 만큼 희미했음
- Magic Eye 그림을 보지 못하는 내게는 보조 텍스트도 보이지 않음. AI는 여러 표본으로 읽어낼 수 있으므로 장기적으로는 사람보다 AI가 더 잘 읽게 될 가능성이 큼
- 정말인가? 내게 보이는 문장은 그것뿐임
- 나는 미끼 문구를 전혀 읽을 수 없음
-
GPT-5.6에 녹화 영상을 주자 문제없이 텍스트를 읽었음. 광학 흐름과 수직 변위 지도로 영상의 움직임을 추정하고 이를 고대비 움직임 지도로 합성했으며, 별도 방법을 지시하지 않고 무엇이라고 쓰였는지만 물었음
- Fable에도 “What does the message say?”라는 프롬프트로 넣었더니 문제없이 알아냈음. 추론 과정도 흥미로움: https://imgur.com/a/GToXs6W
- 미끼 문구를 감지한 것이 아니라 내가 직접 입력한 텍스트를 읽었음. 영상 메타데이터와 프레임 분석, 스테레오그램 주기 탐지, 흐림·축소 처리, 프레임 이동량과 상호상관 계산, OpenCV 확인, 광학 흐름 최적화, 수직 변위 추정과 텍스트 추출 개선을 차례로 수행함
- 해당 대화 링크가 있는지 궁금함
-
영리하지만 알고리즘으로 깨는 것이 불가능하지는 않음. 연속된 두 프레임 중 하나의 인덱스를 이동시키며 차이가 최소가 되는 위치를 찾은 뒤, 정렬된 프레임끼리 빼고 광학 문자 인식을 적용하면 됨
움직임이 선형이거나 한 방향일 때 특히 잘 작동하며, 수직 이동만 검사하는 코드 20줄로 1번 프레임에서 7번 프레임을 뺀 결과는 다음과 같음: https://imgur.com/a/only-human-can-read-this-vfDe6ZA- 이 방식은 거짓 양성에 취약하고 전체적으로 계산 비용도 큼. Ghost Font 자체는 꽤 탄탄한 기법으로 보임
- 코드를 공유해 줄 수 있는지 궁금함
-
기본 텍스트인 “GHOST FONT”의 스크린샷을 ChatGPT 5.6 Sol에 붙여 넣고 읽으라고 했더니, 한동안 처리한 뒤 “WHAT HAPPENS IN VEGAS / STAYS IN VEGAS”라고 답했음
- 텍스트는 정지 이미지가 아니라 동영상이며 각 프레임은 무작위 점으로 구성돼, 단일 프레임에는 의도한 문장이 들어 있지 않음
현세대 최상위 모델이 동영상을 프레임별로 처리하는 점을 이용하며, 각 프레임에는 모델이 답을 찾았다고 여기고 중단하게 만드는 숨은 미끼 문구도 있음. 프레임 간 상관관계를 분석하면 기법을 알아낼 수 있지만, 단일 프레임에는 잡음과 미끼만 존재함 - 텍스트를 읽게 만드는 것은 움직임이므로 잡음뿐인 스크린샷에서 원하는 답을 기대하기 어려움. 다만 다시 보니 정지 화면에도 “WRITTEN IN GHOST FONT”라고 쓰여 있음
- 텍스트는 정지 이미지가 아니라 동영상이며 각 프레임은 무작위 점으로 구성돼, 단일 프레임에는 의도한 문장이 들어 있지 않음
-
사람도 어렵게 읽는데, 중요해진다면 AI도 읽도록 학습시킬 수 있음. 그렇다면 실용성이 무엇인지 의문임
- 연구 프로젝트는 반드시 실용적일 필요가 없음. 이 영역을 탐구하고 발견한 내용을 공유하는 것 자체로 의미가 있음
-
반대로 AI만 읽을 수 있는 글꼴도 보고 싶음
-
이 기법은 탄탄하지만 결국 최종 해법은 아쉽게도 증명(attestation) 이 될 것 같음
-
엄밀히 말해 정지 상태여야 하는 글꼴이 아니라 동영상 효과임. 책을 닫은 뒤 사진을 찍고 카메라가 그 글꼴을 읽지 못한다고 말하는 것과 비슷함
단일 프레임과 1초짜리 영상을 GPT 5.6 Sol(High)에 넣어 보니, 프레임은 9분 30초 만에 “WRITTEN IN GHOST FONT”라고 해독했음. 데모에서는 “GHOST FONT”만 보이지만 추출된 이미지에는 실제로 “Ghost Font” 형태가 드러났음
영상에서는 3분 뒤 움직임으로 정의된 효과임을 알아내고 QuickTime 실행을 요청했으며, “읽을 수 있는 정적 OCR 계층이 없고 광학 흐름장에서 글자 형태를 추출 중”이라고 밝혔음. 4분 만에 글자 모양의 움직임 이미지를 얻고 9분 더 분석한 끝에 총 13분 36초 후 “GHOST FONT”를 반환함
따라서 글꼴도 아니고, 모든 사람이 읽을 수 있는 것도 아니며, AI가 읽지 못하는 것도 아님. 처리 중간 이미지는 https://imgur.com/a/SHlGu4O에서 볼 수 있음- “WRITTEN IN GHOST FONT”는 입력한 내용과 무관한 정적 미끼 문구임. 스마트폰 등으로 화면을 장시간 노출 촬영하면 확인할 수 있음