在Matlab中从ASCII中检索文本

时间:2014-07-15 08:47:46

标签: matlab cryptography

我有以下几行代码:

%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代码吗?

1 个答案:

答案 0 :(得分:0)

模幂运算 - 用于RSA加密/解密的主要数学原语使用整数值作为输入和输出。 RSA算法本身(在PKCS#1 v2.1以后)首先将消息转换为八位字节,然后根据两个填充方案之一填充这些对象,然后对转换为整数的结果执行模幂运算。结果整数又转换为八位字节。

现在,根据上述实际执行的计算,您应该有一个整数或八位字节。由于将整数转换为八位字节(或打印整数)并不困难,因此只关注八位字节。您需要从本质上不是文本的东西创建一个字符串(文本)。有这样的特定编码方案,但最常见的是base 64

请注意,通常每个纯文本只执行一次RSA加密。如果明文不适合(或者可能不适合将来,或者您只是想遵守标准),那么您应该使用hybrid encryption而不是RSA "in ECB mode"