置き換え方式の暗号となるとカエサル方式がメジャーでしょうか。しかし、踊る人形に代表されるようにあの暗号は結構脆い……
EやTHEが馬鹿に多い英語は論外ですが、日本語も『てにをは』に代表される助詞や『する』などの使用頻度の偏りが大きいので、頑張れば解読も容易でしょう。
一応、参考までにカエサル方式とヴィジュネル方式の暗号化のスクリプトを置いておきます。参考となれば幸いです。
以下は一例
m = "Koreハ平文デス♪ Koreハ平文デス♪ ひゃっはー"
mes "平文 = 『"+m+"』\n"
mes "カエサル暗号の場合"
c = encrypt_caesar(m,3)
mes "暗号化文章(Caesar) = 『"+c+"』"
cc = decrypt_caesar(c,3)
mes "復号化文章(Caesar) = 『"+cc+"』"
mes "※各単語に1対1で単語が対応する"
mes "(お陰で踊る人形はホームズにアッサリ読破された)\n"
mes "ヴィジュネル暗号の場合"
c = encrypt_vigenere(m,"Encrypt")
mes "暗号化文章(Vegenere) = 『"+c+"』"
cc = decrypt_vigenere(c,"Encrypt")
mes "復号化文章(Vegenere) = 『"+cc+"』"
mes "※カエサル暗号と違い、同一単語でも同じ単語にならない"
mes "でも数バイト程度の鍵なのでギガ級CPUの前には風の前の塵\n"
#module
#defcfunc encrypt_caesar str m, int key, local d, local c
d = m
sdim c, strlen(d)+4
repeat strlen(d)
poke c, cnt, (peek(d,cnt)+key)\256
loop
return c
#defcfunc decrypt_caesar str c, int key
return encrypt_caesar(c,-key)
#defcfunc encrypt_vigenere str m, str key, local d, local c \
, local k, local now_key
d = m
k = key
sdim c, strlen(d)+4
repeat strlen(d)
now_key = peek(k,cnt\strlen(k))
poke c, cnt, (peek(d,cnt)+now_key)\256
loop
return c
#defcfunc decrypt_vigenere str c, str key, local d, local cc \
, local k, local now_key
d = c
k = key
sdim cc, strlen(d)+4
repeat strlen(d)
now_key = peek(k,cnt\strlen(k))
poke cc, cnt, (peek(d,cnt)-now_key)\256
loop
return cc
#global