現在、暗号化技法の1つであるDESについてやっています。
一応のプログラムは出来たのですが、復号を行っても画像が表示されません。
なお、1,024バイト分の暗号化と復号を行っているつもりです。
//----------------------------変数群----------------------------------// read_file = "○○.jpg" ;読込み対象ファイル enc_KEY = 13 ;キー値 HOZON = 0 ;汎用変数① g_p = 0 ;汎用変数② //--------------------------------------------------------------------// notesel mem_OP noteload read_file //ファイルのロード memfile mem_OP noteunsel g_p = 0 repeat 128 //暗号化 a(1) = lpeek(mem_OP,g_p) ;【第1ブロック(32bit)】読出し a(2) = lpeek(mem_OP,g_p+4) ;【第2ブロック(32bit)】読出し repeat 16 a(1) = a(1) + enc_KEY ;【第1ブロック】にキー値を加算 a(2) = a(2) XOR a(1) ;【第2ブロック】XOR【第1ブロック】→【第2ブロック】 HOZON = a(1) a(1) = a(2) a(2) = HOZON loop lpoke mem_OP, g_p, a(1) lpoke mem_OP, g_p+4, a(2) g_p = g_p + 8 loop g_p = 0 repeat 128 //復号 a(1) = lpeek(mem_OP,g_p) ;【第1ブロック(32bit)】読出し a(2) = lpeek(mem_OP,g_p+4) ;【第2ブロック(32bit)】読出し repeat 16 a(1) = a(1) + enc_KEY ;【第1ブロック】にキー値を加算 a(2) = a(2) XOR a(1) ;【第2ブロック】XOR【第1ブロック】→【第2ブロック】 HOZON = a(1) a(1) = a(2) a(2) = HOZON loop lpoke mem_OP, g_p, a(1) lpoke mem_OP, g_p+4, a(2) g_p = g_p + 8 loop picload "MEM:mem_OP.jpg" //--------------------------------------------------------------------//
あるHPで、
「暗号化と同じ手順をたどれば元の平文に戻すことができる」と書いてあったのですが、
それで正しいですか?
プログラム中に問題があるようでしたら、もしよろしければ教えて下さい。