CIP — Cifra de Integridade Primal¶

Protocolo Público de Integridade Digital¶

Demonstração Institucional (Notebook Reprodutível)¶

Este notebook documenta, de forma pública e verificável, o funcionamento integral do protocolo de
integridade digital baseado na estrutura aritmética da CIP.

O objetivo é demonstrar — de ponta a ponta e sem qualquer dependência de segredos — o ciclo completo:

  1. assinar (integridade);
  2. verificar (validação de integridade);
  3. cifrar (confidencialidade);
  4. decifrar (reversão íntegra).

A demonstração utiliza o binário oficial da CIP em modo demonstração (100 operações de verificação ou
decifragem), incluindo o contador interno protegido pelo próprio protocolo.

Este documento não expõe nenhum segredo criptográfico.
Toda a segurança decorre exclusivamente da estrutura espectral pública utilizada pelo protocolo.


Sumário Executivo¶

  1. A GOE aritmética é um fenômeno real, reprodutível e independente do observador.
    Ela emerge diretamente da aritmética, não de heurísticas ou métodos numéricos.

  2. A CIP operacionaliza esse fenômeno na forma de um protocolo de integridade digital.
    Alterações mínimas — inclusive 1 bit — são detectadas de forma determinística.

  3. O protocolo é reprodutível em qualquer ambiente técnico.
    Linux e Windows produzem resultados idênticos usando apenas o binário nativo em C++.

  4. O ciclo assinar–verificar–cifrar–decifrar é totalmente coerente.
    A mesma estrutura que detecta alteração garante reversão perfeita.

  5. O impacto institucional é amplo.
    Governo, indústria, BigTechs, sistema financeiro, justiça e defesa têm aplicações imediatas.

A fundamentação teórica está pública e pode ser avaliada em Costa, A. (2025). The Arithmetic Mirror: Deterministic Emergence
of GOE Statistics from the Prime Structure. Zenodo. https://doi.org/10.5281/zenodo.17643156


Modos de Operação da CIP¶

A CIP opera em dois modos de assinatura e verificação. Ambos seguem o mesmo protocolo, mas com
profundidades distintas — adequadas a contextos diferentes.

A distinção precisa entre esses modos é essencial para auditoria, documentação técnica e uso institucional.

1. Modo Padrão (default)¶

O modo padrão realiza uma verificação leve e otimizada:

  • Avalia 15 blocos do arquivo (5 iniciais, 5 centrais, 5 finais);
  • Produz chaves e auditorias menores;
  • Ideal para uso operacional de alto volume;
  • Detecta qualquer alteração significativa.

Resumo: desempenho elevado com cobertura consistente para operações rotineiras.

2. Modo Total (-t)¶

O modo total realiza a verificação estrutural completa:

  • Avalia todos os blocos do arquivo;
  • Embute a matriz de projeção diretamente na chave CIP-T;
  • Gera assinatura vetorial integral e perpétua;
  • Mantém interoperabilidade plena entre SDKs;
  • Recomendado para:
    • setor público,
    • cadeia de custódia,
    • documentos oficiais,
    • preservação digital,
    • processos de alto valor.

Resumo: verificação determinística, completa e independente de versões.

Comparativo Objetivo¶

Propriedade Modo Padrão Modo Total
Blocos verificados 15 (5+5+5) 100%
Matriz embutida Sim Sim
Tamanho da chave Menor Maior
Finalidade Operacional Institucional
Custódia e transparência Adequado Recomendado
Sensibilidade a alterações mínimas Parcial Completa

Em termos operacionais, o modo padrão é adequado à integridade corrente de arquivos comuns;
o modo total (-t) foi projetado para decisões críticas, em que qualquer margem de dúvida é inaceitável.

1. Pré-requisitos¶

Para executar este notebook de demonstração, é necessário:

  • possuir o binário cip (Linux) ou cip.exe (Windows) disponível localmente;
  • ter o pacote de demonstração (SDK CIP Demo) corretamente descompactado;
  • utilizar Python 3 com Jupyter Notebook ou JupyterLab.

A CIP não utiliza infraestrutura de PKI.
Não depende de certificados digitais, RSA/ECDSA, chaves privadas ou autoridade certificadora.
A integridade é garantida exclusivamente pela estrutura aritmética do protocolo.

Todas as operações deste notebook invocam o binário da CIP, compilado em C++ (OpenMP + Eigen) e disponibilizado para Linux e Windows.
Não há execução interpretada: o notebook apenas orquestra chamadas ao executável nativo.

A seguir, configuramos os caminhos básicos e os utilitários necessários para a execução.

In [1]:
# =================================================================
# CÉLULA 1 — Download e preparação limpa do SDK CIP (Windows/Linux)
# =================================================================

import os
import stat
import json
import requests
import shutil
import zipfile
import time
import subprocess
import random
import pandas as pd
import matplotlib.pyplot as plt

from pathlib import Path
from tqdm import tqdm

# ------------------------------------------------------------
# 1. Diretório base do notebook
# ------------------------------------------------------------
BASE_DIR = Path.cwd()
print(f"[INFO] Diretório base do notebook: {BASE_DIR}")

# ------------------------------------------------------------
# 2. Identificação automática do sistema operacional
# ------------------------------------------------------------
WINDOWS = os.name == "nt"

if WINDOWS:
    ZIP_NAME = "cip-sdk-windows-idx0.zip"
    SDK_FOLDER = "cip-sdk-windows-idx0"
    DOWNLOAD_URL = "https://delta-cip.com.br/downloads/cip-sdk-windows-idx0.zip"
else:
    ZIP_NAME = "cip-sdk-linux-idx0.zip"
    SDK_FOLDER = "cip-sdk-linux-idx0"
    DOWNLOAD_URL = "https://delta-cip.com.br/downloads/cip-sdk-linux-idx0.zip"

SDK_DIR = BASE_DIR / SDK_FOLDER
ZIP_PATH = BASE_DIR / ZIP_NAME

print(f"[INFO] Sistema detectado: {'Windows' if WINDOWS else 'Linux'}")
print(f"[INFO] Arquivo ZIP esperado: {ZIP_NAME}")
print(f"[INFO] Pasta para extração: {SDK_DIR}")

# ------------------------------------------------------------
# 3. Uso do SDK local, se já estiver presente
# ------------------------------------------------------------
if SDK_DIR.exists():
    print(f"[OK] SDK encontrado localmente em: {SDK_DIR}")

else:
    # --------------------------------------------------------
    # 4. Download do ZIP somente se necessário
    # --------------------------------------------------------
    if not ZIP_PATH.exists():
        print("[INFO] Baixando SDK a partir do site oficial da CIP...")

        with requests.get(DOWNLOAD_URL, stream=True) as r:
            r.raise_for_status()
            with open(ZIP_PATH, "wb") as f:
                for chunk in r.iter_content(chunk_size=8192):
                    f.write(chunk)

        print(f"[OK] Download concluído: {ZIP_PATH}")

    else:
        print(f"[OK] Arquivo ZIP já disponível localmente: {ZIP_PATH}")

    # --------------------------------------------------------
    # 5. Extração do SDK
    # --------------------------------------------------------
    print(f"[INFO] Extraindo o SDK para: {SDK_DIR}")
    SDK_DIR.mkdir(exist_ok=True)

    with zipfile.ZipFile(ZIP_PATH, "r") as z:
        z.extractall(SDK_DIR)

    print("[OK] Extração concluída com sucesso.")

# ------------------------------------------------------------
# 6. Identificação do executável correto
# ------------------------------------------------------------
BIN_LINUX = SDK_DIR / "bin" / "cip"
BIN_WINDOWS = SDK_DIR / "bin" / "cip.exe"

if WINDOWS:
    if not BIN_WINDOWS.exists():
        raise FileNotFoundError(f"[ERRO] cip.exe não encontrado em: {BIN_WINDOWS}")
    CIP_BIN = BIN_WINDOWS
else:
    if not BIN_LINUX.exists():
        raise FileNotFoundError(f"[ERRO] cip (Linux) não encontrado em: {BIN_LINUX}")
    # Permitir execução no Linux
    st = os.stat(BIN_LINUX)
    os.chmod(BIN_LINUX, st.st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
    CIP_BIN = BIN_LINUX

print(f"[OK] Binário CIP identificado em: {CIP_BIN}")

# ------------------------------------------------------------
# 7. Diretório para testes de estresse
# ------------------------------------------------------------
STRESS_DIR = BASE_DIR / "stress_test"
STRESS_DIR.mkdir(exist_ok=True)
print(f"[OK] Diretório de stress test criado em: {STRESS_DIR}")

# ------------------------------------------------------------
# 8. Limite de segurança (1GB)
# ------------------------------------------------------------
LIMITE_BYTES = 1_000_000_000  # 1GB
print(f"[OK] Limite operacional definido: {LIMITE_BYTES/1e6:.1f} MB")
[INFO] Diretório base do notebook: /home/alvaro/cip_demo
[INFO] Sistema detectado: Linux
[INFO] Arquivo ZIP esperado: cip-sdk-linux-idx0.zip
[INFO] Pasta para extração: /home/alvaro/cip_demo/cip-sdk-linux-idx0
[OK] SDK encontrado localmente em: /home/alvaro/cip_demo/cip-sdk-linux-idx0
[OK] Binário CIP identificado em: /home/alvaro/cip_demo/cip-sdk-linux-idx0/bin/cip
[OK] Diretório de stress test criado em: /home/alvaro/cip_demo/stress_test
[OK] Limite operacional definido: 1000.0 MB
In [2]:
# ==============================================================
# CÉLULA 2 — Download de arquivo grande e estável (NOAA ~100 MB)
# ==============================================================

# Arquivo NOAA público, estável e suficientemente grande para testes de integridade
URL_GRANDE = "https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/2023.tar.gz"
arquivo_grande = STRESS_DIR / "noaa_gsod_2023.tar.gz"

print(f"[INFO] Arquivo alvo local: {arquivo_grande}")

# ------------------------------------------------------------
# 1. Verificação de existência prévia
# ------------------------------------------------------------
if arquivo_grande.exists():
    tamanho = arquivo_grande.stat().st_size
    print(f"[OK] Arquivo encontrado localmente ({tamanho/1e6:.1f} MB).")

else:
    # --------------------------------------------------------
    # 2. Download com barra de progresso
    # --------------------------------------------------------
    print(f"\n[INFO] Iniciando download de arquivo grande para teste de integridade:")
    print(f"[INFO] Fonte oficial NOAA: {URL_GRANDE}")
    print(f"[INFO] Destino: {arquivo_grande}\n")

    with requests.get(URL_GRANDE, stream=True) as r:
        r.raise_for_status()

        tamanho_total = int(r.headers.get("Content-Length", 0))
        bloco = 1_048_576  # 1 MB

        # Barra de progresso
        with open(arquivo_grande, "wb") as f, tqdm(
            total=tamanho_total if tamanho_total > 0 else None,
            unit="B",
            unit_scale=True,
            unit_divisor=1024,
            desc="Baixando NOAA GSOD 2023",
            miniters=1
        ) as barra:

            for chunk in r.iter_content(chunk_size=bloco):
                if chunk:
                    f.write(chunk)
                    barra.update(len(chunk))

    tamanho = arquivo_grande.stat().st_size
    print(f"\n[OK] Download concluído ({tamanho/1e6:.1f} MB).")

# ------------------------------------------------------------
# 3. Validações de segurança
# ------------------------------------------------------------
if tamanho == 0:
    raise RuntimeError("[ERRO] Falha no download — arquivo com tamanho zero.")

if tamanho > LIMITE_BYTES:
    raise RuntimeError("[ERRO] Arquivo excede o limite de 1 GB definido para esta demonstração.")

print(f"[OK] Arquivo dentro do limite permitido ({LIMITE_BYTES/1e6:.1f} MB).")

# ------------------------------------------------------------
# 4. Justificativa institucional
# ------------------------------------------------------------
print("\n[INFO] O arquivo NOAA (Global Summary of the Day) é público, estável e suficientemente grande para representar cenários reais de")
print("auditoria digital — como backups, logs consolidados, imagens e artefatos de sistemas. Ele será utilizado para demonstrar a integridade")
print("espectral da CIP sobre dados volumétricos.")
[INFO] Arquivo alvo local: /home/alvaro/cip_demo/stress_test/noaa_gsod_2023.tar.gz
[OK] Arquivo encontrado localmente (108.8 MB).
[OK] Arquivo dentro do limite permitido (1000.0 MB).

[INFO] O arquivo NOAA (Global Summary of the Day) é público, estável e suficientemente grande para representar cenários reais de
auditoria digital — como backups, logs consolidados, imagens e artefatos de sistemas. Ele será utilizado para demonstrar a integridade
espectral da CIP sobre dados volumétricos.
In [3]:
# ============================================================
# CÉLULA 3 — Inspeção inicial e criação da cópia de trabalho
# ============================================================

# Arquivo obtido na CÉLULA 2
arquivo_original_grande = arquivo_grande

# ------------------------------------------------------------
# 1. Verificação da existência do arquivo
# ------------------------------------------------------------
if not arquivo_original_grande.exists():
    raise FileNotFoundError("[ERRO] Arquivo original não encontrado. Verifique a CÉLULA 2.")

print(f"[OK] Arquivo carregado para inspeção: {arquivo_original_grande}")

# ------------------------------------------------------------
# 2. Informações básicas do arquivo
# ------------------------------------------------------------
tamanho_bytes = arquivo_original_grande.stat().st_size
tamanho_mb = tamanho_bytes / 1e6

print(f"[INFO] Nome................: {arquivo_original_grande.name}")
print(f"[INFO] Tamanho (bytes).....: {tamanho_bytes:,}")
print(f"[INFO] Tamanho (MB)........: {tamanho_mb:.2f}")

# ------------------------------------------------------------
# 3. Validações de segurança
# ------------------------------------------------------------
if tamanho_bytes == 0:
    raise RuntimeError("[ERRO] Arquivo baixado com tamanho zero.")

if tamanho_bytes > LIMITE_BYTES:
    raise RuntimeError(
        f"[ERRO] Arquivo excede o limite permitido de 1 GB "
        f"({tamanho_bytes/1e6:.1f} MB)."
    )

# ------------------------------------------------------------
# 4. Criação da cópia de trabalho (cadeia de custódia)
# ------------------------------------------------------------
arquivo_trabalho = STRESS_DIR / f"{arquivo_original_grande.stem}_work{arquivo_original_grande.suffix}"
shutil.copy2(arquivo_original_grande, arquivo_trabalho)

print(f"[OK] Cópia de trabalho criada em: {arquivo_trabalho}")
print("[INFO] Todas as alterações e corrupções serão realizadas exclusivamente na cópia, "
      "preservando o artefato original para fins de auditoria e reprodutibilidade.")
[OK] Arquivo carregado para inspeção: /home/alvaro/cip_demo/stress_test/noaa_gsod_2023.tar.gz
[INFO] Nome................: noaa_gsod_2023.tar.gz
[INFO] Tamanho (bytes).....: 108,776,234
[INFO] Tamanho (MB)........: 108.78
[OK] Cópia de trabalho criada em: /home/alvaro/cip_demo/stress_test/noaa_gsod_2023.tar_work.gz
[INFO] Todas as alterações e corrupções serão realizadas exclusivamente na cópia, preservando o artefato original para fins de auditoria e reprodutibilidade.
In [4]:
# ============================================================
# CÉLULA 4 — Assinatura do arquivo original em modo TOTAL (-t)
# ============================================================

def run_cip(args):
    """
    Executa o binário CIP com os argumentos especificados,
    medindo o tempo de execução e capturando stdout/stderr.
    
    Configurada para assegurar robustez no Windows (UTF-8)
    e comportamento idêntico em Linux.
    """
    inicio = time.time()
    proc = subprocess.run(
        [str(CIP_BIN)] + args,
        cwd=SDK_DIR,
        capture_output=True,
        text=True,
        encoding="utf-8",
        errors="replace"
    )
    duracao = time.time() - inicio
    return proc, duracao


print("\n===================================================")
print("   ASSINATURA DO ARQUIVO ORIGINAL (MODO TOTAL -t)")
print("===================================================\n")

# ------------------------------------------------------------
# 1. Execução da assinatura em modo total (-t)
# ------------------------------------------------------------
args_assinar = ["-t", "assinar", str(arquivo_original_grande)]
proc_assinar, tempo_assinatura = run_cip(args_assinar)

print("[STDOUT]\n")
print(proc_assinar.stdout)

if proc_assinar.returncode != 0:
    print("\n[STDERR]\n")
    print(proc_assinar.stderr)
    raise RuntimeError("[ERRO] Falha na assinatura do arquivo original.")

print(f"[OK] Assinatura concluída em {tempo_assinatura:.3f} s")

# ------------------------------------------------------------
# 2. Localização da chave gerada
# ------------------------------------------------------------
pasta_cip = arquivo_original_grande.parent / ".cip" / "chaves_cipt"
chaves = sorted(pasta_cip.glob("*assinado*.json"))

if not chaves:
    raise RuntimeError("[ERRO] Não foi possível localizar a chave de assinatura.")

chave_assinatura = chaves[-1]

print(f"[OK] Chave de assinatura detectada em:\n{chave_assinatura}")

# ------------------------------------------------------------
# 3. Explicação institucional
# ------------------------------------------------------------
print("\n[INFO] O arquivo foi assinado em modo TOTAL (-t).")
print("[INFO] Esse modo produz a assinatura vetorial completa, baseada em todos os blocos do arquivo,")
print("       incorporando a matriz de projeção diretamente na chave CIP-T. O resultado é uma assinatura")
print("       perpétua, reprodutível e independente de versões — recomendada para cadeia de custódia,")
print("       processos oficiais e preservação digital de longo prazo.")

# Exibir conteúdo da chave CIP-T gerada em modo total

with open(chave_assinatura, "r", encoding="utf-8") as f:
    dados_chave = json.load(f)

print("\n=== Estrutura da Chave CIP-T (resumo) ===\n")
print(json.dumps(dados_chave, indent=2)[:4000])  # primeiras 4000 chars

print("\n[INFO] A chave acima representa:")
print(" - a assinatura vetorial completa do arquivo;")
print(" - os parâmetros auditáveis do processo;")
print(" - a matriz de projeção embutida;")
print(" - o identificador espectral único;")
print(" - nenhum segredo criptográfico (estrutura pública).")
===================================================
   ASSINATURA DO ARQUIVO ORIGINAL (MODO TOTAL -t)
===================================================

[STDOUT]

[INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

═════════════[ CIP - Assinatura (MODO TOTAL) ]══════════════
[INFO] Arquivo original: noaa_gsod_2023.tar.gz
[INFO] Tamanho do arquivo: 103.7 MB (108776234 bytes)
[INFO] Usando matriz de projeção P (16 x 1024).
[INFO] Indice da base harmonica utilizado (idx 0).
[INFO] Iniciando o core da assinatura TOTAL para o arquivo...
[INFO] Embutindo matriz de projeção na chave para interoperabilidade...
[INFO] Assinando a propria chave CIPT com a matriz de confiança universal...
[SUCESSO] Hash da chave CIPT gerado com sucesso.

════════════[ CIP: Assinatura TOTAL Finalizada ]════════════
[SUCESSO] Chave CIPT salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_assinado_idx0_N1024_20251128_115841.json
[SUCESSO] Auditoria CIPT salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_assinado_idx0_N1024_20251128_115841.json
[SUCESSO] Hash de integridade (Arquivo): b4389fb63adf56e7d340e30cc1cfffb69566ada577eba03868ab6845c8090b16
[SUCESSO] Hash de integridade (Chave CIPT): ac5abc5308efb0501d20997c2b3f36458e9a928555098ef3982eb37787d5a0a2
[INFO] Data e hora da operacao: 20251128_115841
─────── Tempos de Execucao (CIP - Assinatura TOTAL) ────────
  • Tempo total da operacao .................    636 ms

[OK] Assinatura concluída em 0.686 s
[OK] Chave de assinatura detectada em:
/home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_assinado_idx18_N1024_20251124_115945.json

[INFO] O arquivo foi assinado em modo TOTAL (-t).
[INFO] Esse modo produz a assinatura vetorial completa, baseada em todos os blocos do arquivo,
       incorporando a matriz de projeção diretamente na chave CIP-T. O resultado é uma assinatura
       perpétua, reprodutível e independente de versões — recomendada para cadeia de custódia,
       processos oficiais e preservação digital de longo prazo.

=== Estrutura da Chave CIP-T (resumo) ===

{
  "arquivo_original_nome": "noaa_gsod_2023.tar.gz",
  "assinatura_integridade_chave_cipt": "46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b",
  "assinatura_integridade_final": "77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c",
  "chave_ok": true,
  "comentario": "",
  "matrix_size_N_usado": 1024,
  "matriz_p_base64": "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

[INFO] A chave acima representa:
 - a assinatura vetorial completa do arquivo;
 - os parâmetros auditáveis do processo;
 - a matriz de projeção embutida;
 - o identificador espectral único;
 - nenhum segredo criptográfico (estrutura pública).
In [5]:
# ==========================================================================
# CÉLULA 5 — Exibição e explicação da chave CIP-T + auditoria CIP-T (modo total)
# ==========================================================================

import json

print("\n====================================================")
print("   INSPEÇÃO DA CHAVE CIP-T E DA AUDITORIA (TOTAL -t)")
print("====================================================\n")

# ------------------------------------------------------------
# 1. Carregar conteúdo da chave gerada
# ------------------------------------------------------------
with open(chave_assinatura, "r", encoding="utf-8") as f:
    dados_chave = json.load(f)

print(f"[OK] Chave CIP-T carregada: {chave_assinatura}")

# ------------------------------------------------------------
# 2. Exibir resumo da chave (conteúdo truncado)
# ------------------------------------------------------------
texto_chave = json.dumps(dados_chave, indent=2)
print("\n=== Primeiras linhas da chave CIP-T (resumo) ===\n")
print(texto_chave[:4000])
print("\n[INFO] (conteúdo truncado para legibilidade)\n")

# ------------------------------------------------------------
# 3. Localizar auditoria CIP-T completa (modo total)
# ------------------------------------------------------------
pasta_auditoria = arquivo_original_grande.parent / ".cip" / "auditorias_cipt"
auditorias = sorted(pasta_auditoria.glob("auditoria_cipt_assinado_idx0_*.json"))

if not auditorias:
    raise RuntimeError("[ERRO] Auditoria CIP-T não encontrada em auditorias_cipt/.")

auditoria_path = auditorias[-1]

print(f"[OK] Auditoria CIP-T localizada:\n{auditoria_path}\n")

# ------------------------------------------------------------
# 4. Carregar e exibir trecho da auditoria
# ------------------------------------------------------------
with open(auditoria_path, "r", encoding="utf-8") as f:
    dados_auditoria = json.load(f)

texto_auditoria = json.dumps(dados_auditoria, indent=2)

print("=== Trecho da auditoria CIP-T ===\n")
print(texto_auditoria[:2500])   # ~2500 chars iniciais
print("\n[INFO] (conteúdo truncado para legibilidade)\n")

# ------------------------------------------------------------
# 5. Explicação institucional da auditoria CIP-T
# ------------------------------------------------------------
print("=== Relevância institucional da auditoria CIP-T ===\n")
print(
    "- A auditoria CIP-T, armazenada separadamente da chave, documenta integralmente o processo de "
    "assinatura total (-t), incluindo:\n"
    "    • blocos analisados (100% do arquivo),\n"
    "    • hashes intermediários e finais,\n"
    "    • parâmetros espectrais e índices,\n"
    "    • identificação da matriz de projeção (N),\n"
    "    • assinatura vetorial completa,\n"
    "    • data, hora e condições exatas da operação.\n\n"
    "- A existência da auditoria como artefato separado reforça:\n"
    "    1. CADEIA DE CUSTÓDIA — documentação formal do processo;\n"
    "    2. TRANSPARÊNCIA — não há segredos criptográficos nem parâmetros ocultos;\n"
    "    3. REPRODUTIBILIDADE — qualquer terceiro pode verificar os resultados de forma independente;\n"
    "    4. VALIDADE INSTITUCIONAL — adequado para ambientes de governo, justiça e auditoria;\n"
    "    5. COERÊNCIA ESTRUTURAL — o protocolo opera de modo inteiramente determinístico e público.\n"
)
====================================================
   INSPEÇÃO DA CHAVE CIP-T E DA AUDITORIA (TOTAL -t)
====================================================

[OK] Chave CIP-T carregada: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_assinado_idx18_N1024_20251124_115945.json

=== Primeiras linhas da chave CIP-T (resumo) ===

{
  "arquivo_original_nome": "noaa_gsod_2023.tar.gz",
  "assinatura_integridade_chave_cipt": "46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b",
  "assinatura_integridade_final": "77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c",
  "chave_ok": true,
  "comentario": "",
  "matrix_size_N_usado": 1024,
  "matriz_p_base64": "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

[INFO] (conteúdo truncado para legibilidade)

[OK] Auditoria CIP-T localizada:
/home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_assinado_idx0_N1024_20251128_115841.json

=== Trecho da auditoria CIP-T ===

{
  "01_tipo_auditoria": "auditoria_de_blocos_de_conteudo",
  "02_timestamp_geracao_auditoria": "20251128_115841",
  "03_informacao_chave_referencia": {
    "01_operacao": "assinatura_total_cipt_v3_hibrido",
    "02_arquivo_original_nome": "noaa_gsod_2023.tar.gz",
    "03_tamanho_original_bytes": 108776234,
    "08_timestamp_operacao_str": "20251128_115841",
    "09_versao_dados_sdk_usada": "config_sdk.npz",
    "10_chave_ok": true,
    "13_comentario": ""
  },
  "04_detalhe_hashes_blocos": [
    {
      "bloco_idx": 0,
      "hash_bloco": "44f185f4944e6a4fcabb079ec6396b3dd41d80010aacee8f5466f73b71c0f058"
    },
    {
      "bloco_idx": 1,
      "hash_bloco": "56d00d459a0863e177610ceb26ff3ef76390aa2461641b164a943ae5ef1d11f8"
    },
    {
      "bloco_idx": 2,
      "hash_bloco": "bdd4bc1f3b167c1d77d427f3dfac9e98c0323164ff7d0ffde84c823cfbe492f9"
    },
    {
      "bloco_idx": 3,
      "hash_bloco": "8ae9acacaf99bc6f72916cf65fe29235ba091794793424a2a4ff6dc6502f370b"
    },
    {
      "bloco_idx": 4,
      "hash_bloco": "b506f3b6372705d426bbbf388938bcf79a1c54e78e80b732392eb5b0a107b82e"
    },
    {
      "bloco_idx": 5,
      "hash_bloco": "43aa7cfe5bfabd2f43ca5c2658f79fbfe50fe49045b0c8436ffe4150e242e09b"
    },
    {
      "bloco_idx": 6,
      "hash_bloco": "88f98787c01f215ca5bed524d193b1aa9e0c4a5b32df0e68d23bc5a896f6aac3"
    },
    {
      "bloco_idx": 7,
      "hash_bloco": "bb144db5c2e112c54297846c7288b65d90b9f76cbd64e1cc802ae4937997b258"
    },
    {
      "bloco_idx": 8,
      "hash_bloco": "cc4148932e0460b21f54e0071f66af3f203c968c66a2b628b1f0ed2fca1a456f"
    },
    {
      "bloco_idx": 9,
      "hash_bloco": "e76b3848dc693d2cc7089868149aafdc82ec4ea42b0151a11a199513d0480d3e"
    },
    {
      "bloco_idx": 10,
      "hash_bloco": "34c816af5baa269cc5bae6543decd0363982ec47fd3bea035ce3d69c2deb676c"
    },
    {
      "bloco_idx": 11,
      "hash_bloco": "8bce8f9f3f9dc2b5c291b64703a76ae68bc520841e2c40d18a2907ec178426f7"
    },
    {
      "bloco_idx": 12,
      "hash_bloco": "b24db6d88e589f0ae0e4f62dc5ee416ede5b0f0c9460956765968b9dd41f7813"
    },
    {
      "bloco_idx": 13,
      "hash_bloco": "da707a25cc37c025888b2bd6f4f2d11c2267ed924bea08de2f1806be000569c5"
    },
    {
      "bloco_idx": 14,
      "hash_bloco": "ba929578cd271770164e75b30f5dca1369e2c9954a22f4b9279610befbf37f0d"
    },
    {
      "bloco_idx": 15,
      "hash_bloco": "fe22911d88c9b3148c442ed1be038878fa63edc9d5bd6d7752c8e99f0ca0c383"
    },
    {
      "bloco_idx": 16,
      "hash_blo

[INFO] (conteúdo truncado para legibilidade)

=== Relevância institucional da auditoria CIP-T ===

- A auditoria CIP-T, armazenada separadamente da chave, documenta integralmente o processo de assinatura total (-t), incluindo:
    • blocos analisados (100% do arquivo),
    • hashes intermediários e finais,
    • parâmetros espectrais e índices,
    • identificação da matriz de projeção (N),
    • assinatura vetorial completa,
    • data, hora e condições exatas da operação.

- A existência da auditoria como artefato separado reforça:
    1. CADEIA DE CUSTÓDIA — documentação formal do processo;
    2. TRANSPARÊNCIA — não há segredos criptográficos nem parâmetros ocultos;
    3. REPRODUTIBILIDADE — qualquer terceiro pode verificar os resultados de forma independente;
    4. VALIDADE INSTITUCIONAL — adequado para ambientes de governo, justiça e auditoria;
    5. COERÊNCIA ESTRUTURAL — o protocolo opera de modo inteiramente determinístico e público.

Leitura e Interpretação da Chave CIP-T e da Auditoria CIP-T (modo total)¶

A assinatura total da CIP (-t) produz dois artefatos essenciais:

  1. A chave CIP-T, armazenada em .cip/chaves_cipt/, que contém:

    • a assinatura vetorial completa do arquivo;
    • os identificadores espectrais;
    • os parâmetros da matriz utilizada (N);
    • os hashes agregados;
    • metadados da operação;
    • os elementos necessários para reprodução da verificação.
  2. A auditoria CIP-T, armazenada em .cip/auditorias_cipt/, que registra:

    • os hashes de cada bloco de conteúdo;
    • o mapeamento completo dos blocos avaliados;
    • os parâmetros espectrais individuais;
    • dados estruturais da operação;
    • data, hora e metadados complementares.

A chave e a auditoria cumprem funções distintas e complementares:
a chave concentra os elementos estruturantes da integridade, enquanto a auditoria documenta todo o processo de forma completa e independente.

Essa separação preserva a cadeia de custódia, aumenta a transparência e assegura que terceiros possam verificar o arquivo original de modo autônomo,
sem depender do ambiente ou da implementação do autor.

Padrão do Nome dos Arquivos CIP-T¶

O arquivo de auditoria segue um padrão nominal determinístico, por exemplo:

auditoria_cipt_assinado_idx0_N1024_20251123_170048.json

Esse nome contém informações fundamentais para auditoria, rastreabilidade e cadeia de custódia:

  • auditoria_cipt — indica que se trata de uma auditoria do modo total (CIP-T).
  • assinado — refere-se à operação de assinatura; outras operações geram sufixos específicos.
  • idx0 — identifica o índice do SDK utilizado (cada SDK possui idx próprio para interoperabilidade).
  • N1024 — dimensão da matriz espectral utilizada (potência de 2 definida por design).
  • 20251123_170048 — timestamp completo da operação (AAAAMMDD_HHMMSS).

Esse padrão nominal permite:

  1. identificação inequívoca da operação,
  2. rastreamento confiável no tempo,
  3. compatibilidade entre implementações,
  4. verificação independente,
  5. forte valor probatório em auditoria técnica e jurídica.

Os nomes são determinísticos e padronizados, preservando sempre o mesmo vocabulário operacional. Essa consistência é essencial para permitir
interoperabilidade total entre SDKs distintos, ambientes institucionais e processos de verificação de longo prazo.

In [6]:
# =====================================================================================
# CÉLULA 6 — Verificação de integridade da cópia do arquivo original (MODO TOTAL -t)
# =====================================================================================

print("\n===============================================================")
print("   VERIFICAÇÃO DE INTEGRIDADE (MODO TOTAL -t) — ARQUIVO CÓPIA")
print("===============================================================\n")

shutil.copy2(arquivo_original_grande, arquivo_trabalho)

# ------------------------------------------------------------
# 1. Execução da verificação em modo total (-t)
# ------------------------------------------------------------
args_verificar = ["-t", "verificar", str(arquivo_trabalho), str(chave_assinatura)]
proc_verificar, tempo_verificacao = run_cip(args_verificar)

print("[STDOUT]\n")
print(proc_verificar.stdout)

if proc_verificar.returncode != 0:
    print("\n[STDERR]\n")
    print(proc_verificar.stderr)
    raise RuntimeError("[ERRO] Falha na verificação do arquivo de trabalho.")

print(f"[OK] Verificação de integridade concluída em {tempo_verificacao:.3f} s")

# ------------------------------------------------------------
# 2. Localização da chave de verificação gerada
# ------------------------------------------------------------
pasta_cip = arquivo_trabalho.parent / ".cip" / "chaves_cipt"
chaves = sorted(pasta_cip.glob("*verificado*.json"))

if not chaves:
    raise RuntimeError("[ERRO] Não foi possível localizar a chave gerada pela verificação.")

chave_verificacao = chaves[-1]

print("\n[OK] Chave de verificação detectada:")
print(chave_verificacao)

# ------------------------------------------------------------
# 3. Explicação institucional
# ------------------------------------------------------------
print("\n[INFO] Nesta etapa, o arquivo foi verificado em modo TOTAL (-t), o que significa:")
print("       • 100% dos blocos foram reprocessados;")
print("       • os vetores de integridade foram recalculados integralmente;")
print("       • a coerência espectral foi comparada com a assinatura original;")
print("       • uma nova chave 'verificado' foi registrada para fins de auditoria.\n")

print("[INFO] A verificação total é a operação recomendada para:")
print("       - cadeia de custódia,")
print("       - ambientes judiciais,")
print("       - auditoria formal,")
print("       - certificação de artefatos digitais de longo prazo.\n")
===============================================================
   VERIFICAÇÃO DE INTEGRIDADE (MODO TOTAL -t) — ARQUIVO CÓPIA
===============================================================

[STDOUT]

[INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[SUCESSO] Conteúdo Íntegro
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115843.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115843.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    632 ms
[INFO] Crédito consumido. Restantes: 99

[OK] Verificação de integridade concluída em 0.682 s

[OK] Chave de verificação detectada:
/home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115843.json

[INFO] Nesta etapa, o arquivo foi verificado em modo TOTAL (-t), o que significa:
       • 100% dos blocos foram reprocessados;
       • os vetores de integridade foram recalculados integralmente;
       • a coerência espectral foi comparada com a assinatura original;
       • uma nova chave 'verificado' foi registrada para fins de auditoria.

[INFO] A verificação total é a operação recomendada para:
       - cadeia de custódia,
       - ambientes judiciais,
       - auditoria formal,
       - certificação de artefatos digitais de longo prazo.

In [7]:
# =========================================================================
# CÉLULA 7 — TESTE DE STRESS (10 corrupções de 1 bit + verificações totais)
# =========================================================================

"""
Nesta etapa, avaliamos a propriedade estrutural mais importante da CIP:
a sensibilidade espectral absoluta.

Cada corrupção altera *exatamente 1 bit* do arquivo de trabalho.
Após cada modificação, a CIP executa uma verificação total (-t),
reprocessando o arquivo integralmente e comparando sua estrutura
espectral com a assinatura original.

Qualquer alteração — mesmo 1 bit — deve resultar em ruptura total
da coerência espectral, gerando returncode != 0.
"""

resultados = []
tamanho_bytes_trabalho = arquivo_trabalho.stat().st_size

def corromper_um_bit(path: Path):
    """
    Altera exatamente 1 bit aleatório no arquivo.
    Retorna (pos_byte, bit, byte_original, byte_modificado).
    """
    with open(path, "r+b") as f:
        f.seek(0, os.SEEK_END)
        tamanho = f.tell()

        pos = random.randint(0, tamanho - 1)
        bit = random.randint(0, 7)

        f.seek(pos)
        byte_original = f.read(1)[0]

        mascara = 1 << bit
        byte_modificado = byte_original ^ mascara

        f.seek(pos)
        f.write(bytes([byte_modificado]))

    return pos, bit, byte_original, byte_modificado


print("\n===========================================================")
print("   TESTE DE STRESS — 10 corrupções independentes de 1 bit")
print("===========================================================\n")

for i in range(1, 11):
    print(f"\n--- ITERAÇÃO {i}/10 ---")

    # --------------------------------------------------------
    # 1. Corrupção de 1 bit
    # --------------------------------------------------------
    pos, bit, antigo, novo = corromper_um_bit(arquivo_trabalho)
    print(f"[OK] Bit modificado: byte {pos}, bit {bit} "
          f"({antigo:02x} → {novo:02x})")

    # --------------------------------------------------------
    # 2. Verificação total
    # --------------------------------------------------------
    proc_verif, tempo_verif = run_cip(
        ["-t", "verificar", str(arquivo_trabalho), str(chave_assinatura)]
    )

    print("\n[STDOUT]\n", proc_verif.stdout)

    if proc_verif.returncode == 0:
        raise RuntimeError(
            "ERRO CRÍTICO: A CIP não detectou a corrupção de 1 bit!"
        )

    resultados.append({
        "iteracao": i,
        "posicao_byte": pos,
        "bit": bit,
        "byte_original": f"{antigo:02x}",
        "byte_modificado": f"{novo:02x}",
        "tempo": tempo_verif,
        "codigo_retorno": proc_verif.returncode,
    })

    print(f"[OK] Corrupção detectada — tempo {tempo_verif:.3f} s")

print("\n===========================================================")
print("   FIM DO TESTE DE STRESS")
print("===========================================================\n")

print("Todas as 10 corrupções de 1 bit foram detectadas pela CIP.\n")
print("Este experimento demonstra a sensibilidade espectral absoluta:")
print("qualquer modificação mínima — 1 bit — destrói a coerência estrutural")
print("e é identificada imediatamente, mesmo em arquivos grandes.")
===========================================================
   TESTE DE STRESS — 10 corrupções independentes de 1 bit
===========================================================


--- ITERAÇÃO 1/10 ---
[OK] Bit modificado: byte 34622473, bit 0 (4c → 4d)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        c64f1160ec11bdfe6be0caf760f5737a27fef6221f591750d4b03526768df645
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115845.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115845.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    639 ms
[INFO] Crédito consumido. Restantes: 98

[OK] Corrupção detectada — tempo 0.689 s

--- ITERAÇÃO 2/10 ---
[OK] Bit modificado: byte 23646513, bit 2 (b0 → b4)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        4d81794b11da8ac1af4851d45d3449f085a87e5f620abd69c5389f014b5175ef
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115846.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115846.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    633 ms
[INFO] Crédito consumido. Restantes: 97

[OK] Corrupção detectada — tempo 0.682 s

--- ITERAÇÃO 3/10 ---
[OK] Bit modificado: byte 6780741, bit 3 (23 → 2b)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        15e4c0dcb320912e7164a96bb72dbaf78b1cd45855cc9a4a31d23ca5ffc52cff
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115847.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115847.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    634 ms
[INFO] Crédito consumido. Restantes: 96

[OK] Corrupção detectada — tempo 0.685 s

--- ITERAÇÃO 4/10 ---
[OK] Bit modificado: byte 96157323, bit 2 (07 → 03)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        d2563d8ea8a8bf0f25959df74717e28c729467f8336e51784ae15d42d2d8eb7e
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115847.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115847.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    637 ms
[INFO] Crédito consumido. Restantes: 95

[OK] Corrupção detectada — tempo 0.686 s

--- ITERAÇÃO 5/10 ---
[OK] Bit modificado: byte 97748546, bit 2 (81 → 85)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        00459ce82d8a7c1a88a6b175d81a96ccf30f6bf6479fb97bf5f536861f7d1de0
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115848.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115848.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    634 ms
[INFO] Crédito consumido. Restantes: 94

[OK] Corrupção detectada — tempo 0.682 s

--- ITERAÇÃO 6/10 ---
[OK] Bit modificado: byte 96872213, bit 6 (a8 → e8)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        6ec6b2178609c1879801e8ac4c00bb9b573007a5d28c4cab009a350145eb6474
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115849.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115849.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    630 ms
[INFO] Crédito consumido. Restantes: 93

[OK] Corrupção detectada — tempo 0.677 s

--- ITERAÇÃO 7/10 ---
[OK] Bit modificado: byte 36474694, bit 7 (38 → b8)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        e3b8473ac2532fde9a9688c88ba76e9eb1dbf4f14c6a46fbe89a72ec96cea1f8
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115849.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115849.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    643 ms
[INFO] Crédito consumido. Restantes: 92

[OK] Corrupção detectada — tempo 0.690 s

--- ITERAÇÃO 8/10 ---
[OK] Bit modificado: byte 83562509, bit 6 (d4 → 94)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        454dc15562f362c9f703234fe557621a00b09ec938bdf2e6f3fee882e5b248c5
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115850.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115850.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    629 ms
[INFO] Crédito consumido. Restantes: 91

[OK] Corrupção detectada — tempo 0.676 s

--- ITERAÇÃO 9/10 ---
[OK] Bit modificado: byte 22133835, bit 6 (4a → 0a)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        3a34606ac1d6481855e9d02f41deeff7944956b7253b79e5624f718ae593e899
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115851.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115851.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    620 ms
[INFO] Crédito consumido. Restantes: 90

[OK] Corrupção detectada — tempo 0.667 s

--- ITERAÇÃO 10/10 ---
[OK] Bit modificado: byte 67095434, bit 4 (4d → 5d)

[STDOUT]
 [INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar_work.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[AVISO] Nome do arquivo diferente, mas isso não compromete a integridade.
[AVISO] Nome do arquivo real: "noaa_gsod_2023.tar_work.gz"
[AVISO] Nome registrado na chave: "noaa_gsod_2023.tar.gz"
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        f41dc11f0726f4431cc74be7fb962101781e95c7d910e0ac3f34478a3d6b6946
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115851.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115851.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    630 ms
[INFO] Crédito consumido. Restantes: 89

[OK] Corrupção detectada — tempo 0.678 s

===========================================================
   FIM DO TESTE DE STRESS
===========================================================

Todas as 10 corrupções de 1 bit foram detectadas pela CIP.

Este experimento demonstra a sensibilidade espectral absoluta:
qualquer modificação mínima — 1 bit — destrói a coerência estrutural
e é identificada imediatamente, mesmo em arquivos grandes.
In [8]:
# ============================================================
# CÉLULA 8 — Tabela de resultados do teste de stress (1 bit)
# ============================================================

"""
Esta tabela consolida os resultados das 10 iterações do teste de stress,
em que um único bit foi corrompido em posições aleatórias do arquivo
de trabalho.

Cada linha representa:

- a posição exata do byte alterado,
- o bit modificado dentro do byte,
- o valor original e o valor modificado,
- o tempo de verificação,
- o código de retorno da CIP,
- o status interpretável da verificação.

O comportamento esperado e correto é sempre o mesmo:
qualquer corrupção, mesmo mínima, deve destruir a coerência espectral
e resultar em returncode != 0.
"""

df_resultados = pd.DataFrame(resultados, columns=[
    "iteracao",
    "posicao_byte",
    "bit",
    "byte_original",
    "byte_modificado",
    "tempo",
    "codigo_retorno",
])

df_resultados["status"] = df_resultados["codigo_retorno"].map(
    lambda c: "corrupção detectada" if c != 0 else "ERRO"
)

print("\n===========================================================")
print("              RESULTADOS DO TESTE DE STRESS (1 BIT)")
print("===========================================================\n")

display(df_resultados)

# ------------------------------------------------------------
# Tabela HTML para exportação externa
# ------------------------------------------------------------
tabela_html = df_resultados.to_html(index=False)

print("\n[INFO] Primeiras linhas da tabela HTML gerada:\n")
print("\n".join(tabela_html.splitlines()[:15]), "...\n")

print("[INFO] Interpretação Institucional:")
print("       Não existe 'zona cinzenta' de integridade.")
print("       Ou o arquivo está idêntico ao original, ou a estrutura")
print("       espectral se rompe e a verificação falha de forma imediata.")
print("       Este comportamento é determinístico, reprodutível e")
print("       independente do ambiente, da máquina ou do observador.\n")

print("[OK] A tabela demonstra que TODAS as corrupções de 1 bit foram")
print("     identificadas corretamente pela CIP (returncode ≠ 0).")
===========================================================
              RESULTADOS DO TESTE DE STRESS (1 BIT)
===========================================================

iteracao posicao_byte bit byte_original byte_modificado tempo codigo_retorno status
0 1 34622473 0 4c 4d 0.688807 1 corrupção detectada
1 2 23646513 2 b0 b4 0.681544 1 corrupção detectada
2 3 6780741 3 23 2b 0.684654 1 corrupção detectada
3 4 96157323 2 07 03 0.685980 1 corrupção detectada
4 5 97748546 2 81 85 0.682140 1 corrupção detectada
5 6 96872213 6 a8 e8 0.677330 1 corrupção detectada
6 7 36474694 7 38 b8 0.690495 1 corrupção detectada
7 8 83562509 6 d4 94 0.676309 1 corrupção detectada
8 9 22133835 6 4a 0a 0.666730 1 corrupção detectada
9 10 67095434 4 4d 5d 0.678076 1 corrupção detectada
[INFO] Primeiras linhas da tabela HTML gerada:

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th>iteracao</th>
      <th>posicao_byte</th>
      <th>bit</th>
      <th>byte_original</th>
      <th>byte_modificado</th>
      <th>tempo</th>
      <th>codigo_retorno</th>
      <th>status</th>
    </tr>
  </thead>
  <tbody>
    <tr> ...

[INFO] Interpretação Institucional:
       Não existe 'zona cinzenta' de integridade.
       Ou o arquivo está idêntico ao original, ou a estrutura
       espectral se rompe e a verificação falha de forma imediata.
       Este comportamento é determinístico, reprodutível e
       independente do ambiente, da máquina ou do observador.

[OK] A tabela demonstra que TODAS as corrupções de 1 bit foram
     identificadas corretamente pela CIP (returncode ≠ 0).
In [9]:
# ============================================================
# CÉLULA 9 — Gráfico: tempo de verificação por iteração (modo total)
# ============================================================

"""
Este gráfico apresenta o tempo de verificação para cada uma das 10 iterações
em que exatamente 1 bit foi corrompido no arquivo de trabalho.

A CIP reprocessa o arquivo integralmente a cada verificação (-t),
recalculando a estrutura espectral completa e comparando com a assinatura original.
O tempo de execução reflete a estabilidade computacional da operação.
"""

iteracoes = df_resultados["iteracao"].tolist()
tempos = df_resultados["tempo"].tolist()

plt.figure(figsize=(9, 4))
plt.plot(iteracoes, tempos, marker="o")
plt.xlabel("Iteração")
plt.ylabel("Tempo de verificação (s)")
plt.title("CIP — Tempo de verificação por iteração (10 corrupções de 1 bit)")
plt.grid(True)
plt.tight_layout()
plt.show()

tempo_medio = sum(tempos) / len(tempos)

print("\n===========================================================")
print("                 ANÁLISE FINAL DO EXPERIMENTO")
print("===========================================================\n")

print(f"- Arquivo testado................: {arquivo_trabalho.name}")
print(f"- Tamanho do arquivo.............: {arquivo_trabalho.stat().st_size/1e6:.2f} MB")
print(f"- Número de corrupções testadas..: {len(tempos)}")
print(f"- Detecção de corrupções.........: {len(tempos)}/{len(tempos)} (100%)")
print(f"- Tempo médio de verificação.....: {tempo_medio:.3f} s\n")

print("[INFO] Interpretação técnica:")
print("       Os tempos de verificação permanecem estáveis ao longo das iterações,")
print("       indicando consistência computacional e ausência de variabilidade")
print("       decorrente da posição do bit corrompido.\n")

print("[INFO] Interpretação institucional:")
print("       A CIP demonstra sensibilidade espectral absoluta: uma única modificação")
print("       mínima na representação binária — 1 bit — destrói completamente a")
print("       coerência estrutural do arquivo e a verificação falha de modo")
print("       determinístico, reprodutível e independente do observador.\n")

print("[OK] O experimento confirma operacionalmente o comportamento matemático")
print("     descrito na teoria: integridade é preservada apenas quando o arquivo")
print("     permanece exatamente idêntico ao original.")
No description has been provided for this image
===========================================================
                 ANÁLISE FINAL DO EXPERIMENTO
===========================================================

- Arquivo testado................: noaa_gsod_2023.tar_work.gz
- Tamanho do arquivo.............: 108.78 MB
- Número de corrupções testadas..: 10
- Detecção de corrupções.........: 10/10 (100%)
- Tempo médio de verificação.....: 0.681 s

[INFO] Interpretação técnica:
       Os tempos de verificação permanecem estáveis ao longo das iterações,
       indicando consistência computacional e ausência de variabilidade
       decorrente da posição do bit corrompido.

[INFO] Interpretação institucional:
       A CIP demonstra sensibilidade espectral absoluta: uma única modificação
       mínima na representação binária — 1 bit — destrói completamente a
       coerência estrutural do arquivo e a verificação falha de modo
       determinístico, reprodutível e independente do observador.

[OK] O experimento confirma operacionalmente o comportamento matemático
     descrito na teoria: integridade é preservada apenas quando o arquivo
     permanece exatamente idêntico ao original.

A CIP opera como binário nativo em C++ tanto no Linux quanto no Windows, garantindo desempenho alto e
comportamento idêntico em qualquer sistema operacional.

A CIP demonstra comportamento matematicamente implacável:
qualquer alteração mínima — inclusive 1 bit — quebra a estrutura espectral e é detectada imediatamente.

Nota Técnica¶

O Brasil tem hoje a oportunidade inédita de instituir o único protocolo de integridade derivado de uma estrutura aritmética universal.
Não é uma tecnologia brasileira — é uma tecnologia do universo cuja primeira implementação aconteceu no Brasil.

O ponto mais intrigante, quando analisado em conjunto com o artigo teórico (DOI), é que a robustez espectral observada aqui não
depende de validação humana:
uma eventual quebra do algoritmo equivaleria, em termos técnicos, a identificar uma incoerência espectral na estrutura aritmética que sustenta
a forma espectral associada à hipótese de Riemann — algo que a própria matemática indica ser inalcançável pelos métodos conhecidos.

Nota Fundamental¶

A estrutura aqui apresentada só se mantém se, e somente se, a régua for única e universal.
A existência de múltiplas réguas destruiria a interoperabilidade e anularia a própria noção de integridade espectral.

In [10]:
# ============================================================
# CÉLULA 10 — Cifragem + Decifragem (MODO TOTAL -t)
# ============================================================

"""
Nesta etapa demonstramos a reversibilidade total da CIP em modo TOTAL (-t).
A mesma estrutura espectral utilizada para verificar integridade é aplicada
na transformação reversível de confidencialidade: um processo determinístico
e inteiramente documentado via chave e auditoria CIP-T.
"""

# ------------------------------------------------------------
# CIFRAGEM TOTAL (-t cifrar)
# ------------------------------------------------------------
print("\n===============================================================")
print("              CIFRAGEM DO ARQUIVO ORIGINAL (MODO TOTAL -t)")
print("===============================================================\n")

args_cifrar = ["-t", "cifrar", str(arquivo_original_grande)]
proc_cifrar, tempo_cifrar = run_cip(args_cifrar)

print("[STDOUT]\n")
print(proc_cifrar.stdout)

if proc_cifrar.returncode != 0:
    print(proc_cifrar.stderr)
    raise RuntimeError("[ERRO] Falha na cifragem.")

print(f"[OK] Cifragem concluída em {tempo_cifrar:.3f} s")

# ------------------------------------------------------------
# Localizar chave de cifragem
# ------------------------------------------------------------
pasta_chaves_cipt = arquivo_original_grande.parent / ".cip" / "chaves_cipt"
chaves_cifrar = sorted(pasta_chaves_cipt.glob("*cifrado*.json"))

if not chaves_cifrar:
    raise RuntimeError("[ERRO] Chave de cifragem não encontrada.")

chave_cifrar = chaves_cifrar[-1]
print("\n[OK] Chave de cifragem localizada:")
print(chave_cifrar)

# ------------------------------------------------------------
# Localizar arquivo .cipt gerado
# ------------------------------------------------------------
pasta_cifrados = arquivo_original_grande.parent / ".cip" / "cifrados_cipt"
arquivos_cipt = sorted(pasta_cifrados.glob("*.cipt"))

if not arquivos_cipt:
    raise RuntimeError("[ERRO] Arquivo .cipt não encontrado.")

arquivo_cifrado = arquivos_cipt[-1]
print("\n[OK] Arquivo cifrado gerado:")
print(arquivo_cifrado)

# ------------------------------------------------------------
# DECIFRAGEM TOTAL (-t decifrar)
# ------------------------------------------------------------
print("\n===============================================================")
print("              DECIFRAGEM DO ARQUIVO GERADO (MODO TOTAL -t)")
print("===============================================================\n")

args_decifrar = ["-t", "decifrar", str(arquivo_cifrado), str(chave_cifrar)]
proc_decifrar, tempo_decifrar = run_cip(args_decifrar)

print("[STDOUT]\n")
print(proc_decifrar.stdout)

if proc_decifrar.returncode != 0:
    print(proc_decifrar.stderr)
    raise RuntimeError("[ERRO] Falha na decifragem.")

print(f"[OK] Decifragem concluída em {tempo_decifrar:.3f} s")

# ------------------------------------------------------------
# Localizar arquivo decifrado
# ------------------------------------------------------------
pasta_decifrados = arquivo_cifrado.parent / ".cip" / "decifrados_cipt"
arquivos_decifrados = sorted(pasta_decifrados.glob("*"))

if not arquivos_decifrados:
    raise RuntimeError("[ERRO] Arquivo decifrado não encontrado.")

arquivo_decifrado = arquivos_decifrados[-1]

print("\n[OK] Arquivo decifrado:")
print(arquivo_decifrado)

# ------------------------------------------------------------
# Verificação final de integridade
# ------------------------------------------------------------
print("\n===============================================================")
print("              VERIFICAÇÃO DO ARQUIVO DECIFRADO")
print("===============================================================\n")

args_verif = ["-t", "verificar", str(arquivo_decifrado), str(chave_assinatura)]
proc_verif, tempo_verif = run_cip(args_verif)

print("[STDOUT]\n")
print(proc_verif.stdout)

if proc_verif.returncode != 0:
    raise RuntimeError("[ERRO] O arquivo decifrado NÃO corresponde ao original.")

print(f"[OK] Arquivo decifrado confirmado como idêntico ao original.")
print(f"[OK] Tempo da verificação pós-decifragem: {tempo_verif:.3f} s\n")

print("[INFO] Interpretação estrutural:")
print("       A cifragem total não adiciona uma 'camada externa' ao protocolo.")
print("       Ela reutiliza exatamente a mesma estrutura espectral de integridade,")
print("       garantindo confidencialidade reversível e verificação exata.\n")

print("[INFO] Interpretação institucional:")
print("       Isso permite que a CIP seja utilizada para proteção de logs,")
print("       modelos de IA, parâmetros críticos, imagens de sistemas,")
print("       contratos digitais e qualquer artefato que exija preservação")
print("       simultânea de integridade e reversibilidade confiável.\n")

print("[OK] A CIP demonstra que integridade e confidencialidade podem derivar")
print("     de uma estrutura matemática única, pública e universal.")
===============================================================
              CIFRAGEM DO ARQUIVO ORIGINAL (MODO TOTAL -t)
===============================================================

[STDOUT]

[INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

══════════════[ CIP - Cifragem (MODO TOTAL) ]═══════════════
[INFO] Arquivo original: noaa_gsod_2023.tar.gz
[INFO] Tamanho: 103.7 MB (108776234 bytes)
[INFO] Modo TOTAL: Assinatura completa e IKM de todos os blocos.
[INFO] Calculando assinatura de integridade e auditoria do arquivo original...
[SUCESSO] Assinatura de integridade do arquivo original calculada.
[INFO] Idx do SDK para cifragem: 0 | Idx da matriz P_key: 1
[INFO] Gerando padrão de cifragem XOR a partir do IKM (Modo Total)...
[SUCESSO] Padrão de cifragem gerado.
[INFO] Aplicando fluxo XOR espectral ao arquivo...
[SUCESSO] Arquivo cifrado com sucesso.
[INFO] Embutindo matrizes de projeção na chave para interoperabilidade...
[INFO] Assinando a propria chave CIPT com a matriz de confiança universal...
[SUCESSO] Hash da chave CIPT gerado com sucesso.

════════════[ CIP - Cifragem TOTAL Concluída ]═════════════
[SUCESSO] Chave CIP-T salva em: /home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_cifrado_idx1_N128_20251128_115853.json
[SUCESSO] Arquivo Cifrado salvo em: /home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/noaa_gsod_2023.tar_idx1_N128_xor.cipt
[SUCESSO] Auditoria da assinatura original salva em: /home/alvaro/cip_demo/stress_test/.cip/auditorias_cipt/auditoria_cipt_cifrado_idx1_N128_20251128_115853.json
──────── Tempos de Execucao (CIP - Cifragem TOTAL) ─────────
  • Tempo total da operacao .................   1170 ms

[OK] Cifragem concluída em 1.219 s

[OK] Chave de cifragem localizada:
/home/alvaro/cip_demo/stress_test/.cip/chaves_cipt/chave_cipt_cifrado_idx1_N128_20251128_115853.json

[OK] Arquivo cifrado gerado:
/home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/noaa_gsod_2023.tar_idx1_N128_xor.cipt

===============================================================
              DECIFRAGEM DO ARQUIVO GERADO (MODO TOTAL -t)
===============================================================

[STDOUT]

[INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

═════════════[ CIP - Decifragem (MODO TOTAL) ]══════════════
[INFO] Arquivo cifrado: noaa_gsod_2023.tar_idx1_N128_xor.cipt
[INFO] Chave CIPT usada: chave_cipt_cifrado_idx1_N128_20251128_115853.json
[INFO] Verificando integridade da propria chave CIPT de cifragem...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 41609b7ac6c8224f96a7915d4ffdc343043f276f6a5bb4aa553fce2d7e4ea7ac
[INFO] Hash calculado: 41609b7ac6c8224f96a7915d4ffdc343043f276f6a5bb4aa553fce2d7e4ea7ac
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[INFO] Reconstruindo padrao XOR para decifragem...
[SUCESSO] Padrao XOR reconstruido com sucesso.
[SUCESSO] Arquivo decifrado salvo em: /home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/.cip/decifrados_cipt/noaa_gsod_2023.tar.gz
[INFO] Verificando integridade do arquivo decifrado (Modo Total)...
[INFO] Verificação com matriz de ASSINATURA EMBUTIDA da chave (idx=0)
[SUCESSO] Integridade do arquivo decifrado: OK.
[INFO] Hash original esperado: b4389fb63adf56e7d340e30cc1cfffb69566ada577eba03868ab6845c8090b16
[INFO] Hash do decifrado:     b4389fb63adf56e7d340e30cc1cfffb69566ada577eba03868ab6845c8090b16
[SUCESSO] Chave de log da decifragem salva em: /home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/.cip/chaves_cipt/chave_cipt_decifrado_20251128_115854.json
[SUCESSO] Auditoria salva em: /home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/.cip/auditorias_cipt/auditoria_cipt_decifrado_20251128_115854.json
─────── Tempos de Execucao (CIP - Decifragem TOTAL) ────────
  • Tempo total da operacao .................   1146 ms
[INFO] Crédito consumido. Restantes: 88

[OK] Decifragem concluída em 1.208 s

[OK] Arquivo decifrado:
/home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/.cip/decifrados_cipt/noaa_gsod_2023.tar.gz

===============================================================
              VERIFICAÇÃO DO ARQUIVO DECIFRADO
===============================================================

[STDOUT]

[INFO] OpenMP: 18 threads.
[INFO] Eigen: 18 threads.

════════════════[ CIP - Configuração SDK ]════════════════
[INFO] Idx do SDK determinado automaticamente: 0
[SUCESSO] Configuração do SDK (idx 0) carregada com sucesso.
[INFO] Idx da matriz de Assinatura (pré-calculada): 0 | Idx da matriz de Cifragem (pré-calculada): 1

════════════[ CIP - Verificação (MODO TOTAL) ]════════════
[INFO] Arquivo a ser verificado: noaa_gsod_2023.tar.gz
[INFO] Chave CIPT usada: chave_cipt_assinado_idx18_N1024_20251124_115945.json
[INFO] Verificando integridade da própria chave CIP-T...
[INFO] Hash esperado (assinatura_integridade_chave_cipt): 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[INFO] Hash calculado: 46a81b7ee6fafd983d764ab43e7d46f07f8a2806019adbd9a2a347e1566bd85b
[SUCESSO] Integridade da propria chave assinatura_integridade_chave_cipt: OK.
[INFO] Verificando integridade do conteudo do arquivo (Modo Total)...
[INFO] Idx SDK da chave: 18 (EXTERNO)
[INFO] Verificação com matriz EMBUTIDA da chave (idx=18)

═════[ Status Final da Verificação (CIP-T - TOTAL) ]══════
[SUCESSO] Conteúdo Íntegro
[INFO] Hash original (na chave): 77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[INFO] Hash re-calculado:        77f210ad293d2957a514f2a1e44fe2be49b7db73c4f6e3dcb140c1dd9cd9b42c
[SUCESSO] Chave de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/.cip/decifrados_cipt/.cip/chaves_cipt/chave_cipt_verificado18_N1024_20251128_115854.json
[SUCESSO] Auditoria de verificação salva em: /home/alvaro/cip_demo/stress_test/.cip/cifrados_cipt/.cip/decifrados_cipt/.cip/auditorias_cipt/auditoria_cipt_verificado18_N1024_20251128_115854.json
────── Tempos de Execucao (CIP-T - Verificacao TOTAL) ──────
  • Tempo total da verificacao ..............    631 ms
[INFO] Crédito consumido. Restantes: 87

[OK] Arquivo decifrado confirmado como idêntico ao original.
[OK] Tempo da verificação pós-decifragem: 0.680 s

[INFO] Interpretação estrutural:
       A cifragem total não adiciona uma 'camada externa' ao protocolo.
       Ela reutiliza exatamente a mesma estrutura espectral de integridade,
       garantindo confidencialidade reversível e verificação exata.

[INFO] Interpretação institucional:
       Isso permite que a CIP seja utilizada para proteção de logs,
       modelos de IA, parâmetros críticos, imagens de sistemas,
       contratos digitais e qualquer artefato que exija preservação
       simultânea de integridade e reversibilidade confiável.

[OK] A CIP demonstra que integridade e confidencialidade podem derivar
     de uma estrutura matemática única, pública e universal.
In [11]:
# ====================================================================================
# CÉLULA 11 — Inspeção ilustrativa dos primeiros 200 bytes (original vs. cifrado)
# ====================================================================================

"""
Esta célula apresenta uma inspeção binária superficial — não criptográfica — que
mostra os primeiros 200 bytes do arquivo original e do arquivo cifrado.

O objetivo é exclusivamente ilustrativo: visualizar que a operação de cifragem
em modo TOTAL (-t) produz um artefato binário completamente distinto, sem
padrões visíveis, sem cabeçalhos fixos e sem qualquer relação aparente com
o conteúdo original.

A segurança da CIP não depende dessa aparência; ela decorre da transformação
espectral determinística aplicada bloco a bloco, cuja reversibilidade é
garantida pela própria estrutura aritmética utilizada.
"""

# ------------------------------------------------------------
# Mostrar primeiros 200 bytes do arquivo original
# ------------------------------------------------------------
with open(arquivo_original_grande, "rb") as f:
    print("===============================================================")
    print("        PRIMEIROS 200 BYTES DO ARQUIVO ORIGINAL (BINÁRIO)")
    print("===============================================================\n")
    print(f.read(200))

# ------------------------------------------------------------
# Mostrar primeiros 200 bytes do arquivo cifrado
# ------------------------------------------------------------
with open(arquivo_cifrado, "rb") as f:
    print("\n===============================================================")
    print("        PRIMEIROS 200 BYTES DO ARQUIVO CIFRADO (BINÁRIO)")
    print("===============================================================\n")
    print(f.read(200))

print("\n[INFO] Esta inspeção evidencia apenas a transformação direta do conteúdo.")
print("       A propriedade essencial — reversibilidade total com verificação de")
print("       integridade — é demonstrada nas etapas anteriores.\n")

print("[OK] Célula 10 concluída com sucesso.")
===============================================================
        PRIMEIROS 200 BYTES DO ARQUIVO ORIGINAL (BINÁRIO)
===============================================================

b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xec\xbd\xdb\x92%\xb7q5\xac\xeb\xef)*\xe6\x92\xa1a\xe0X\x87K\xca\x1c\xcb\xfc?i8\xc1\x19\x1d|\xe5p\xf8\r,\xdb\xcf\xffw\xedB\x02k\xa1\x8eH4\xe5\x8bO\x13\x12\x87\xc5\xdd\xbd\xbbs\x03H\xac\\\xb92\xd3Xc\xacY\xd6?\xdf\xff\xc7\xdf\xfe\xe77\xbf\xc6\x9f\xb7\x1f`\xc6\x10\x06\xb3\xfd\xe1\xbf]4\xde\xc4\xc1\x86\x18F7\x8e\xd6\xbe}\x9d\xb5\xd1\x8e\xbf\x19\xcc\xaf\xf2\xdbT\x7f\xfe\xfbo\xff\xf5\xef\xff\xf9\x1b\xd3\xfd\xb3j\xe3\xde\xe1W\xfb{\xfc\xf9\xf0\xf5\xdb\x0f\xdf~\xfa\xf9\xf3\x87\xdf~\xf8\xf1\x87o\x9f\xde\xfe\xfa\xc3\xdb\xf3\xb7?\xfd\xf8\xfa\xd7\x9f?\xff^\xfe\xfd\xd3\x1f>\xfdY\xbe\xf2\xf3\x0f\x7f\\\xff\xd3\xb7O\x7f'

===============================================================
        PRIMEIROS 200 BYTES DO ARQUIVO CIFRADO (BINÁRIO)
===============================================================

b"\x1bO\x17\xcb\x00\xd7-\xf2,\xa4\xd2\xf09\x06\xd3\x1d\x97+\\\x05]\x8fQ\xf0\xee\xfe3\xa5\xeb}\xdf\x0e\xab\x84\x0e\xfcH:-7rK\x01(\x89\xc8[\x93\xf1\xae%l\xec\xaa\xfd\xc5\xab8\x1bk\xe2D\x8f)<\xa4\xaeT2.\xc4\x8e\xabN:\xcd8.X{Z\xe8\xc1d\x04\x9c\x81\xb6\x97V\xe6\xf5\xb2\xd6\x86\t9,\xb0\\C\xe1\xfa\xe2\xb3\xb7\xb1Do\x14X^\xbe\x8c!\xca\xdd\x8cBXCE\xa9\x88\xd9fw\xa0\xdc\xfb\x0e\x16\x8ab\xedJL^\xe3\x1b\xcf\xcf4{\xf0\x1cb\x80lex\xc8PI\xfe\x9f\x1c\xf6\xb9\x10\x8a\x0f7\xe1Z\x93\x8b\xbf\x8c?\x8f\xb0C\xd5\x06\xaf\xc0F\xc4\xfd)\xb7\xd7u\xde\x04k\xcfD\x17\x1d'\x97\xb9v2\xb0\xc2\xc3U"

[INFO] Esta inspeção evidencia apenas a transformação direta do conteúdo.
       A propriedade essencial — reversibilidade total com verificação de
       integridade — é demonstrada nas etapas anteriores.

[OK] Célula 10 concluída com sucesso.

A diferença entre os bytes do arquivo original e do arquivo cifrado é absoluta:
o artefato cifrado apresenta entropia elevada, sem qualquer padrão semântico, estrutural ou repetitivo.
Ainda assim, a CIP restaura o arquivo — bit a bit — mediante o fluxo XOR espectral derivado do IKM
e validado pela matriz de assinatura registrada na chave CIPT.

Esse contraste explicita a natureza estrutural, e não heurística, do mecanismo.
A cifragem destrói completamente a organização digital do arquivo; a decifragem a reconstrói
integralmente porque a coerência espectral foi preservada na assinatura original.

O resultado demonstra, sem abstração matemática, que a técnica é real, determinística e
totalmente independente de ambiente, ordem de execução ou contexto operacional.

Encerramento — Integridade, Confidencialidade e Coerência Espectral¶

O conjunto de testes executados neste notebook — assinatura, verificação com corrupções controladas, cifragem, decifragem e verificação final
— demonstra, de forma reprodutível, o funcionamento integral da Cifra de Integridade Primal (CIP) em modo TOTAL.


1. Integridade Espectral (Assinatura e Verificação)¶

O arquivo NOAA (~100 MB) foi assinado em modo TOTAL. Em seguida:

  • uma cópia de trabalho foi preparada;
  • dez corrupções independentes de 1 bit foram aplicadas em posições aleatórias;
  • todas as verificações subsequentes detectaram imediatamente a alteração;
  • os tempos de execução permaneceram estáveis.

O protocolo se comporta de forma binária:

  • arquivos idênticos ao original são validados;
  • qualquer divergência — inclusive um único bit — é denunciada.

Essa propriedade não depende de contexto, hardware ou intervenção humana. Decorre exclusivamente da compatibilidade entre o arquivo apresentado
e a assinatura espectral registrada na chave.


2. Confidencialidade Espectral (Cifragem)¶

O mesmo arquivo foi cifrado em modo TOTAL. Nessa etapa:

  • o fluxo XOR foi derivado do IKM espectral;
  • as matrizes necessárias foram registradas na chave;
  • toda a auditoria foi documentada;
  • nenhuma chave privada ou segredo externo foi utilizado.

A chave resultante contém os elementos estruturais necessários para reverter a transformação. A confidencialidade decorre da própria estrutura
aritmética, e não de segredos adicionais.


3. Reversão Completa (Decifragem e Verificação Final)¶

Ao decifrar o arquivo cifrado, o protocolo demonstrou:

  • reconstrução correta do fluxo XOR espectral;
  • restauração fiel do arquivo original;
  • verificação integral em modo TOTAL;
  • equivalência exata — bit a bit — entre o decifrado e o original.

O ciclo cifrar–decifrar preservou a integridade absoluta.


4. Coerência do Protocolo¶

Os quatro verbos — assinar, verificar, cifrar e decifrar — compõem um sistema coerente.
A mesma estrutura espectral que detecta uma alteração mínima também garante que a reversão seja perfeita.

Nada depende de ajustes finos, ambiente específico ou fatores externos. Qualquer instituição pode replicar este notebook com outro arquivo público
e obter o mesmo padrão de resultados.


5. Consideração Final¶

A CIP não solicita confiança prévia: ela a produz.
A integridade não é presumida; é demonstrada.
A confidencialidade não exige segredos privados; emerge da estrutura espectral.

Este notebook registra, de ponta a ponta, o funcionamento aberto do protocolo. A tecnologia existe, é verificável e está ao alcance de qualquer
instituição que precise garantir integridade digital real.


Nota Essencial¶

A demonstração aqui apresentada evidencia que a CIP opera com estabilidade matemática e comportamento determinístico.
Não há parâmetros ocultos, margens heurísticas ou dependência de contexto. Há um protocolo definido, auditável e reprodutível.

A assinatura é determinística.
A verificação é binária.
A integridade se rompe mesmo com a alteração de um único bit.
O ciclo completo manifesta uma estrutura interna estável e independente do ambiente.

Mas há um elemento que extrapola o domínio técnico: a necessidade de uma instância institucional que preserve a régua universal utilizada
pelo protocolo.
Sem essa camada — administrativa, não matemática — a tecnologia deixa de atuar como referência comum e volta ao estado de ferramenta isolada.

Integridade, neste contexto, não é apenas uma propriedade de software.
É uma decisão institucional.

A CIP demonstra, de forma objetiva, o que pode ser garantido.
Cabe à instituição decidir se deseja operar dentro desse alcance — e assumir as implicações de fazê-lo.

Esta demonstração não busca apenas comprovar funcionalidade. Ela revela que existe um mecanismo objetivo, reprodutível e livre de dependências externas
capaz de assegurar integridade e confidencialidade. A CIP oferece uma régua comum.
Adotar, manter e preservar essa régua é um ato de responsabilidade institucional.

Nota Fundacional Institucional¶

A GOE aritmética não é hipótese, conjectura ou interpretação. É um fenômeno real, objetivo e invariável.
Ela emerge diretamente da aritmética, independentemente do formalismo adotado, da técnica de análise ou do método computacional utilizado.
É observável, mensurável e reprodutível — em dez, mil ou cem mil blocos. Nada no fenômeno depende do observador.

Quando esse mesmo padrão de coerência espectral é aplicado a um crivo de integridade digital, o resultado elimina qualquer dúvida remanescente:
um único bit alterado em um arquivo de centenas de megabytes é detectado de forma imediata, determinística e implacável.

Essa operacionalização prática confirma o que a análise teórica já indica:
a GOE aritmética está ali porque a estrutura existe — não apenas no plano abstrato, mas no plano operacional.

A tecnologia não suplanta a teoria; ela a materializa.
A teoria não limita a tecnologia; ela a sustenta.

O fenômeno é autoportante: a CIP opera integralmente sobre o mesmo princípio estrutural que sustenta sistemas coerentes —
a preservação determinística da integridade.


Consideração Estrutural sobre a Régua e a Dimensão da Matriz¶

A estrutura espectral utilizada pela CIP é única e independe de ambiente, plataforma ou linguagem.
Para que essa coerência seja preservada, a régua espectral também precisa ser única.

A adoção de matrizes com dimensão em potências de 2 ($N = 2^n$) é uma escolha de engenharia voltada à eficiência computacional.
Entretanto, uma vez definida a forma exata de construção dessa matriz, a definição deve ser universal, garantindo coerência estrutural e
interoperabilidade total entre implementações distintas do protocolo.

A integridade espectral não tolera múltiplas réguas.
Um único padrão é requisito técnico, não imposição de design.


Implicações Institucionais¶

A estrutura demonstrada neste notebook produz efeitos práticos diretos para setores que dependem de integridade digital:
governo, indústria, BigTechs, sistema financeiro, justiça, defesa e diplomacia.

Sua adoção não apenas estabelece uma base uniforme de segurança matemática — também reduz custos,
simplifica infraestrutura, mitiga riscos sistêmicos e cria um critério comum verificável e reprodutível.

A CIP não cria confiança: ela substitui confiança por verificação objetiva.


Responsabilidade Pública¶

A estrutura aqui demonstrada não pode, por sua própria natureza, ser apropriada por indivíduos, empresas ou organizações.
Ela decorre diretamente da aritmética e, portanto, pertence ao patrimônio comum do conhecimento humano.

Para preservar seu caráter público, estável e universal, sua institucionalização é necessária.

Há uma janela concreta para que o Brasil lidere a formalização dessa estrutura.
Caso não o faça, sua formalização e adoção ocorrerá inevitavelmente em outro lugar.