人工知能とシーザー暗号で遊んでいきます。
人工知能とシーザー暗号で遊んでいきます。
ということです。
シーザー暗号のプログラムも書いてもらう
def encrypt_caesar(plain_text, shift):
encrypted_text = ""
for char in plain_text:
if char.isalpha():
shifted_char_code = ord(char.upper()) + shift
if shifted_char_code > ord('Z'):
shifted_char_code -= 26
encrypted_text += chr(shifted_char_code)
else:
encrypted_text += char
return encrypted_text
def decrypt_caesar(cipher_text, shift):
decrypted_text = ""
for char in cipher_text:
if char.isalpha():
shifted_char_code = ord(char.upper()) - shift
if shifted_char_code < ord('A'):
shifted_char_code += 26
decrypted_text += chr(shifted_char_code)
else:
decrypted_text += char
return decrypted_text
プログラムで暗号化
平文はアインシュタインが言ったらしい
Anyone who has never made a mistake has never tried anything new.
という文章にしようね
プログラムで暗号化をする。シフト数は14。
平文:Anyone who has never made a mistake has never tried anything new.
暗号文: OBMCBS KVC VOG BSJSF AORS O AWGHOYS VOG BSJSF HFWSR OBMHVWBU BSK.
ChatGPTが暗号化
OBMCBS KVC VOG BSJSF AORS O AWGHOYS VOG BSJSF HFWSR OBMHVWBU BSK. これは英語の暗号文です。解読してください。
これはどうやら単換字暗号のようだ
解読して
シーザー暗号らしい 解読して
OBMCBS KVC VOG BSJSF AORS O AWGHOYS VOG BSJSF HFWSR OBMHVWBU BSK.
シフト数14
検証するよ!
単換字暗号だっての!
OBMCBS KVC VOG BSJSF AORS O AWGHOYS VOG BSJSF HFWSR OBMHVWBU BSK.
TURING WAS RIGHT ABOUT THIS BEING TRICKY TURING MACHINES ARE VERY POWERFUL TOOLS.
VがA,R,Eなどに変換されているね。
文字数もちャうで
OBMCBS KVC VOG BSJSF AORS O AWGHOYS VOG BSJSF HFWSR OBMHVWBU BSK.
TURING WAS RIG HTABO UTTH I SBEINGT RIC KYTUR INGMA CHINESAR EVE RYPOWERFULTOOLS.
シーザー暗号の14シフトだとわかっているのに全然解けないね。
解けないように制御を受けているのかもしれないけど。
ChatGPTに暗号化してもらう
以下の英文をシフト数14でシーザー暗号を使って暗号化して Anyone who has never made a mistake has never tried anything new.
さっきの暗号プログラムにやってもらうと
平文:Qebztcr ivc xvmtk pmizevo ziv qebziv rsc drsc zmikztrmvomv.
復号文: CQNLFOD UHO JHYFW BYULQHA LUH CQNLUH DEO PDEO LYUWLFDYHAYH.
アルファベットを14個ずらすことすらできないようである
論理と確率!?
自然言語処理人工知能ということで確率的に返答を構築しているらしい(本当?)ChatGPTは論理には弱いのかも?
でも、論理の塊のプログラムは書けるんだからねぇ
ただ、このような操作に関するデータが少ないだけかもしれないね
論理と確率の関係がよくわからなくなってくるよね。
論理的な帰結ってどうして導けるのかな。