Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
RRC_steganography — Steganografia linguistica provabilmente sicura che incorpora messaggi segreti in testo generato da LLM tramite rotation range-coding. Include script per embed, extract e verifica round-trip. | Kitploit
Strumenti/GitHubGitHub/ryehr/rrc_steganography
SteganografiaCrittografiaMachine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IA
GitHubryehr/rrc_steganography

RRC_steganography

Steganografia linguistica provabilmente sicura che incorpora messaggi segreti in testo generato da LLM tramite rotation range-coding. Include script per embed, extract e verifica round-trip.

Vedi Repository
614 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

RRC Steganography

Rotation Range-Coding (RRC) Steganography — un metodo steganografico linguistico efficiente e provabilmente sicuro che incorpora messaggi segreti in testo in linguaggio naturale generato da grandi modelli linguistici.

Articolo: Efficient Provably Secure Linguistic Steganography via Range Coding

Come funziona

PassoDescrizione
Embed (Algoritmo 3)Converti il messaggio segreto in un valore decimale e ruotalo iterativamente all'interno di un intervallo che si restringe, guidato dalla distribuzione di probabilità del LM e da un offset generato dal PRNG. Ogni passo di rotazione produce un token.
Extract (Algoritmo 4)Esegui nuovamente il LM sullo stegotesto per recuperare i limiti dell'intervallo, quindi ruota all'indietro fino al valore decimale originale e binarizzalo.

Il meccanismo di rotazione risolve due problemi della steganografia range-coding standard:

  1. Preservazione della distribuzione di probabilità — il valore segreto ruotato è distribuito uniformemente in ogni intervallo, quindi la selezione dei token segue la distribuzione originale del LM.
  2. Casualità rinnovata — un nuovo offset PRNG a ogni passo impedisce il riuso della casualità.

Struttura del repository

root@kitploit:~
.
├── RRC_embed.py   # Embedding (Algorithm 3) 
├── RRC_extract.py   # Extraction (Algorithm 4) 
├── test_roundtrip.py         # Self-contained end-to-end verification script
├── requirements.txt          # Python dependencies
└── README.md

Requisiti

  • Python ≥ 3.10
  • PyTorch ≥ 2.0
  • Transformers ≥ 4.35

Installa le dipendenze:

root@kitploit:~
pip install -r requirements.txt

Avvio rapido

1. Verifica della correttezza

Il test round-trip usa meta-llama/Llama-2-7b-hf e viene eseguito su CPU/CUDA:

root@kitploit:~
python test_roundtrip.py

Output atteso:

root@kitploit:~
>>> Step 3: Verification
    Original: 10110011001010111010011100101011...
    Extracted: 10110011001010111010011100101011...

    ✅ SUCCESS — extracted message matches perfectly!

2. Incorpora un messaggio segreto

Prepara un file di prompt 0.Prompts.tsv con le colonne idx e text, quindi esegui:

root@kitploit:~
python RRC_embed.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --top_k -1

3. Estrai il messaggio segreto

root@kitploit:~
python RRC_extract.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --input_file 1.RC_decimal_Llama-3.1-8B_bit128.tsv

⚠️ Importante: il mittente e il destinatario devono usare lo stesso modello linguistico, la stessa chiave, la stessa lunghezza in bit e la stessa impostazione top-k per una corretta estrazione.

Argomenti CLI

RRC_embed.py

RRC_extract.py

Nota tecnica: modulo Decimal

Il tipo Decimal di Python usa una divisione troncata per l'operatore %, che può restituire resti negativi (ad es. Decimal('-19672') % Decimal('65536') → -19672 invece di 45864). Questa implementazione usa un helper decimal_mod che garantisce che il risultato sia sempre in [0, m):

root@kitploit:~
def decimal_mod(a, m):
    return a - m * (a / m).to_integral_value(rounding=ROUND_FLOOR)

⚠️ Per un'estrazione affidabile del segreto, alcune operazioni (sort, cumsum) vengono spostate sulla CPU con precisione float64 per evitare il non-determinismo di CUDA. Questo sacrifica una certa quantità di velocità in cambio di una coerenza codifica-decodifica garantita.

Scarica lo strumento
ArgomentoPredefinitoDescrizione
--language_modelmeta-llama/Llama-3.1-8BIdentificativo del modello HuggingFace
--bit_length128Lunghezza del messaggio segreto in bit
--top_k-1Troncamento top-k; -1 = vocabolario completo
--key42Chiave simmetrica K (seme del PRNG)
--part / --part_max0 / 2Per l'esecuzione parallela su grandi insiemi di prompt
ArgomentoPredefinitoDescrizione
--language_modelmeta-llama/Llama-3.1-8BDeve corrispondere al modello di embedding
--bit_length128Deve corrispondere all'impostazione di embedding
--top_k-1Deve corrispondere all'impostazione di embedding
--key42Deve corrispondere alla chiave di embedding
--input_file(obbligatorio)Percorso del file TSV prodotto dall'encoder