2014-07-15 36 views
2

我有下面幾行代碼:檢索文本從ASCII在Matlab中

%for RSA Algorithm 
clc; 

disp('Implementation of RSA Algorithm'); 

clear all; 
close all; 

p = input('\nEnter value of p: '); 
q = input('\nEnter value of q: '); 

[Pk,Phi,d,e] = init(p,q); 

M = input('\nEnter message: ','s'); 
x=length(M); 
c=0; 

for j= 1:x 
    for i=0:122 
     if strcmp(M(j),char(i)) 
      c(j)=i; 
     end 
    end 
end 

disp('ASCII Code of the entered Message:'); 
disp(c); 
% For Encryption 
for j= 1:x 
    cipher(j)= crypto(c(j),Pk,e); 
end 

disp('Cipher Text of the entered Message:'); 
disp(cipher); 

我怎麼能知道加密消息的文本?我的意思是加密的特徵是什麼?我想將cipher的ASCII碼轉換回字符。有人可以告訴我這個matlab代碼嗎?

回答

0

模冪運算 - 用於RSA加密/解密的主要數學基元使用整數值作爲輸入和輸出。 RSA算法本身(在PKCS#1 v2.1之後)首先將消息轉換爲八位字節,然後根據兩種填充方案之一填充這些對象,然後對轉換爲整數的結果執行模冪運算。所得到的整數又被轉換爲八位字節。

現在取決於上述實際執行的計算,您應該有一個整數或八位字節。由於不需要將整數轉換爲八位字節(或打印整數),因此只能將焦點集中在八位字節上。你需要從本質上不是文本的東西中創建一個字符串(文本)。有具體的編碼方案,但最常見的是base 64

請注意,通常您只對每個明文執行一次RSA加密。如果明文不適合(或未來可能不適合,或者您只想遵守標準),則應使用hybrid encryption而不是RSA "in ECB mode"

+0

爲了驗證你的結果,我會在64位的基礎上使用十六進制。 –