The crypto is in unicode.

In [1]:
k = 'ΠλϠΓζλϠΓΡΔ ΩΡΔϠΔΠξηΠ ξΔϠΓϑΔζΓΩ μΔΞζλΓϑΔΓ ζηΓΠηφαλΠ ΓηΡΦΔΠξαΠ ηΓΡΔμΠαϑλ ϠΓΔΠΓφλΠΦ ΡΔϠλΓΦΔΠΔ \
ΡηζΓφλΠϠξ αξμΛΔΠξΔΓ ΩλΡΓβλζμΠ ξηϑΓΛΓΔζΔ φφαλΠΓϑΔΓ ζηϠΓΩΡλβα ΠφαηϠΓϗμΔ ΓζηΓφλΣΩλ ΠΔΠΓΔΠΓφμ \
ΣΩζαΣαΔΠξ λΓϑΔΓΩηφξ λϠΓΩΡΔΔΨα ϠξΔΠξΔϠΓφ λΠΓΔζΓλΞΘ ΔξλΓϑΔΓφλ ΠϠξαξμαΡΓ ζηΓμΠαλΠΓ ΠηφαλΠηζΓ \
ηϨαηΠϖηΡΓ ζηΓΘμϠξαφ αηΓφλΠϠλζ αϑηΡΓζηΓΩ ηϖΓαΠξΔΡα λΡΓΩΡλβΔΔ ΡΓηΓζηΓϑΔ ϨΔΠϠηΓφλΣ μΠΓΩΡλΣλβ \
ΔΡΓΔζΓΞαΔ ΠΔϠξηΡΓΦΔ ΠΔΡηζΓΛΓη ϠΔΦμΡηΡΓζ λϠΓΞΔΠΔϨα φαλϠΓϑΔΓζ ηΓζαΞΔΡξη ϑΓΩηΡηΓΠλ ϠλξΡλϠΓΩη \
ΡηΓΠμΔϠξΡ ηΓΩλϠξΔΡα ϑηϑΓΛΓΩηΡ ηΓξλϑλϠΓζ λϠΓελΣΞΡΔ ϠΓϑΔζΓΣμΠ ϑλΓϗμΔΓϗμ αΔΡηΠΓεηΞ αξηΡΓΔΠΓΔ \
ζΓϠμΔζλΓη ΡΦΔΠξαΠλΓ αΠβλφηΠϑλ ΓζηΓΩΡλξΔ φφαλΠΓϑΔΓ ϑαλϠΓϨμΔΠ ξΔΓϑΔΓξλϑ ηΓΡηϖλΠΓΛ ΓΘμϠξαφαη \
ΓλΡϑΔΠηΣλ ϠΓϑΔφΡΔξη ΣλϠΓΛΓΔϠξ ηΞζΔφΔΣλϠ ΓΔϠξηΓφλΠ ϠξαξμφαλΠ ΓΩηΡηΓζηΓ ΠηφαλΠΓηΡ ΦΔΠξαΠη'

Spaces, evenly spaced, are not significant. We delete them.

In [2]:
k = k.replace(' ', '')
k, len(k)
Out[2]:
('ΠλϠΓζλϠΓΡΔΩΡΔϠΔΠξηΠξΔϠΓϑΔζΓΩμΔΞζλΓϑΔΓζηΓΠηφαλΠΓηΡΦΔΠξαΠηΓΡΔμΠαϑλϠΓΔΠΓφλΠΦΡΔϠλΓΦΔΠΔΡηζΓφλΠϠξαξμΛΔΠξΔΓΩλΡΓβλζμΠξηϑΓΛΓΔζΔφφαλΠΓϑΔΓζηϠΓΩΡλβαΠφαηϠΓϗμΔΓζηΓφλΣΩλΠΔΠΓΔΠΓφμΣΩζαΣαΔΠξλΓϑΔΓΩηφξλϠΓΩΡΔΔΨαϠξΔΠξΔϠΓφλΠΓΔζΓλΞΘΔξλΓϑΔΓφλΠϠξαξμαΡΓζηΓμΠαλΠΓΠηφαλΠηζΓηϨαηΠϖηΡΓζηΓΘμϠξαφαηΓφλΠϠλζαϑηΡΓζηΓΩηϖΓαΠξΔΡαλΡΓΩΡλβΔΔΡΓηΓζηΓϑΔϨΔΠϠηΓφλΣμΠΓΩΡλΣλβΔΡΓΔζΓΞαΔΠΔϠξηΡΓΦΔΠΔΡηζΓΛΓηϠΔΦμΡηΡΓζλϠΓΞΔΠΔϨαφαλϠΓϑΔΓζηΓζαΞΔΡξηϑΓΩηΡηΓΠλϠλξΡλϠΓΩηΡηΓΠμΔϠξΡηΓΩλϠξΔΡαϑηϑΓΛΓΩηΡηΓξλϑλϠΓζλϠΓελΣΞΡΔϠΓϑΔζΓΣμΠϑλΓϗμΔΓϗμαΔΡηΠΓεηΞαξηΡΓΔΠΓΔζΓϠμΔζλΓηΡΦΔΠξαΠλΓαΠβλφηΠϑλΓζηΓΩΡλξΔφφαλΠΓϑΔΓϑαλϠΓϨμΔΠξΔΓϑΔΓξλϑηΓΡηϖλΠΓΛΓΘμϠξαφαηΓλΡϑΔΠηΣλϠΓϑΔφΡΔξηΣλϠΓΛΓΔϠξηΞζΔφΔΣλϠΓΔϠξηΓφλΠϠξαξμφαλΠΓΩηΡηΓζηΓΠηφαλΠΓηΡΦΔΠξαΠη',
 647)
In [3]:
len(set(k))
Out[3]:
25

The set of symbols of the crypto has 25 characters. Transliteration:

In [4]:
alpha26 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
t = ''
alpha = {}
idx = 0
for c in k:
    if c not in alpha:
        alpha[c] = alpha26[idx]
        idx += 1
    t += alpha[c]
print(t)
ABCDEBCDFGHFGCGAIJAIGCDKGEDHLGMEBDKGDEJDAJNOBADJFPGAIOAJDFGLAOKBCDGADNBAPFGCBDPGAGFJEDNBACIOILQGAIGDHBFDRBELAIJKDQDGEGNNOBADKGDEJCDHFBROANOJCDSLGDEJDNBTHBAGADGADNLTHEOTOGAIBDKGDHJNIBCDHFGGUOCIGAIGCDNBADGEDBMVGIBDKGDNBACIOILOFDEJDLAOBADAJNOBAJEDJWOJAXJFDEJDVLCIONOJDNBACBEOKJFDEJDHJXDOAIGFOBFDHFBRGGFDJDEJDKGWGACJDNBTLADHFBTBRGFDGEDMOGAGCIJFDPGAGFJEDQDJCGPLFJFDEBCDMGAGWONOBCDKGDEJDEOMGFIJKDHJFJDABCBIFBCDHJFJDALGCIFJDHBCIGFOKJKDQDHJFJDIBKBCDEBCDYBTMFGCDKGEDTLAKBDSLGDSLOGFJADYJMOIJFDGADGEDCLGEBDJFPGAIOABDOARBNJAKBDEJDHFBIGNNOBADKGDKOBCDWLGAIGDKGDIBKJDFJXBADQDVLCIONOJDBFKGAJTBCDKGNFGIJTBCDQDGCIJMEGNGTBCDGCIJDNBACIOILNOBADHJFJDEJDAJNOBADJFPGAIOAJ

Loading the ccrypto module: a personal module written in C interfaced with Python.
The only function used here is RS_substitution, a MASC solver using a simulated annealing algorithm.

For a Python version of this function see http://bribes.org/crypto/substitution_mono.html (in French, sorry).

In [5]:
from ccrypto import *
load_qf_base('logf4g_en.txt') # Statistics for the English language
In [6]:
RS_substitution(t)
Out[6]:
[9742.2177734375,
 'RONSYLEPGAHUBTICMVQFXJDWKZ',
 'RONSYONSLEPLENERGARGENSHEYSPUEBYOSHESYASRATIORSALCERGIRASLEURIHONSERSTORCLENOSCERELAYSTORNGIGUMERGESPOLSVOYURGAHSMSEYETTIORSHESYANSPLOVIRTIANSQUESYASTOFPORERSERSTUFPYIFIERGOSHESPATGONSPLEEXINGERGENSTORSEYSOBJEGOSHESTORNGIGUILSYASURIORSRATIORAYSADIARWALSYASJUNGITIASTORNOYIHALSYASPAWSIRGELIOLSPLOVEELSASYASHEDERNASTOFURSPLOFOVELSEYSBIERENGALSCERELAYSMSANECULALSYONSBEREDITIONSHESYASYIBELGAHSPALASRONOGLONSPALASRUENGLASPONGELIHAHSMSPALASGOHONSYONSKOFBLENSHEYSFURHOSQUESQUIELARSKABIGALSERSEYSNUEYOSALCERGIROSIRVOTARHOSYASPLOGETTIORSHESHIONSDUERGESHESGOHASLAWORSMSJUNGITIASOLHERAFONSHETLEGAFONSMSENGABYETEFONSENGASTORNGIGUTIORSPALASYASRATIORSALCERGIRA']

Nothing significant. Let's increase the number of iteration.

In [9]:
RS_substitution(t, max_iter=30000)
Out[9]:
[9474.712890625,
 'NOTSLREPDAHUBCIFYVQMXJGKWZ',
 'NOTSLOTSREPRETENDANDETSHELSPUEBLOSHESLASNACIONSARFENDINASREUNIHOTSENSCONFRETOSFENERALSCONTDIDUYENDESPORSVOLUNDAHSYSELECCIONSHESLATSPROVINCIATSQUESLASCOMPONENSENSCUMPLIMIENDOSHESPACDOTSPREEXITDENDETSCONSELSOBJEDOSHESCONTDIDUIRSLASUNIONSNACIONALSAGIANKARSLASJUTDICIASCONTOLIHARSLASPAKSINDERIORSPROVEERSASLASHEGENTASCOMUNSPROMOVERSELSBIENETDARSFENERALSYSATEFURARSLOTSBENEGICIOTSHESLASLIBERDAHSPARASNOTODROTSPARASNUETDRASPOTDERIHAHSYSPARASDOHOTSLOTSWOMBRETSHELSMUNHOSQUESQUIERANSWABIDARSENSELSTUELOSARFENDINOSINVOCANHOSLASPRODECCIONSHESHIOTSGUENDESHESDOHASRAKONSYSJUTDICIASORHENAMOTSHECREDAMOTSYSETDABLECEMOTSETDASCONTDIDUCIONSPARASLASNACIONSARFENDINA']

Spanish words appear. It seems that they are separated by S. Let's check this hypothesis:

In [10]:
_[2].replace('S', ' ')
Out[10]:
'NOT LOT REPRETENDANDET HEL PUEBLO HE LA NACION ARFENDINA REUNIHOT EN CONFRETO FENERAL CONTDIDUYENDE POR VOLUNDAH Y ELECCION HE LAT PROVINCIAT QUE LA COMPONEN EN CUMPLIMIENDO HE PACDOT PREEXITDENDET CON EL OBJEDO HE CONTDIDUIR LA UNION NACIONAL AGIANKAR LA JUTDICIA CONTOLIHAR LA PAK INDERIOR PROVEER A LA HEGENTA COMUN PROMOVER EL BIENETDAR FENERAL Y ATEFURAR LOT BENEGICIOT HE LA LIBERDAH PARA NOTODROT PARA NUETDRA POTDERIHAH Y PARA DOHOT LOT WOMBRET HEL MUNHO QUE QUIERAN WABIDAR EN EL TUELO ARFENDINO INVOCANHO LA PRODECCION HE HIOT GUENDE HE DOHA RAKON Y JUTDICIA ORHENAMOT HECREDAMOT Y ETDABLECEMOT ETDA CONTDIDUCION PARA LA NACION ARFENDINA'

The hypothesis is plausible.
Since the decryption alphabet is

  ABCDEFGHIJKLMNOPQRSTUVWXYZ
  NOTSLREPDAHUBCIFYVQMXJGKWZ

the letter S of the solution corresponds to the letter D of the crypto.
We replace D by _ in the crypto.

In [11]:
t = t.replace('D', '_')
print(t)
ABC_EBC_FGHFGCGAIJAIGC_KGE_HLGMEB_KG_EJ_AJNOBA_JFPGAIOAJ_FGLAOKBC_GA_NBAPFGCB_PGAGFJE_NBACIOILQGAIG_HBF_RBELAIJK_Q_GEGNNOBA_KG_EJC_HFBROANOJC_SLG_EJ_NBTHBAGA_GA_NLTHEOTOGAIB_KG_HJNIBC_HFGGUOCIGAIGC_NBA_GE_BMVGIB_KG_NBACIOILOF_EJ_LAOBA_AJNOBAJE_JWOJAXJF_EJ_VLCIONOJ_NBACBEOKJF_EJ_HJX_OAIGFOBF_HFBRGGF_J_EJ_KGWGACJ_NBTLA_HFBTBRGF_GE_MOGAGCIJF_PGAGFJE_Q_JCGPLFJF_EBC_MGAGWONOBC_KG_EJ_EOMGFIJK_HJFJ_ABCBIFBC_HJFJ_ALGCIFJ_HBCIGFOKJK_Q_HJFJ_IBKBC_EBC_YBTMFGC_KGE_TLAKB_SLG_SLOGFJA_YJMOIJF_GA_GE_CLGEB_JFPGAIOAB_OARBNJAKB_EJ_HFBIGNNOBA_KG_KOBC_WLGAIG_KG_IBKJ_FJXBA_Q_VLCIONOJ_BFKGAJTBC_KGNFGIJTBC_Q_GCIJMEGNGTBC_GCIJ_NBACIOILNOBA_HJFJ_EJ_AJNOBA_JFPGAIOAJ

Statistics are loaded for the Spanish language with spaces:

In [12]:
load_qf_base('logf4g_space_es.txt')

Solving:

In [13]:
RS_substitution(t)
Out[13]:
[5398.35302734375,
 'NOSWLREPTADUBCIGYVQMXJFZHK',
 'NOS_LOS_REPRESENTANTES_DEL_PUEBLO_DE_LA_NACION_ARGENTINA_REUNIDOS_EN_CONGRESO_GENERAL_CONSTITUYENTE_POR_VOLUNTAD_Y_ELECCION_DE_LAS_PROVINCIAS_QUE_LA_COMPONEN_EN_CUMPLIMIENTO_DE_PACTOS_PREEXISTENTES_CON_EL_OBJETO_DE_CONSTITUIR_LA_UNION_NACIONAL_AFIANZAR_LA_JUSTICIA_CONSOLIDAR_LA_PAZ_INTERIOR_PROVEER_A_LA_DEFENSA_COMUN_PROMOVER_EL_BIENESTAR_GENERAL_Y_ASEGURAR_LOS_BENEFICIOS_DE_LA_LIBERTAD_PARA_NOSOTROS_PARA_NUESTRA_POSTERIDAD_Y_PARA_TODOS_LOS_HOMBRES_DEL_MUNDO_QUE_QUIERAN_HABITAR_EN_EL_SUELO_ARGENTINO_INVOCANDO_LA_PROTECCION_DE_DIOS_FUENTE_DE_TODA_RAZON_Y_JUSTICIA_ORDENAMOS_DECRETAMOS_Y_ESTABLECEMOS_ESTA_CONSTITUCION_PARA_LA_NACION_ARGENTINA']

Bingo! It's Preamble to the Constitution of the Argentine Nation:
https://es.wikipedia.org/wiki/Pre%C3%A1mbulo_de_la_Constituci%C3%B3n_de_la_Naci%C3%B3n_Argentina


Le 2/01/2018 - Contact : Rossignol@bribes.org