Жоғарғы деңгейлі программалау тілдері жарыққа шыға бастағаннан бері көптеген программалау тілдері пайда болды. Қазіргі кезде олар процедуралық, логикалық және объектілі бағдарлық болып үш түрге бөлінеді. Мысалы, дәстүрлі (“классикалық ”) процедуралық программалау тілдері – Фортран, Бейсик, Паскаль, логикалық тілдер – ЛИСП, Пролог. Есептеуіш техниканың қарқынды дамуы және программалық жабдықтауды тиімді дайындауға қажеттілік нәтижесінде соңғы кездердеWindows ортасында жарыққа шыққан және объектілі бағдарлы программалау (ОБП) негізінде құрылған программалау тілдері – Borland C++ for Windows, Object Pascal және визуальды Microsoft Visual Basic, Borland Delphi.
Процедуралық программалау тілдерінде программаның жұмысы операторларды ретімен орындау бойынша, ал логикалық программалау тілдерінде ол қатаң логикалық ережелерге сәйкес өзгертулер енгізу ретінде қарастырылған болатын.Объектіге бағдарлы оқиғалық программалау тілінде программаның жұмысы негізінен оқиғалар тізбегінен және түрлі объектілердің осы оқиғаларға жауабынан тұрады. Олардың визуальді түрлері - Visual Basic тілі QBasic программалау тілі негізінде , Delphi(Дельфи), Object Pascal(Объектілі Паскаль) тілі негізінде Windows операциялық жүйесін басшылыққа алып құрылған (visual – көзбен көруб экрандық). Олар әсіресе, Delphi программалау тілі – кез келген қосымшаны дайындауға болатын жылдамдығы тез, қуатты тіл.
Delphi – дің бірінші нұсқасы 1994 жылы жарыққа шығып , кейінгі жылдары оның бірте- бірте кеңейтілген 2,3,4,5,6- нұсқалары жарық көрді. Мысалы , 5- нұсқа 1999 жылы, 6-нұсқа 2001 жылдың мамыр айында жарыққа шықты. 5,6 – нұсқалардың бір-бірінен айырмашылығы жоқ деуге болады, екеуі де Windows32 операциялық жүйесінің негізінде дайындалған. Тек, Delphi6, оған қоса 1991 жылы жарық көрген, салыстырмалы арзан, Linex операциялық жүйесінің негізінде де жұмыс істей алады(Linexжүйесі UNIX операциялық жүйесіне шамалас, мүмкіндігі Windows32 жүйесінің мүмкіндігінен кем емес).
Қазіргі кезде қоғамдағы өмірде берілгендерді өңдеуде автоматтандырылған жүйені күнделікті қолдану барысында берілгендерді енгізу, сақтау және шығару қажет болады. Жалпылама компьютеризация, пайдасымен бірге көптеген мәселелерді алдына қояды, соның ішінде ең қиыны ақпараттың қауіпсіздігі болып табылады. Адамдардың автоматтандыруға ең жоғарғы деңгейге ұмтылуы, көп қолданылатын арзан компьютерлік жүйелерге деген сұранысы берілгендердің қауіпсіздігін қамтамасыз ету тәуелділігіне әкеліп соғады. Дербес компьютерлердің пайда болуы тек қана қолданушылардың ғана мүмкіндігін кеңейтіп қана қоймай сонымен қатар жүйе бұзушыларға да кең жол ашып отыр. Компьютерлік жүйенің қауіпсіздігі әлден ғылыми зерттеуде өзіндік бағытқа ие болады. Бірақ осыған қарамастан шешілмеген мәселелер саны азаймай отыр. Мұның себебін ең алдымен ғылыми техникалық прогрестің өте үлкен жылдамдықпен даму барысымен түсіндіруге болады.
Delphi ортасы.
Delphi-дi iске қосу.
Delphi програмасын iске қосу үшiн бiз ең алдымен Delphi програмасын орнатуымыз керек. Егер программа орнатылған болса, онда оны әдеттегiдей Iске қосу (Пуск) – Программалар (Программы) - Borland Delphi 6 ® Delphi 6 командалары арқылы iске қосамыз.
Бұл кезде Delphi 6 программасы iске қосылады, (1.1-сурет) көрсетілген.
1.1-сурет. Delphi 6 программасының ашылуы.
Бұл программаны iске қосқанда ең алдымен Delphi програмасының негiзгi үш терезесi экранда көрiнедi (1.2-сурет). Бұл терезелер:
1- шiсi Delphi ортасының негiзгi терезесі болып саналады.
2-шiсi Delphi ортасының формасы (Form1) деп аталады.
3-iici Delphi jhnfcsysң j,]trn bycgtrnjh nthtptci (Object Inspector)/
1.2-сурет. Delphi програмасының алғашқы көрiнiсi.
Жалпы, ортада программа құруға арналған төртiншi, модуль терезесi де iске қосылады (Unit1.pas). Форма терезесiнiң астында орналасатындықтан, ол алғашқыда көрiнбейдi. Delphi-дiң негiзгi терезесiнiң құрамына мәзiр, аспаптар панелi жєне компоненттер палитрасы енгiзiлген (1.3-сурет).
Windows-тағы сияқты Delphi-де программалар оқиғалар арқылы басқарылады. Мысалы, пайдаланушы программа құру үшiн алдымен формаѓа компонент орнатуы, форманы не формада орналастырылған компоненттi тышқан арқылы шертуi мүмкiн. Оның әр iс-әрекетi оқиға шақырады. Яғни, оқиға – программаның жұмыс iстеуi кезiнде объект жағдайының өзгеруi.
Delphi-де әр оқиғаға атау берiлiп қойылған. Мысалы, компоненттер палитрасыныњ Button түймесi арқылы формада орнатылған Button1 компонентiн шерту Click (Шерту) оқиғасын шақырады.
Әр объектiге байланысты оқиғалар жеткiлiктi Мысалы, формаға байланысты оқиғалар саны – 35 (1.4-сурет). Олар қасиеттер терезесiнiң Events қосымша бетiне енгiзiлген. Терезеде оқиға атауларының алдына On префиксi (қосымшасы) тiркестiрiлiп жазылған. Ол – атаудың оқиға екендiгiн бiлдiретiн белгi.
Delphi-де программа (проект) екi бөлiмнен тұрады: алғашқыда автоматты түрде project1 атауы берiлетiн проект файлы (негiзгi модуль) жєне unit1.pas атауы берiлетiн модуль. Олар жеке терезелерде орналастырылған. Модульге оқиғаларға сєйкес iс-әрекеттердi орындайтын программа мәтiнi (процедуралар) енгiзiледi. Программа мєтiнiн программалық код деп, терезенiпрограммалық код терезесi не қысқаша редактор терезесi деп те атайды. 1.1-тақырыпта ескертiлгенiндей, Delphi iске қосылған кезде ол форма терезесiнiң астында көрiнбей тұрады. Оны экранға шығару тәсiлдерi:
- форманы жабу (жабу түймесiн шерту);
- код терезесiнiң бiр шетi форма астында көрiнiп тұрса, оны шерту.
Терезе белсендiрулi түрде ашылады да, онда процедура дайындамасы (үлгiсi) көрiнедi. Оның тақырыбы нүкте арқылы бөлiнген класс және процедура атауларынан тұрады (1.5-суретте) т.б.
Жалпы, формадан код терезесiне өту және код терезесiнен формаға өту үшiн F12 клавишiн басу жеткiлiктi. (1.5-сурет) көрiнiп тұрғаны – код терезесiне енгiзiлген процедура дайындамасы. Оқиғаға байланысты құрылатын процедура оқиғаны өңдуiш не оқиғаны өңдеу процедурасы делiнедi.
Программа құрылымы. Негізгі модуль. Модуль. Әдіс.
Кез келген программа program сөзінен басталатын проект файлымен бір не бірнеше модулдерден тұрады да, қолдан құрылатын программа модуль ішіне енгізіледі. Проект файлы *.dpr, модуль *.pas кеңейтілуі бойынша сақталады. Проект файлын негізгі модуль деп атайды. Негізгі модульдің мазмұны проектінің жалпы сипаттамасынан тұрады. Delphi іске қосылған кезде оны ол автоматты түрде дайындап шығады. Негізгі модульге ерекше жағдайлардан басқа кездерде қосымша нұсқаулар енгізудің қажеті жоқ. Негізгі модуль(проект):
Project1 - негізгі модуль (проект) атауы. Проектіні дайындап, жаңа атау бойынша сақтаған кезде ол соңғы атауға алмастырылып қойылады.
Uses (қолдану) – Турбо Паскальдағы сияқты, қызметші сөз. Оның соңына программада пайдаланылатын стандартты (кітапханалық) Forms модулі мен Delphi - дің модульге алғашқы реті меншіктеген атауы (Unit1) жазылған. Unit1-ден соң оның қайсы модульдік файлда құрылатыны және онымен байланысты форма атауы көрсетіледі.
{$R *.RES} - нұсқау. Ол компиляторға қосымшаның Windows көмегімен дайындалғанын қолданбалы программаның қор сипаттамаларын, мысалы, шарт белгілер сақталған файлды және т.с.с. пайдалану керектігін көрсетеді (файлдың кеңейтілуі -*.res);
Begin - end операторларының аралығына енгізілген соңғы бөлім – қосымшаның алғашқы жүктелуін қамтамасыз ететін әдістер.Delphi - де арнайы іс-әрекетті орындайтын процедура және командалар әдісі делінеді:
Application.Initialize - қосымша объектісін инициалдау программаны алғашқы рет дайындау әдісі;
Application.CreateForm - проект құрамына енетін форманы дайындап, экранда көрсету әдісі;
Application.Run - программаны іске қосуды қамтамасыз ету әдісі.
Delphi - де әдістің командалық түрде жазылуы:
<Объект>.<Әдіс>
Мысалы, Application.Initialize - Application объектісінің Initialize әдісін орындау. Кейбір жағдайда бөлімге проект сақталатын бума атын меншіктеу командасын қосып қою да мүмкін. Жалпы Delphi - де программаның орындалуы автоматты түрде негізгі модульді орындаудан басталады.
Модуль – түрлі іс-әрекеттерді орындауға арналған программа бөлімі. Модуль тақырыбы Unit модуль қызметші сөзінен басталып, соңына әдеттегідей нүктелі үтір таңбасымен аяқталатын модуль атауы жазылады. Delphi - дің модульге алғашқы рет меншіктейтін атауы Unit1. Жаңа проект ашылған кезде модуль дайындамасы да автоматты түрде құрылады:
Интерфейс (interface) бөлімі кілттік сөзімен басталады да оған келесі бөлімдер енгізіледі: uses – Турбо Паскальда пайдаланатын бөлім сияқты, оған стандарты модуль атаулары жазылады. Бөлімге пайдаланушы дайындалған модуль атауын кірістіріп қою да мүмкін. Одан әрі, Delphi дайындаған форма типі сипатталады. Онда өрістер, қасиеттер, компоненттер сипаталып, олардан соң модульге жазылатын проседуралармен функциялар прогармма элементтері жарияланады.
Private (жеке дербес) бөліміне тек ағымдық модульге тиісті элементтер енгізілуі мүмкін (элемент - өрістер, әдістер, қасиеттер мен оқиғалар).
Public (көпшілік) бөлімнің ішінде ағымдық модульге қол жеткізуге болатын не модульдің көрінетін элементтері, облыстары енгізіледі. Олар класқа енетін элементтердің пайдалану облыстарын ғана анықтайтын болғандықтан, әдетте (көп жағдайда) олар бос көрінеді.
Impelementation (іске асыру, орындау) бөліміндегі – {$R *.DFM} - *.dfm кеңейтілуі бойынша жазылған файлды пайдалану нұсқауы. Ол модульді оған сәйкес форманың сипаттамасымен байланыстырады (файлға форма қасиеттерінің мәндеріжазылып қойылған. Ол формада орнатылған компонентер қасиеттерінің де сипаттамаларын бойында сақтайды. Қасиеттер сәйкес Object Inspector терезесінде көрінеді). Одан соңғы қатарларға программалаушы Delphi тілінде қажетті проседураларды қолдан кірістіру керек. Олардың ішіндегі оқиғаны өңдеуіш проседуралардың тақырыптары модульдің интерфейс бөлімінде автоматты түрде жазылып қойылады.
Кейде модульдің соңына инициялдау (initialization) бөлімі енгізіледі. Бөлім модуль айнымалыларын инициялдап бастапқы мәндер беріп программаны дайындaу үшін қажет. Егер ол толтырылса, бұл бөлім басқаруды программа денесіне беруден бұрын орындалады. Бөлім нұсқауларын begin және end кілттік сөздерінің арасына енгізу керек. Жоғарыда көрсетілген сияқты бөлім толтырылмаса, begin сөзі жазылмай оған тек end сөзі енгізіледі. Ол – модульдің соңын білдіретін кілттік сөз.
Б.э.д. және орта ғасырда қолданылған шифрлар
- Криптографияның даму тарихы.
Криптографияның тарихы бірнеше мыңдаған жылдарды қамтиды. Ежелгі өркениетті – Үндістан, Қытай, Египет, Месопотамия секілді елдерді тарихи құжаттарда шифрланған хаттарды құрастыру жөніндегі жүйелер мен тәсілдер жайында мәліметтер келтіріліп қарастырылған. Шифрлау жүйелері біздің эрамызға дейінгі дәуірдің төртінші мыңжылдығында хат жазу жүйесінің дамуымен қатар дамыған болса керек.
Ежелгі Үндістан қолжазбаларында хаттар үлгісінің 60-тан асқан түрлері кездеседі, олардың арасында криптографиялық жүйеде қарастыруға жататын түрлері де кездеседі. Дауысты әріптерді дауыссыз әріптермен және керісінше ауыстыру жүйелеріне сипаттамалар берілген. Месопотамия елдерінде шифрланып сақталған мәтіндердің бір түрі кесте түрінде көрсетілген. Ол кестеде көркемөнер саласында ою - өрнектерді, әшекейлерді жасаудын, дайындаудын рецептісі мазмұндалған. Бұл мәтінде сирек қолданылатын белгілер, атаулардың орнына шифрлық белгілер қолданылған. Ежелгі Египеттің қолжазбаларында религиялық мәтіндер және медициналық рецептер шифрленген. Шифрлеу жүйелері Библияда қолданылған. Библиялық мәтіндердің бірқатар көрністері атбаш деп аталатын шифрлар (құпия жазбалар ) көмегімен шифрланған. Шифрлаудың ережесі алфавиттегі ( әліпбедегі ) і - әріпін (i=1,…,n) әріптермен және n-і+1 нөмірлерімен алмастырудан тұрған, мұндағы n – алфавиттегі әріптер саны. Атбаш – сөзінің шығу тегі әріптерді алмастыру принципімен түсіндіріледі. Бұл сөзді Алеф, Тая, Бет және Шин әріптерінен құралған, яғни бірінші және соңғысы, екіншіжәне соңғысының алды ежелгі семити алфавитіндегі әріптерден.
Криптографияның дамуына идеографмялық хат жүйесінен фонетикалық хатқа өту жүйесі негіз болған.Біздің эрамыздың екінші мың жылдығында ежелгі семитстік алфавитінде 30 белгі болған. Ол белгілерменен дауыссыз дыбыстар және кейбір дауысты дыбыстармен белгіленген. Хаттарды қысқартып жазу криптографияның дамуын ынталандырды.
Ежелгі Грецияда криптография қызметтіліктің түрлі саларында қолданыла бастады, әсіресе мемлекеттік салаларда. Біздің эрамыздың V – IV ғ.ғ. Спартада алғашқы шифрланған құралдардың бірі - Сцитала қолданыла бастады.
Көп қауымдастықты жергілікті жерлерді басқару үшін Рим үкіметінің басқару органдары үшін шифрленген байланыстар өте қажет болған. Құпияны сақтауға Цезарь ұсынған шифрлау тәсілі маңызды болды. Цезарь әріптеріді қойылу реттіліктеріне сай алмастырылды, олардың төменгі қатарлары циклді түрде үш әріпке сол беткейге жылжытылған ашық мәтінді алфавиттен тұрады.
Германияда алғашқы шифрларды ашатын бөлімшесінің бастығы Вижинера шифрын жетілдірудегі варианттардың бірін құрастырған граф Гронсфельд болды. Ол тез, оңай жатталатын ұрандардың сандық жүйелерін қолданды. Вижинер кестесінің бір араластырылмаған алфавит қолданылды. Шифрлауда ашық текстің белгілері цифрлық лозунг түрінде жазылды. Ашық текстің келесі әрібі оң жақта орналасқан әріптер санымен араластырылды. Ол әріп лозунгтың ұранының цифрасына сай келуі керек.
2.2. Б.э.д. және орта ғасырдағы қолданылған шифрді пайдаланып, Delphi ортасында бағдарлама құру.
Құрылған бағдарламада негізгі 3 форма бар. Алғашқы форма негізгі форма. Онда үш «Button», бір «BitBtn», бір «MainMenu» және бір «Memo» енгізілген. Олардың қасиеттерін төмендегідей етіп өзгерттім
Компонент
|
Қасиет
|
Мән
|
Button1
|
Caption
|
Шифрование Цезаря
|
Button2
|
Caption
|
Шифрование Гронсфельда
|
Button3
|
Caption
|
назад
|
Bitbtn
|
Kind
|
Close
|
Memo1
|
Lines
|
Автор...
|
Бұл формадағы «Шифрование Ю.Цезаря» деген «Button1» өрісін шерткен кезде Цезардың шифрі екінші форма шығады. Мұнда төрт «Button», екі «Memo», бір «Label» және бір «Edit» енгізілген. Ондағы «Открыть» батырмасы файлды ашады. Ол төмендегідей.
«Открыть» батырмасының бағдарламасы:
procedure TForm2.Button1Click(Sender: TObject);
var f:textFile;
gul:string[80];
buf:string[80];
begin
gul:=edit1.Text;
assignFile(f,gul);
try
Reset(f);
except
on EInOutError do showmessage('Ошибка доступа к файлу '+gul);
end;
while not EOF(f) do
begin
readln(f,buf);
Memo1.Lines.Add(buf);
end;
n:=Memo1.Lines.Count;
closefile(f);
end;
«Шифровать» батырмасы ашылған файлды шифрлайды және оны Memo2 – ге шығарады. Ол төмендегідей.
«Шифровать» батырмасының бағдарламасы.
procedure TForm2.Button2Click(Sender: TObject);
var ss,a:string[80];
s:char;
sk,i,l,k:integer;
begin
for i:=0 to n-1 do
begin
a:=Memo1.Lines[i];
l:=length(a);
ss:='';
for k:=1 to l do
begin
s:=a[k];
sk:=ord(s);
sk:=sk+3;
s:=chr(sk);
ss:=ss+s;
end;
Memo2.Lines.Add(ss);
end;
end;
«Расшифровать» батырмасы шифрланған мәтінді кері шифрлайды және оны қайтадан Memo1-ге шығарады.
«Расшифровать» батырмасының бағдарламасы.
procedure TForm2.Button3Click(Sender: TObject);
var
ss,a:string[80];
s:char;
sk,i,l,k:integer;
begin
Memo1.Clear;
Memo1.Lines.Add('Расшифровка');
for i:=0 to n-1 do
begin
a:=Memo2.Lines[i];
l:=length(a);
ss:='';
for k:=1 to l do
begin
s:=a[k];
sk:=ord(s);
sk:=sk-3;
s:=chr(sk);
ss:=ss+s;
end;
Memo1.Lines.Add(ss);
end;
end;
«Назад» батырмасы қайтадан форма бірге келеді.
Бірінші формадағы «Шифр Гронсфельда» батырмасын басқанда үшінші форма шығады.Онда үш «Button», екі «Memo», бір «Label» енгізілген. Ондағы «Шифровать» батырмасын басқан кезде Memo1-дегі сөзді Label1-дегі лозунг бойынша шифрлайды.
«Шифровать» батырмасының бағдарламасы:
procedure TForm3.Button4Click(Sender: TObject);
var s,e,z:string;
d:byte; i,j,t:integer;
a:array[1..15] of byte;
b:string[15];
begin
s:='abcdefghijklmnopqrstuvwxyz';
b:=inputbox('','Введите строку:','');
memo1.Lines .add(b);
for i:=1 to length(s) do
begin
s[i]:=s[i];
end;
for j:=1 to length(b) do
begin
a[j]:=strtoint(inputbox('','Cifru na simbol: ',''));
Label1.Caption :=Label1.Caption +inttostr(a[j]);
end;
for j:=1 to length(b) do
for i:=1 to length(s) do
if b[j]=s[i] then
e:=e+s[i+a[j]];
memo2.lines.add(e);
end;
«Расшифровать» батырмасын басқан кезде «Шифровать» батырмасына керісінше. Олар келесідей:
«Расшифровать» батырмасының бағдарламасы:
procedure TForm3.Button3Click(Sender: TObject);
var s,e:string;
d:byte; i,j,t,l:integer;
a,p:array[1..15] of byte;
b:string[15];
begin
memo1.Clear ;
memo1.Lines .add('Расшифровка');
s:='abcdefghijklmnopqrstuvwxyz';
b:=inputbox('','Введите строку:','');
for i:=1 to length(s) do
begin
s[i]:=s[i];
end;
for j:=1 to length(b) do
begin
a[j]:=strtoint(inputbox('','Cifru na simbol: ',''));
end;
for j:=1 to length(b) do
for i:=1 to length(s) do
if b[j]=s[i] then
e:=e+s[i-a[j]];
memo1.lines.Add(e)
end;
«Назад» батырмасы қайтадан бірінші формаға келеді.
Бірінші формадағы «Справка» мәзіріндегі « О программе» ішкі мәзірінде автор туралы жазылған. «О программе» ішкі мәзірі бірінші формаға шығады. Онда екі «Button», бір «BitBtn» компонентері көрінбей тұрады және бір «Button» , бір «Memo» көрініп тұрады. Ол төменде келтірілген:
Нақты бір ақпарат жүйесі үшін таңдау қорғаныс әдісінің күшті және әлсіз жақтарын тереңінен талдауды қажет етеді. Таңдап алынған қандай – да бір қорғаныс жүйесі тиімділік критерилерін қанағаттандыруы керек. Өкінішке орай қазіргі кезде дейін криптографиялық жүйенің тиімділігін анықтауға және бағалауға мүмкіндік беретін сәйкес әдістеме жасалмаған. Мұндай тиімділіктің ең қарапайым түрі – кілтті ашу ықтималдылығы мен немесе кілттің көптілігі. Негізі бұл крипто тұрақтылыққа жатады. Оны бағалауға барлық мүмкін кілттерді теру немесе ашу қиындығын қолдануға болады. Бірақ бұл критерий крипто жүйеге қойылатын басқа да маңызды талаптарды ескермейді.
1. Ашудың мүмкін еместігі немесе әдейі модификацияланған ақпарат
2. Қолданылатын қозғалыс протоколдарының кең мүмкіндіг
3. Қолданылатын кілттік ақпараттың ең кіші көлемі.
4. Іс жүзінен асырудағы қолайлық және құндылығы.
5. Жылдам жұмыс жасауы.
АҚШ заң шығару органының шешімімен (International Traffic in Arms Peguiation келісімі) криптографиялық құрылғылар, соның ішінде бағдарламалық қамтамасыздандыру қарулы – күштер жүйесіне жатады.
Сондықтан криптография қолданылатын бағдарламалық өнімді экспорттағанда Мемлекет департаментінің арнайы рұқсаты қажет.
Криптографиялық өнімдердің экспортталуының барлығы н NSA (National Security Agency) бақылап отырады. АҚШ үкіметі лицензияларды бере бермейді, себебі ол АҚШ ұлттық қауіпсіздігіне нұқсан келтіруі мүмкін.
Жақында Hewlett – Packard компаниясына оның Ver Secure криптографиялық комплексін Ұлыбританияға, Германияға, Францияға, Данияға және Австралияға экспорттауға рұқсат берілді. Енді Hewlett – Packard компаниясы ең сенімді саналатын 128 – биттік Triple DES криптостандарты мен бұл аталған мемлекеттерді қамтамасыз ете алады.
Осы жерден қара Delphi 7 жәйлі реферат