1.背景と原則
より引用ウィキペディア
暗号では、シーザー暗号:またシーザー暗号、暗号化のシーザー変換として知られている(英語シーザー暗号)は、最も単純で最も広く知られている暗号化技術です。それは、すべての文字が暗号文に従い、一定数の後に交換されたアルファベットのオフセットバック(または前方)平文である暗号技術に代わるものです。例えば、時間オフセットが3である場合、文字Aのすべてがそうで、BはEとなり、Dで置換され、。暗号化方式は、容疑者はその後、シーザーは、このように彼らの将軍との接触を持っていたにちなんで名付けられたシーザーのローマの共和国です。
暗号化は、CH + nは、バック「」カウントに、CH + N「Z」よりも後にすると、秘密鍵は、文字がCHを暗号化する場合は、単にnにある文字。
シーザーパスワードの暗号化を通しても復号化方法合同数学的手法の計算。まず、代わりに数字、A = 0、B = 1の文字の 、...、Z = 25。このとき、暗号化方式は、n個のオフセットされています。
復号化は次のとおりです。
2.暗号化
例えば
明文:フラッグ{i_LOVE_Reverse}
キー= 11
モデル= " ABCDEFGHIJKLMNOPQRSTUVWXYZ " MODEL2 = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ ' STR1 = " フラグ{i_LOVE_Reverse} " キー = 11 のために S でSTR1: もしs.islower(): N = model.find(S) S =モデル[N- キー] のelif s.isupper(): N = model2.find(S) S = MODEL2 [N - キー] プリント(S、端= '' ) プリント( ' \ nを')
得られ暗号化された文字列の後に:
qwlr {t_WZGP_Cpgpcdp}
3.解読
モデル= " ABCDEFGHIJKLMNOPQRSTUVWXYZ " MODEL2 = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ ' str1が = " qwlr {t_WZGP_Cpgpcdp} " のためのキーで範囲(1,27 :) プリント(" キー=%D "%キー、終了= ' \ n ' ) のためのでSTR1 : もしs.islower(): N = model.find(S) S =モデル[N- キー] ELIFのs.isupper(): N= model2.find(S) S = MODEL2 [N- キー】 プリント(S、端= '' ) プリント(' の\ n ')
キー= 1
pvkq {s_VYFO_Bofobco}キー= 2
oujp {r_UXEN_Anenabn}キー= 3
ntio {q_TWDM_Zmdmzam}キー= 4
mshn {p_SVCL_Ylclyzl}キー= 5
lrgm {o_RUBK_Xkbkxyk}キー= 6
kqfl {n_QTAJ_Wjajwxj}キー= 7
jpek {m_PSZI_Vizivwi}キー= 8
iodj {l_ORYH_Uhyhuvh}キー= 9
hnci {k_NQXG_Tgxgtug}キー= 10
社{j_MPWF_Sfwfstf}キー= 11
フラグ{i_LOVE_Reverse}キー= 12
ekzf {h_KNUD_Qdudqrd}キー= 13
djye {g_JMTC_Pctcpqc}キー= 14
cixd {f_ILSB_Obsbopb}= 15、キー
bhwc} {eHKRANaranoaキー= 16
agvb {d_GJQZ_Mzqzmnz}キー= 17
zfua {c_FIPY_Lypylmy}キー= 18
yetz {b_EHOX_Kxoxklx}キー= 19
xdsy {a_DGNW_Jwnwjkw}キー= 20
wcrx {z_CFMV_Ivmvijv}キー= 21
vbqw} {y_BELU_Huluhiuキー= 22
uapv {x_ADKT_Gtktght}キー= 23
tzou {w_ZCJS_Fsjsfgs}キー= 24
SYNT {v_YBIR_Erirefr}キー= 25
rxms {u_XAHQ_Dqhqdeq}キー= 26
qwlr {t_WZGP_Cpgpcdp}
鑑賞した後、私たちは、11キー=を知ることができ、その後、我々は暗号解読正しい文字列です。