one time pad plus randstream
3 次查看(过去 30 天)
显示 更早的评论
Hello Guys,
I need help for this question asap.
Implement a version of the character based One-Time Pad, that utilizes a random number generator chosen through RandStream.
clc;
clear all;
close all;
alph=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
b1=0:25;
keyword='famt';
code='ratn';
disp(keyword);
disp(code);
for ii=1:length(keyword)
for jj=1:length(alph)
if keyword(ii)==alph(jj)
w1(ii)=b1(jj);
end
if code(ii)==alph(jj)
c1(ii)=b1(jj);
end
end
end
ncode=w1+c1;
for ii=1:length(ncode)
if(ncode(ii)>25)
ncode(ii)=ncode(ii)-26;
else
continue
end
end
display(ncode);
for ii=1:length(ncode)
for jj=1:length(b1)
if ncode(ii)==b1(jj)
finalcode(ii)=alph(jj);
else
continue
end
end
end
disp(finalcode);
7 个评论
Les Beckham
2023-1-20
You need to get clarification on what portion of the algorithm is supposed to be randomized. Perhaps the code string is supposed to be randomly generated? Until that is clarified, there isn't really anything else we can do to help with this.
采纳的回答
Les Beckham
2023-1-20
Assuming that the random part of the algorithm is generating the code character vector as you said in one of your comments, something like this should do what you want.
Note that this is using RandStream as requested. It could be more easily and more simply done using randi directly without using RandStream.
s = RandStream('dsfmt19937'); % << arbitrarily chosen generator type; change as you wish (see doc link above)
r = randi(s, 26, [1 4]); % 4 integers between 1 and 26 using stream s
code = char(r + 'a'); % convert to letters of the alphabet
% Then use the simplified one-time pad algorithm I showed in my comment above
keyword='famt';
w1 = double(keyword - 'a');
c1 = double(code - 'a');
ncode = mod(w1+c1, 26)
finalcode = char(ncode + 'a')
2 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!