program FileCoding;
const Brk=4;
type Range=1..Brk; const stend:array[Range] of Range=(3,1,4,2); var Fin :file; FOut :file of byte; Tmp :array[Range]of byte; RealCnt, i: integer; begin assign(FIn,'input.txt'); reset(FIn,1); assign(FOut,'output.txt'); rewrite(FOut); while not(eof(FIn))do begin BlockRead(FIn, tmp, Brk, RealCnt); for i:=RealCnt+1 to Brk do Tmp[i]: =0;
for i:=1 to Brk do write(FOut, Tmp[stend[i]]); end; close(FIn); close(FOut); end. program FileEnCoding;
const Brk=4;
type Range=1..Brk; const
stend2:array[Range] of Range=(2,4,1,3); var
Fin :file;
FOut :file of byte; Tmp :array[Range]of byte;
RealCnt,i: integer;
Begin
assign(FIn,'output.txt'); reset(FIn,1);
assign(FOut,'output2.txt'); rewrite(FOut); while not(eof(FIn)) do begin
BlockRead(FIn, tmp, Brk, RealCnt);
for i:=RealCnt+1 to Brk do Tmp[i]:=0;
for i:=1 to Brk do write(FOut, Tmp[stend2[i]]); end;
close(FIn); close(FOut); end.
Күрделі орын ауыстыру шифрлері Қарапайым орын ауыстыру шифрлерінен басқа кестедегі хабарды жол және баған бойынша орын ауыстыру шифрлері де бар. Шифрлеу бірнеше вариант бойынша жүргізілуі мүмкін. Күрделі орын ауыстыру шифрлерінде ашық текстің символдар тобы тек жолдар бойынша емес бағандар бойынша да ауыстырылады. Төмендегі қадамдар орындалуы тиіс: Кестегеашықтексжазылады. (бірнешежолменжазуғаболады);
Жоғарыдағы хабарды басқа орын ауыстыру шифрімен шифрлейміз. Мұнда шифрлеу тізбектелінбеген ашық текст жолдарлардын кілт бойынша оқудан пайда болады. Жолдар шифртекст жанындағы вертикаль бойынша орналасқан кілт бойынша оқылады. Негізгі әдебиеттер: [2] - 193- 206 б. Бақылау сүрақтары: Блоктың ұзындығы қандай?
Кілттің ұзындығы қандай?
Состояния деген не және оны қалай кәрсетуге болады?
Раундтық кілттердің жалпы бит сандары қалай есептеледі?