domenica 10 giugno 2007

Frase cifrata - compl. bassa - 1

Questo post fa parte dell'Area codifica
Leggere le regole prima di continuare.
-------

Problema: frase cifrata
Alfabeto utilizzato: inglese, no numeri
Lingua: italiano
Complessità: bassa
Vale 1 punto

-------
Testo del problema (9,2,6):
NGVWFMNQX - SY - OBRXSV
------

E' il primo post della sezione, quindi do subito un suggerimento: l'ordine delle lettere non è stato modificato

Vincitore, olbaid aka Gabriele

7 commenti:

SilveR_Baluardo ha detto...

uhm.. vediamo. :
1. la soluzione NON si trova traslando l'intero alfabeto di una costante.

applicando il codice:

strcpy(frase,"NGVWFMNQZ SY OBRXSV");
for(ind_alp=0;ind_alp<LUNG_ALPHA;ind_alp++)
{
for(ind_frase=0;ind_frase<LUNG_FRASE;ind_frase++)
{
carat=frase[ind_frase]+ind_alp;
if(carat>'Z')
carat-=LUNG_ALPHA;
printf("%c",carat));
}
printf("\n");
}

si ottengono tutte le trasposizioni dell'enigma per una costante..

2. supponendo l'utilizzo di una frase usata per una corrispondenza biettiva per ogni lettera, mi sembra ovvoi che la detta frase debba contenere tutte le lettere dell'alfabeto inglese, quindi mi sono ricordato che il tipico pangram (frase con tutte le lettere dell'alfabeto) inglese è "the quick brown fox jumps over the lazy dog".. ma nula neanche qui.. di pangrams ce ne sono a migliaia, ma semmai la chiave fosse uno di questi dubiterei fosse uno diverso dal "quick brown fox.." quindi
conclusioni:
non ho la piu pallida idea di che altro provare....

riccardo ha detto...

confermo, non è ottenuta per addizione "di costante"; inoltre aggiungo che non è stata usata nessuna chiave generatrice.

Posso svelare però che il problema 'potrebbe' far uso di una serie numerica intera a segno costante

Unknown ha detto...

Ho provato ad " ideare " un alfabeto alternativo, supponendo come prima lettera la N, in quanto prima lettera che si può leggere nell'indovinello.
Ne segue che la O è la seconda, la P è la terza...la A è la quattordicesima e la M è la ventiseiesima.
Ho poi cercato la posizione numerica delle lettere nell'indivinello, scrivendo quindi questo:
14 7 22 23 6 13 14 17 24 per NGVWFMNQX

19 25 per SY
e infine

15 2 18 24 19 23 per OBRXSW

sono andato a ricercare queste posizioni nell'alfabeto " normale ", senza però ottenere risultati soddisfacenti:
ATIJSZADK FL BOEKFJ
ritento, sarò piu' fortunato :D

riccardo ha detto...

quel che hai fatto in questo modo è, in qualche modo, trasporre l'alfabeto in modo omogeneo. Il mio consiglio è quello di focalizzare l'attenzione sulla distanza che hanno le lettere rispetto all'alfabeto originale.
Mi spiego meglio: non ho usato un alfabeto le cui lettere distano dall'originale in modo uniforme, ma ognuna ha una distanza diversa (la variazione di tale distanza non è comunque casuale).

Ultimo consiglio, non partire dall'alfabeto ma dalla frase per cercare questa variazione di "distanza". Se riesci ad individuare la prima lettera il gioco è fatto

OlbAiD ha detto...

Allora mi sa che la soluzione è "MESSAGGIO IN CODICE"...partendo dalla prima lettera la n sottrarre 1 e poi procedere avanti sottraendone sempre uno in +.....

SilveR_Baluardo ha detto...

noooooooooooooooooooooooooooooooooo......
dopo ore di sonno perse arriva lui e mi rovina tutto sobsobsob....

riccardo ha detto...

RISPOSTA ESATTA! THE WINNER IS olbaid, il nostro Gabriele!

posto qui il codice utilizzato per la generazione del messaggio criptato:


-------- C Code ---------

char msg[]="MESSAGGIO IN CODICE";
int pos=1,i=0;
while(msg[i]!='\0')
{
if(msg[i]!=' ')
{
msg[i]=(msg[i]-PRIMA_L+pos)%LUNGH_ALF+PRIMA_L;
pos++;
}
i++;
}

Olbaid guadagna un punto in classifica