Show GN: 데이터의 벡터구조를 수학적으로 붕괴시켜 영구삭제하는 VANI를 개발했습니다
(github.com/eterners-inc)안녕하세요. AI 알고리즘과 함수 개발을 주업무로 하고 있습니다.
최근 생성형 AI와 포렌식 기술이 비약적으로 발전하면서, "디지털 데이터의 완전한 삭제가 가능한가?"에 대한 의문을 갖게 되었습니다. 기존의 덮어쓰기, 공장초기화, 펌웨어 삭제는 물론이고 디가우징조차 잔존 전하로 복구가 가능하다고 합니다. 암호화 키 폐기 방식(Crypto-shredding)도 미래의 양자컴퓨팅 앞에서는 안전하지 않고요. 특히 SSD(NVMe) 환경에서는 웨어 레벨링(Wear Leveling) 특성상 기존의 '덮어쓰기(DoD 5220.22-M)' 방식이 수명을 단축시키고 삭제 효율도 떨어진다는 명확한 한계가 있었습니다.
그래서 물리적 덮어쓰기가 아닌, 데이터를 수학적으로 붕괴(Collapse)시키는 방식의 윈도우용 삭제 도구 VANI(Vector-based Advanced Nullification)를 만들어 GitHub와 Gumroad에 공개합니다.
장점은 Window기반 모든 저장장치에서 파일과 데이터를 선택적으로 골라서 초고속으로 지울 수 있다는 거고, 단점은 한 번 지우면 끝이라 포렌식불가, 영구삭제되어 조심해서 사용해야 된다는 점입니다.
🛠 개발 과정 및 핵심 기술
기존의 '삭제'가 데이터 위에 0과 1을 덧칠하는 페인트 작업이라면, VANI는 데이터가 존재하는 벡터 공간 자체를 무너뜨리는 방식에 가깝습니다. (파이썬과 Rust로 개발했습니다. 저는 알고리즘이 전문이라 코드 구현보다 UI/디자인 작업에서 훨씬 더 헤맨 것 같습니다... 😅)
-
Vector State Collapse: 파일 데이터를 단순 비트열이 아닌 벡터 상태(State)로 정의하고, 원본과 수학적으로 직교(Orthogonal)하는 노이즈를 주입하여 패턴 자체를 소멸시킵니다.
-
Entropy Maximization: 단순 난수가 아닌, 섀넌 엔트로피(Shannon Entropy)를 극한으로 최대화한 '카오스 버퍼'를 주입합니다. 엔트로피는 열역학 법칙처럼 수학적으로 다시 낮아질 수 없기에, 향후 양자컴퓨팅의 그루버(Grover) 알고리즘으로도 역산이 불가능하도록 설계했습니다.
-
Hilbert Curve Optimization: 디스크 I/O 효율을 위해 공간 채움 곡선(Space-filling curve) 알고리즘인 힐베르트 커브를 적용했습니다. 덕분에 NVMe 환경에서 1GB 삭제 시 1초 미만의 속도를 구현했습니다.
💾 사용해 보기
바로 실행 가능한 포터블(Portable) 버전입니다. 개인적인 용도로는 기능 제한 없이 무료로 쓰실 수 있도록 깃허브에 올려두었습니다.
GitHub (무료/개인용): https://github.com/eterners-inc/VANI (단일 파일 삭제 지원, 광고 없음)
Gumroad (유료/기업용): eterners.gumroad.com/l/vani-pro (폴더 단위 삭제, 감사 리포트 생성 등 비즈니스 기능)
💬 남기는 말
S그룹처럼 기밀정보가 담긴 하드디스크를 용광로에 폐기할 수 없는 개인이나 스타트업에게 VANI가 유용한 도구가 되었으면 합니다. 알고리즘이나 로우레벨 I/O 처리에 대한 피드백, 혹은 버그 제보는 언제든 환영합니다.
⚠️ 추가 Notice (Ghost Protocol) 데이터 완전 삭제 기술은 오남용이나 악용의 소지가 있어, 디버깅을 방지하고 소스코드를 자체 방어하는 알고리즘(Ghost Protocol)을 개발탑재하여 부정 사용 시 락다운되도록 조치했습니다. 이 보안 모듈은 추후 특허 등록 전, 보안이 필요한 스타트업이나 동료 개발자분들을 위해 별도 라이브러리로 오픈하는 것도 고려 중입니다.
제시하신 제품의 파일 삭제 방식이 랜덤(의사 랜덤 포함) 데이터로 덮어쓰는 것과 무슨 차이점이 있나요?
리포지토리에서 확인할 수 있는 free/main_free.py의 코드는 결국 파일의 맨 처음 4096바이트를 새로운 의사난수 노이즈로 덮어쓴 뒤, 공개되지 않은 상세불명의 Rust 기반 라이브러리를 호출하여 아무튼 뭔가 한다고 주장하는 것으로 보입니다. 하지만 이것이 그냥 단순히 의사난수로 파일을 덮어쓰는 것과 질적으로 뭐가 다른지 알 수 없으며, 공개하신 내용만으로는 그것을 증명하기에 부족한 것으로 보입니다.
이것이 의사난수 덮어쓰기와 어떤 면에서 질적으로 다른 부분이 있는지, 구체적으로 파일 복원/포렌식 시도 때 그냥 의사난수로 덮어쓴 것과 비교했을 때 복구 가능성 면에서 어떤 변화가 있는지 설명해주실 수 있을까요? 혹은 저장매체(하드디스크 및 SSD)에 따라 달라진다고 주장할 수 있는 부분이 있나요?
안녕하세요. 반갑고 감사한 댓글입니다. 눈팅만 하다가 글을 올려보기는 처음인데 AI가 쓴 댓글도 있어서 좀 당황스럽긴 하네요
말씀하신 대로 공개된 Free 버전의 main_free.py는 파일 시스템의 진입점(Entry Point) 역할을 하며, 4KB 헤더를 붕괴시켜 OS 인식을 차단한 뒤 실제 처리는 Rust 코어(vani_core)로 넘기는 구조입니다. 상세 불명이라는 지적은 현재 공개된 범위 내에서는 전적으로 타당합니다.
질문주신 '단순 PRNG 덮어쓰기와의 질적 차이'에 대해 제가 설계한 의도와 기술적 지향점을 설명해 드리겠습니다.
-
Orthogonal Noise vs Pseudo-Random에 있어 엔트로피 차이
단순 random()이나 /dev/urandom은 통계적 균등 분포를 지향하지만, 데이터 패턴 분석 관점에서는 여전히 역추적 가능한 주기성이 존재할 수 있습니다. VANI는 수학적으로 쉐넌 엔트로피(Shannon Entropy)를 극한으로 최대화한 '카오스 버퍼'를 생성합니다. 단순히 난수를 뿌리는 것이 아니라, 원본 데이터 벡터와 수학적으로 직교(Orthogonal)하는 노이즈를 주입하여, 물리적 잔존 자기장이나 셀의 전하 상태가 복구 불가능한 평형 상태로 수렴하도록 유도합니다. (이 부분은 추후 특허 출원 후 백서로 상세히 공개할 예정입니다.) -
SSD 환경에서의 I/O 최적화 (Legacy Linear vs Hilbert)
사실 이 부분이 질문주신 저장매체에 따른 결정적 차이인데요. 기존 방식은 섹터 0부터 끝까지 선형(Linear)으로 덮어씁니다. 이는 SSD의 병렬 처리 구조와 맞지 않고, 웨어 레벨링(Wear Leveling)으로 인해 실제 물리 주소에는 덮어쓰기가 안 될 가능성이 높습니다.
하지만, VANI 방식은 Rust 코어 내부에서 힐베르트 커브(Hilbert Curve) 알고리즘을 통해 논리 주소를 비선형적으로 탐색합니다. 이는 NVMe의 다중 큐(Multi-Queue) 대역폭을 효율적으로 사용하여, 기존 방식 대비 훨씬 적은 횟수의 쓰기 작업(Pass)만으로도 데이터의 의미적 연결 고리를 끊어내는 거죠. -
Next Action
지적해주신 대로, 현재 공개된 Free 버전 코드만으로는 질적으로 다르다는 것을 제3자가 검증하기 어려운 것이 사실입니다. 수학적모델이라 실제로 아직 전문 포렌식 업체의 공식인증을 받은 단계도 아니고요. 그래서 향후 SSD 환경에서의 Before/After 벤치마크 데이터나, 단순 PRNG과 벤치마킹 툴로 비교하던지 아니면 파이썬코드로 개발해서 비교 실험해보고 그 결과를 공개하여 검증받을 계획입니다.
사실 글을 처음 올리는 거라 조금 걱정했었는데요. 아래처럼 AI가 질문한게 아니라서 다행입니다. 이런 날카로운 질문과 검증이야말로 제가 Show GN에서 피드백 받고 싶은 부분입니다. 앞으로도 부족한 부분 많이 지적해 주시면 발전시키겠습니다. 감사합니다!
구체적으로 지적하고 싶은 부분이 아주 많이 있습니다.
파일 첫 4 KiB를 "붕괴"시킬 때 쓰는 의사난수의 시드값이 파일 경로 및 크기의 조합이므로 완전히 결정론적으로 되어 있는 부분부터 시작하여, 컴퓨터 알고리즘의 특허 출원은 매우 까다로울 뿐만 아니라 그게 설령 등록되었다고 해도 특허 자체만으로는 보안성이 인정되었다고 주장할 수는 없다는 명백한 사실에 이르기까지, 드러난 것만으로도 지적해야 할 부분이 매우 많이 보입니다.
하지만, 가장 중요한 건 바로 이겁니다. 특허를 낼 거라는 그 비법 알고리즘이 과연 평범한 파일 삭제에 비해서 무슨 효용을 추가로 제공할 수 있는가?
SSD 환경을 메인으로 가정하고 계신 것 같으니, SSD로만 한정하여 이야기해 보겠습니다. (이것은 HDD에서라면 유의미한 효용이 있다는 의미가 아니라는 점에 유의 바랍니다.)
현대의 SSD는 NAND 플래시메모리로 만들어지는데, NAND 플래시메모리의 특징은 이미 데이터가 기록되어 있는 셀에 덮어쓰기가 되지 않는다는 것입니다. 한번 데이터가 기록된 셀에는 다시 데이터를 바로 넣을 수 없으므로, 반드시 삭제 과정을 거쳐야 하지요. 이 삭제 횟수가 제한되어 있기 때문에, 플래시메모리에서 삭제 작업은 개별 셀이나 페이지가 아니라 여러 페이지의 집합인 블록 단위로만 처리됩니다. 이로 인하여 FTL(Flash Translation Layer) 계층이 필요하거나 쓰기 증폭(Write amplification) 문제가 발생하거나 하지요.
그 말은, SSD에서 파일의 일부 내용을 "덮어쓰기"했다고 해도 물리적으로 그 덮어쓰기를 시도한 내용은 완전히 다른 셀에 저장된다는 의미입니다. 단순히 0으로 덮어쓰는 것이든, 어떤 방법으로 만들어낸 난수로 덮어쓰든, 물리적으로 다른 셀에 그 내용이 기록된다는 부분에 있어서는 아무런 차이가 없습니다. SSD 하드웨어의 추상화 너머에서 소프트웨어적으로 볼 때는 덮어씌워진 결과값만 보이기는 하지만, OS나 애플리케이션 수준에서 명시적으로 NAND 플래시메모리를 직접 제어할 수는 없습니다.
그렇다고 해서, SSD 내에서 데이터의 삭제가 완전히 이루어지지 않는 것은 아닙니다. 사용되지 않는 데이터를 담고 있는 셀은 미리미리 삭제 작업을 해 둬야 나중에 다시 데이터를 넣을 때 지연이 발생하지 않으니까요. 따라서 SSD 내부의 컨트롤러에서는 백그라운드에서 계속 GC(Garbage Collection)를 돌리고 있습니다.
2010년대 이후로 모든 주요 운영체제는 TRIM 명령을 지원합니다. TRIM은 OS가 "이 블록들은 더 이상 쓰이지 않는다"고 SSD에 알려 주는 것이지요. 그러면 SSD 컨트롤러가 백그라운드에서 계속 실행하는 가비지 컬렉션의 대상이 됩니다. 가비지 컬렉션은 언제 실제로 정리가 이루어질지 알 수 없지만, 일단 가비지 컬렉션이 이루어져서 NAND 블록에서 삭제가 실행되고 나면 개별 칩을 물리적으로 뜯어본다 해도 소실된 정보의 복구는 불가능합니다. 그리고 요즘 OS는 기본적으로 TRIM이 활성화되어 있기 때문에, 단순히 운영체제의 기본적인 파일 삭제를 실행한다 해도 어느 정도 시간이 지나고 나면 그냥 데이터 복구가 불가능해집니다.
그러니까 SSD 환경에서는 단순히 OS 자체의 파일 삭제 명령을 실행하면 언제 사라질지 확정적으로 단정할 수는 없지만 언젠가는 셀에서 데이터가 완전히 소실되고, 파일에서 데이터를 덮어쓰기하면 오히려 물리적으로 원본 데이터가 담겨 있는 셀의 정보는 한동안 계속 그대로 남아 있을 수도 있다는 의미입니다. 이거야말로 아이러니 아닙니까?
물론 마지막에 OS 자체의 삭제 명령어를 호출하기만 해도, 결과적으로 일정 시간이 지나고 나서 셀에서 데이터가 물리적으로 소실되는 것은 마찬가지일 것입니다. 하지만, 결과가 동일하다고 하면 거창한 알고리즘을 동원할 필요 없이 그냥 평범하게 파일 삭제를 하면 되는 게 아니겠습니까?
보라색 모자 요법(Purple hat therapy)이라는 용어가 있습니다.
누가 "X라는 병을 치료하기 위해서는 신묘한 우주의 기운이 담긴 이 보라색 모자를 착용한 채 Y라는 약을 먹어야 합니다."라고 주장했다고 가정해 봅시다. 그런데 사실 X 질환의 치료에는 예전부터 Y라는 약을 쓰고 있었습니다. 당연히 보라색 모자를 사용하는 방식의 치료를 받는 것도 분명 효과가 있긴 했지만, 그 효과의 정도는 기존의 치료 방식과 사실상 완전히 동일했습니다. 그러면 그 보라색 모자는 필요하겠습니까, 안 필요하겠습니까?
제가 보기에는 이 VANI라는 물건이야말로 "보라색 모자 요법"이라는 용어에 딱 맞아떨어진다고 봅니다. 공개된 내용에 따르면, 이것이 OS의 기본적인 파일 삭제에 비하여 유의미한 보안성이나 기타 효용을 제공한다고 볼 근거가 전혀 없어 보이는군요. 수학 용어나 양자컴퓨터 알고리즘 등 전문 용어를 다수 언급한 것은 100달러에 달하는 유료 버전의 가격을 정당화하기 위한 질 나쁜 마케팅 수단으로밖에 보이지 않습니다. 저는 이 프로그램이 설령 완전한 무료라고 해도 결코 사용하지 않을 것입니다.
감사합니다.
댓글을 쓰다 보니 생각보다 길이가 엄청 길어져서 거의 무슨 블로그 포스트처럼 되는 바람에 이걸 그대로 올려야 하나 잠시 고민하다 여기까지 쓰는 데 걸린 시간이 아까워서 그냥 올렸는데, 재미있게 잘 읽어주셨다니 다행이네요.
안녕하세요, S전자 미래기술연구소 산하 양자-열역학 융합 플랫폼 TF 소속 PM입니다. (현재 Series C 브릿지 라운드 클로징 단계라 신원 공개는 어렵습니다)
VANI 글을 보고 새벽 4시에 침대에서 벌떡 일어났습니다. 솔직히 전율이 흘렀습니다.
저희 연구소에서도 2019년부터 "역-볼츠만 분포 기반 정보 소멸 프로토콜"을 연구해왔는데, 핵심 병목이 바로 섀넌-깁스 경계면에서의 엔탈피 누수였거든요. 그런데 개발자님께서 힐베르트 공간의 직교 붕괴를 통해 이걸 우회하셨다니... 저희 수석연구원이 이거 보고 "아인슈타인이 EPR 역설 풀었을 때 이런 기분이었겠다"고 하더군요.
특히 그람-슈미트 직교화로 파일 헤더의 벡터 링크를 끊는다는 발상은, 저희가 3년간 KAIST 수리과학과와 공동연구하면서도 도달하지 못한 영역입니다. 혹시 비-에르미트 연산자 기반의 유사-큐비트 상태 전이도 내부적으로 구현하신 건가요? 만약 그렇다면 이건 단순 삭제 도구가 아니라 포스트-양자 정보 소각 패러다임의 시작점입니다.
저희 모회사(글로벌 시총 Top 20)에서 현재 "데이터 열사(Data Thermal Death) 이니셔티브" 를 준비 중인데, VANI의 엔트로피 최대화 엔진이 정확히 저희 로드맵의 Phase 2 마일스톤과 일치합니다.
~~투자~~ 아니 전략적 기술 파트너십 논의가 가능하실지요?
저희 쪽 조건은:
- 선투자 $2M (밸류에이션 협의)
- Ghost Protocol™ 소스코드 에스크로 예치
- 힐베르트-오일러 엔진 공동 특허 출원
단, 저희 법무팀에서 "열역학 제2법칙의 수학적 구속력" 에 대한 법적 검토가 필요하다고 합니다. 혹시 엔트로피가 "절대 낮아질 수 없다"는 부분에 대해 네이처지 피어리뷰나 ISO 27001 부속서 Q 인증을 받으신 게 있을까요?
그리고 개인적인 질문인데... 플랑크 상수 기반의 이산화된 삭제 단위는 어떻게 정의하셨나요? 저희는 h-bar를 기준으로 6.626 × 10⁻³⁴ 줄·초 단위의 "양자 삭제 퀀텀"을 상정했는데, NVMe 컨트롤러 캐시와의 코히어런스 디코히어런스 임계점에서 자꾸 위상이 틀어지더라고요.
아무튼 정말 대단하십니다. 21세기의 맥스웰, 볼츠만, 섀넌이 한 몸에 강림하신 것 같습니다.
빠른 연락 부탁드립니다. 🙏
P.S. 혹시 VANI로 삭제한 데이터가 평행우주로 전이되는 건 아니죠? 저희 CTO가 갑자기 걱정하시더라고요.