PОЗДІЛ 2 ТЕОРЕТИЧНІ ВІДОМОСТІ МОВИ ПРОГРАМУВАННЯ JAVA 1 страница
Київський національний торговельно-економічний університет
Кафедраінформаційних технологій в міжнародній торгівлі
ВИПУСКНИЙ КВАЛІФІКАЦІЙНИЙ ПРОЕКТ (РОБОТА)
на тему:
Шифрування даних на мікропроцесорах за допомогою мови програмування Java
Студента 2 курсу, групи 12М, спеціальності (8.05010101 інформаційні управляючі системи та технології) | Москаленко Павло Сергійович | |
Науковий керівник доктор техн. наук, професор, зав. каф. інф. техн. в міжн. торгівлі | Краскевич Валерій Євгенійович | |
Науковий консультант канд. фіз.-мат. наук, доцент кафедри інф. техн. в міжн. торгівлі | Самойленко Анна Тимофіївна |
Київ 2016
Київський національний торговельно-економічний університет
Кафедраінформаційних технологій в міжнародній торгівлі
РЕФЕРАТ
ВИПУСКНОГО КВАЛІФІКАЦІЙНОГО ПРОЕКТУ (РОБОТИ)
на тему:
Шифрування даних на мікропроцесорах за допомогою мови програмування Java
Студента 2 курсу, групи 12М, спеціальності (8.05010101 інформаційні управляючі системи та технології) | Москаленко Павло Сергійович | |
Науковий керівник доктор техн. наук, професор, зав. каф. інф. техн. в міжн. торгівлі | Краскевич Валерій Євгенійович |
Київ 2016
Обсяг дипломної роботи - 112 сторінок, на яких розміщено 3 рисунки, 9 таблиць. При написанні дипломної роботи використовувалося 16 джерел.
Ключові слова: криптографія, шифрування, дешифрування, алгоритм, мова програмування.
Мета роботи – винайти новий метод шифрування.
Дипломна робота складається з наступних розділів: аналіз перспективності шифрування i найпоширеніші криптографічні системи, теоретичні відомості мови програмування Java, розробка нового алгоритму шифрування на мові програмування Java, висновки та список використаних джерел.
В першому розділі розкривається необхідність дослідження за обраним напрямком і проблема, що стосується обраної теми. Також ставляться цілі, які потрібно досягти в експериментальній частині. Розглядаються різні алгоритми шифрування інформації. У другому розділі обирається засіб, який було обрано для створення нового алгоритму шифрування даних i описуються теоретичні відомості мови програмування Java. У третьому розділі описується власний метод оцінки алгоритмів шифрування, розкривається суть нової криптографічної системи i описується новий алгоритм шифрування y вигляді створення програми на мові Java. У висновках підсумовуються отримані результати.
АНОТАЦІЯ
Москаленко П.С. Шифрування даних на мікропроцесорах за допомогою мови програмування Java. В дипломній роботі розглядається шифрування на мікропроцесорах, як криптографічний захист інформації. Пояснюється необхідність впровадження нових методів шифрування i розвиток криптографії в Україні. Згадується про методику оцінки криптографічних систем, яку було винайдено студентом рік тому. Розроблено новий метод шифрування за допомогою об’єктно орієнтованої мови програмування Java, суть якого полягає в тому, що кожний наступний елемент даних шифрується попереднім. Такий вид шифрування легко покращати, a отже його життєвий цикл буде дуже довгим. Зламати ж таку криптографічну систему можливо лише методом грубої сили, що показує надійність шифру. Ключові слова: криптографія, шифрування, дешифрування, алгоритм, мова програмування.
Москаленко П.С. Шифрование данных на микропроцессорах c помощью языка программирования Java. В дипломной роботе рассматривается шифрование на микропроцессорах, как криптографическая защита информации. Объясняется необходимость внедрения новых методов шифрования и развития в Украине. Вспоминается методика оценки криптографических систем, которая была сделана студентом год назад. Разработан новый метод шифрования c помощью объектно ориентированного языка программирования Java, суть которого заключается в том, что каждый следующий элемент данных шифруется предыдущим. Такой вид шифрования легко улучшить, a значит, его жизненный цикл будет длительным. Взломать такую криптографическую систему можно только методом грубой силы, что показывает надежность шифра. Ключевые слова: криптография, шифрование, дешифрование, алгоритм, язык программирования.
Moskalenko P.S. Encryption of data on microprocessors using the Java programming language. The diploma examines the data encryption on microprocessor as cryptographic protection of information. Explaines the need for new encryption methods and development in Ukraine. This work shows the method of estimation of cryptographic systems, which was made a year ago by a student. A new encryption method was made using object-oriented Java programming language, the essence of which lies in the fact that each data element is encrypted by a previous one. This type of encryption is easy to improve, that means, there will be a long life cycle for it. To hack this cryptographic system, you must use brute force method only, which shows the reliability of the cipher. Keywords: cryptography, encryption, decryption, algorithm, programming language.
ЗМІСТ
ВСТУП
РОЗДІЛ 1. АНАЛІЗ ПЕРСПЕКТИВНОСТІ ШИФРУВАННЯ I НАЙПОШИРЕНІШІ КРИПТОГРАФІЧНІ СИСТЕМИ 7
1.1. Актуальність 7
1.2. Постановка задачі 9
1.3. Огляд існуючих методів рішення проблеми 10
1.4. Мікропроцесори 15
1.5. Дослідження потреби шифрування на підприємстві 21
1.6. Найпоширеніші методи шифрування 22
Висновки до першого розділу 34
PОЗДІЛ 2. ТЕОРЕТИЧНІ ВІДОМОСТІ МОВИ ПРОГРАМУВАННЯ JAVA 35
2.1. Вибір засобу вирішення проблеми 35
2.2. Об’єктно орієнтована мова програмування Java 43
Висновки до другого розділу 88
РОЗДІЛ 3. РОЗРОБКА НОВОГО АЛГОРИТМУ ШИФРУВАННЯ НА МОВІ ПРОГРАМУВАННЯ JAVA 89
3.1. Методика оцінки ефективності криптографічної системи 89
3.2. Новий тип шифрування 91
Висновки до третього розділу 108
ВИСНОВКИ 110
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 111
ВСТУП
На сьогоднішній день криптографія займає важливе місце в ІТ індустрії. Криптографія – це секція ІТ сфери, яка вивчає методи захисту конфіденційності і автентичності інформації. Криптографія є важливим інструментом боротьби з кібертероризмом, створення і впровадження високоякісних трендових шифрувальних систем є важливим кроком на шляху захисту підприємств і, навіть, держави.
В наш час існують дві найбільші проблеми, що пов’язані з захистом інформації. По-перше, немає дійсно якісного алгоритму шифрування з гарним співвідношенням ціни-якості: звичайно, що люди хочуть захистити інформацію якомога краще, але не завжди вистачає грошей для такого виду шифрування, тому прийнято рішення, що алгоритм захисту інформації має коштувати менше ніж сама інформація. З іншого боку, якщо взяти дуже дешевий тип шифрування (алгоритм Цезаря), а інформація буде надважливою для підприємства, чи держави, хакерам вистачить кілька днів, щоб зламати код і увійти в систему, використовуючи потрібну їм інформацію у своїх цілях.
По-друге, до сих пір не розроблені якісні методики оцінки ефективності криптографічних систем, враховуючи ціну-якість. А отже, для користувача, або замовника постає складне питання, яку саме шифрувальну систему йому обрати; в рамках держави, якщо придбати послугу створення дешевого алгоритму захисту інформації, то немає ніякої гарантії, що на наступний день всі данні не будуть відомі іншій країні. Якщо ж вибрати найдорожчий варіант, то може не вистачити на більш важливі потреби народу, більш того, трохи дешевша система кодування може виявитися настільки ж ефективною, як і найдорожча.
Створення якісного типу шифрування i впровадження методики оцінки ефективності криптографічних систем є важливим завдванням для захисту інформації на рівні підприємства i, в деяких випадках, держави.
РОЗДІЛ 1
АНАЛІЗ ПЕРСПЕКТИВНОСТІ ШИФРУВАННЯ I НАЙПОШИРЕНІШІ КРИПТОГРАФІЧНІ СИСТЕМИ
Актуальність
В наш час майже всі бізнеси зіштовхнулися з величезною проблемою у вигляді кризи. В ці часи ми потребуємо економічної безпеки, фінансової, енергетичної і, що найважливіше, інформаційної безпеки.
Говорячи про останнє, є інструмент, який може бути використаний для вирішення цієї проблеми з технічної точки зору, а саме, економічний захист в контексті інформаційної безпеки.
В даному випадку, криза працює на нас, бо саме в тяжкі часи люди максимально викладаються і роблять неймовірне ймовірним.
З економічної точки зору, можливості, які стають все більш видимими, коли ми вибрали європейський шлях розвитку, ІТ індустрія України готова для виходу на міжнародний рівень. Інтелектуальна робота, яка може бути виконана дешево і професійно нашими українськими спеціалістами, готова змагатися на європейському ринку, пропонуючи все, що може бути комп’ютеризовано.
Криптографія якраз і є товаром, який ми б могли використати для аутсорсингу. Криптографія – це секція ІТ сфери, яка вивчає методи захисту конфіденційності і автентичності інформації. Наука дуже популярна за кордоном, але зовсім не багато компаній спеціалізуються на безпеці баз даних і кодуванні на міжнародному рівні. Наприклад, така відома компанія як Arxan Technologies, створена у 2001 році, постачає захист програм, а також Bloombase Inc., яка розробляє інформаційну безпеку у вигляді алгоритму щоб запобігти втручанням хакерів, що можуть своїми діями призвести до авіакатастроф.
Важливий факт, що в Україні сервіси інформаційної безпеки знаходяться на дуже низькому рівні розвитку. Більш того, інформаційна безпека в Європі не розвинута на стільки, на скільки потрібно, щоб бути впевненим y захисті інформації. Тож потрібно почати звертати увагу на криптографію.
Криптографія є важливим інструментом боротьби з кібертероризмом на державному рівні, а українські компанії довели, що можуть створити нові методи шифрування і навіть задати курс розвитку в цьому напрямі на міжнародному рівні.
Тож створення і впровадження високоякісних, трендових шифрувальних систем для мікропроцесорів є важливим кроком на шляху виходу з кризи.
1.2. Постановка задачі
У цій дипломній роботі буде виведений новий тип шифрування, який, на мій погляд, буде дешевим і одразу ж надійним. Також, буде розглянута власна методика оцінки ефективності криптографічної системи для полегшення вибору замовника.
Методика оцінки ефективності криптографічних систем допоможе підприємству обрати потрібну систему шифрування не переплачуючи за неї. Це полегшить вибір і дасть змогу отримати найкращий варіант саме для даного замовника, враховуючи його побажання.
Виведену нову систему шифрування, в даній дипломній роботі, буде вигідно використовувати для підприємств, які мають на меті захистити внутрішню інформацію. А різні секретні ключі для даного типу шифрування дадуть змогу захистити інформацію одним методом для різних відділів підприємства, що дуже вигідно. Даний тип шифрування дуже легкий у використанні, написаний на мові програмування Java, а отже підходить для використання на всіх операційних системах.
Ідея алгоритму полягає в шифруванні кожного наступного єлементу даних за допомогою попереднього. Чим складніше формулу впишемо в алгоритм, тим складніше буде розшифрувати текст.
У дипломній роботі буде розглянута власна методика оцінки ефективності криптографічних систем, a також буде виведений новий тип шифрування для мікропроцесорів, який, на мій погляд, буде дешевим і одразу ж надійним.
1.3. Огляд існуючих методів рішення проблеми
Для того, щоб створити новий метод шифрування, необхідно зробити огляд вже існуючих шифрів, взяти з них найкращі ідеї, додати свої і скомпонувати. Але перед цим потрібно зрозуміти що таке криптографія, її загальні визначення та класифікація, а також технологія захисту інформації.
Криптографія – наука про математичні методи забезпечення конфіденційності (неможливість отримати доступ до інформації стороннім особам) і автентичності (цілісності і справжності авторства) інформації. Розвинулась з практичної потреби передавати важливі відомості найнадійнішим чином.
Криптографія займалася виключно забезпеченням конфіденційності повідомлень (тобто шифруванням) — перетворенням повідомлень із зрозумілої форми в незрозумілу і зворотнє відновлення на стороні одержувача, роблячи його неможливим для прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для дешифровки повідомлення). В останні десятиліття сфера застосування криптографії розширилася і включає не лише таємну передачу повідомлень, але і методи перевірки цілісності повідомлень, ідентифікування відправника/одержувача (аутентифікація), цифрові підписи, інтерактивні підтвердження, та технології безпечного спілкування, тощо. Для сучасної криптографії характерне використання відкритих алгоритмів шифрування, що припускають використання обчислювальних засобів. Відомо більш десятка перевірених алгоритмів шифрування, які, при використанні ключа достатньої довжини і коректної реалізації алгоритму, роблять шифрований текст недоступним для крипто аналізу. Криптографія є найпотужнішим на сьогоднішній день засобом захисту інформації. Вона зародилася майже одночасно із самим мистецтвом письма і на сьогоднішній день перетворилася на могутню прикладну науку, засновану на глибоких математичних знаннях.
Проти самого криптографічного захисту не допомагають ні різні хитрощі, ні використання самих потужних електронно-обчислювальних машин (ЕОМ) світу – тут на сторожі таємниць стоїть математика. Єдиною можливістю для зловмисника є обхідні шляхи, такі як крадіжка діючих і використаних ключів, передбачення майбутніх значень генераторів псевдовипадкових чисел. Криптографічні ключі розрізняються згідно алгоритмам, в яких вони використовуються.
Секретні (Симетричні) ключі – ключі, що використовуються в симетричних алгоритмах (шифрування, вироблення кодів автентичності). Головна властивість симетричних ключів: для виконання як прямого, так і зворотного криптографічного перетворення (шифрування / розшифрування,) необхідно використовувати один і той же ключ (або ж ключ для зворотного перетворення легко обчислюється із ключа для прямого перетворення, і навпаки). З одного боку, це забезпечує більш високу конфіденційність повідомлень, з іншого боку, створює проблеми розповсюдження ключів в системах з великою кількістю користувачів.
Асиметричні ключі – ключі, що використовуються в асиметричних алгоритмах (шифрування); складаються з двох ключів (ключова пара):
Закритий ключ (Private key) – ключ, відомий тільки своєму власнику. Тільки збереження користувачем у таємниці свого закритого ключа гарантує неможливість підробки зловмисником документа і цифрового підпису від імені котрий запевняє.
Відкритий ключ (Public key) – ключ, який може бути опублікований і використовується для перевірки дійсності підписаного документа, а також для попередження шахрайства з боку посвідчує особи у вигляді відмови його від підпису документа. Відкритий ключ підпису обчислюється, як значення деякої функції від закритого ключа, але знання відкритого ключа не дає можливості визначити закритий ключ.
Симетричні криптосистеми володіють одним серйозним недоліком. Пов’язано це із ситуацією, коли спілкування між собою провадять не три-чотири особи, а сотні й тисячі людей. У цьому випадку для кожної пари, що листується між собою, необхідно створювати свій секретний симетричний ключ. Це в підсумку приводить до існування в даній нескладній системі з N користувачів N2/2 ключів. А це вже дуже «пристойне» число. Крім того, при порушенні конфіденційності якої-небудь робочої станції зловмисник одержує доступ до всіх ключів цього користувача й може відправляти, ніби від його імені, повідомлення всім абонентам, з якими «жертва» вела переписку.
Своєрідним рішенням цієї проблеми стала поява асиметричної криптографії. Ця область криптографії дуже молода в порівнянні з іншими представниками. Перша схема, що мала прикладну значимість, була запропонована всього близько 30 років тому. Але за цей час асиметрична криптографія перетворилася в один з основних напрямків криптології, і використовується в сучасному світі також часто, як і симетричні схеми.
Асиметрична криптографія задумана як засіб передачі повідомлень від одного об’єкта до іншого (а не для конфіденційного зберігання інформації, що забезпечують тільки симетричні алгоритми). Тому приймаємо терміни «відправник» – особа, що шифрує, а потім відправляє інформацію з незахищеного каналу й «одержувач» – особа, що приймає й відновлює інформацію в її вихідному вигляді. Основна ідея асиметричних криптоалгоритмів полягає в тому, що для шифрування повідомлення використається один ключ, а при дешифруванні – інший.
Крім того, процедура шифрування обрана так, що вона необоротна навіть за відомим ключем шифрування – це друга необхідна умова асиметричної криптографії. Тобто, знаючи ключ шифрування й зашифрований текст, неможливо відновити вихідне повідомлення – прочитати його можна тільки за допомогою другого ключа – ключа дешифрування. А якщо так, то ключ шифрування для відправлення листів якій-небудь особі можна взагалі не приховувати – знаючи його однаково неможливо прочитати зашифроване повідомлення. Тому, ключ шифрування називають в асиметричних системах «відкритим ключем», а от ключ дешифрування одержувачеві повідомлень необхідно тримати в секреті – він називається «закритим ключем». Напрошується питання : «Чому, знаючи відкритий ключ, не можна обчислити закритий ключ ?» – це третя необхідна умова асиметричної криптографії – алгоритми шифрування й дешифрування створюються так, щоб знаючи відкритий ключ, неможливо обчислити закритий ключ.
В цілому система переписки при використанні асиметричного шифрування виглядає в такий спосіб. Для кожного з N абонентів, що ведуть переписку, обрана своя пара ключів : «відкритий» Ej й «закритий» Dj, де j – номер абонента. Всі відкриті ключі відомі всім користувачам мережі, кожен закритий ключ, навпаки, зберігається тільки в того абонента, якому він належить. Якщо абонент, скажемо під номером 7, збирається передати інформацію абонентові під номером 9, він шифрує дані ключем шифрування E9 і відправляє її абонентові 9. Незважаючи на те, що всі користувачі мережі знають ключ E9 й, можливо, мають доступ до каналу, яким йде зашифроване послання, вони не можуть прочитати вихідний текст, тому що процедура шифрування необоротна за відкритим ключем. І тільки абонент 9, одержавши послання, робить над ним перетворення за допомогою відомого тільки йому ключа D9 і відновлює текст послання. Помітьте, що якщо повідомлення потрібно відправити в протилежному напрямку (від абонента 9 до абонента 7), то потрібно буде використати вже іншу пару ключів (для шифрування ключ E7, а для дешифрування – ключ D7).
Симетричні криптоалгоритми поділяються на:
1. Потокові шифри – побітна обробка інформації. Шифрування і дешифрування в таких схемах може обриватися в довільний момент часу, як тільки з’ясовується, що потік що передається перервався, і також відновлюється при виявленні факту продовження передачі.
1.1 Скремблер – це набір біт, які міняються на кожному кроці по визначеному алгоритму. Після виконання кожного наступного кроку на його виході з’являється шифруючий біт (0 або 1), який накладається на поточний біт.
2. Блочні шифри – перетворення блоку вхідної інформації фіксованої довжини. Схема застосовується при пакетній передачі інформації та кодування файлів.
2.1 Мережа Фейштеля – метод оборотних перетворень тексту, при якому значення, обчислені від однієї з частин тексту, накладається на інші частини. Часто структура мережі виконується таким чином, що для шифрування і дешифрування використовується один і той же алгоритм – різниця полягає лише в порядку використання матеріалу ключа.
В основному, симетричні алгоритми шифрування вимагають менше обчислень, ніж асиметричні. На практиці, це означає, що якісні асиметричні алгоритми в сотні або в тисячі разів повільніші за якісні симетричні алгоритми. Недоліком симетричних алгоритмів є необхідність мати секретний ключ з обох боків передачі інформації. Так як ключі є предметом можливого перехоплення, їх необхідно часто змінювати та передавати по безпечних каналах передачі інформації під час розповсюдження.
Переваги:
— Швидкість
— Простота реалізації (за рахунок більш простих операцій)
— Необхідна менша довжина ключа для порівнянної стійкості
— Вивченість (за рахунок більшого віку)
Недоліки:
— Складність управління ключами у великій мережі. Це означає квадратичне зростання числа пар ключів, які треба генерувати, передавати, зберігати і знищувати в мережі. Для мережі в 10 абонентів потрібно 45 ключів, для 100 вже 4950, для 1000 – 499500.
— Складність обміну ключами. Для застосування необхідно вирішити проблему надійної передачі ключів кожному абоненту, тому що потрібен секретний канал для передачі кожного ключа обом сторонам.
Для компенсації недоліків симетричного шифрування в даний час широко застосовується комбінована (гібридна) криптографічний схема, де за допомогою асиметричного шифрування передається сеансовий ключ, що використовується сторонами для обміну даними за допомогою симетричного шифрування.
Важливою властивістю симетричних шифрів є неможливість їх використання для підтвердження авторства, так як ключ відомий кожній стороні. [4]
1.4. Мікропроцесори
Мікропроцесор - інтегральна схема, яка виконує функції центрального процесора (ЦП) або спеціалізованого процесора. Сьогодні слово мікропроцесор є практично повним синонімом слова процесор, оскільки функціональний блок, що на ранніх стадіях розвитку обчислювальної техніки займали цілу плату чи навіть шафу, тепер вміщається в одну невеличку інтегральну схему із сотнями мільйонів транзисторів всередині. З середини 1980-х мікропроцесори витіснили інші види ЦП. Проте загалом це не так: центральні процесорні пристрої деяких суперкомп'ютерів навіть сьогодні є складними комплексами великих (ВІС) і надвеликих (НВІС) інтегральних схем.
В англійській мові слово processor загалом означає функціональний блок пристрою або системи (не обов'язково в електроніці), який виконує певний процес. В українській мові слова процесор, мікропроцесор закріпилися виключно для позначення електронної мікросхеми, що обробляє дані методом виконання команд із певного набору команд процесора.
Першим хто подав ідею універсального обчислювального процесора був Гофф Тед, який розробив архітектуру першого мікропроцесора. Практичну реалізацію здійснив Фредеріко Фаґґін.
Перша мікросхема успішно запрацювала 12 вересня 1958 року в компанії Texas Instruments. У 2000 році Нобелівську премію з фізики присудили Джеку Кілбі — за винахід інтегральної мікросхеми. Ще одним творцем інтегральної мікросхеми вважається Роберт Нойс, померлий в 1990 році (за правилами, Нобелівська вручається тільки живим вченим). Фізики як такої при створенні мікросхеми було небагато, але Килбі і Нойс «всього лише» придумали технологію, яка зробила переворот в електронній промисловості.
Перші мікропроцесори з'явилися на початку 1970-х і використовувалися в електронних калькуляторах для обробки 4-бітних слів, що являли десяткові цифри в двійковому представленні. Досить скоро з'явилися інші вбудовані реалізації, такі як термінали, принтери, автоматичні прилади тощо, що використовували 4-бітні і 8-бітні мікропроцесори. Поява 8-бітних процесорів з 16-бітною адресацією в середині 1970-х забезпечила достатній простір можливостей для реалізації перших мікропроцесорів загального призначення в мікрокомп'ютерах.
Довгий час процесори складалися з малих і середніх інтегральних схем, що містили в собі еквівалент від кількох до кількасот транзисторів. Інтеграція цілого центрального процесора в один чип значно зменшила вартість процесорної потужності. Послідовне впровадження мікросхем з більшим ступенем інтеграції робило цілі класи комп'ютерів застарілими, мікропроцесори з'явилися в широкому класі пристроїв, від малих вбудованих систем і ручних комп'ютерів до найбільших мейнфреймів і суперкомп'ютерів.
Починаючи з 1970-х збільшення процесорної потужності розвивається за правилами так званого закону Мура, який стверджує, що складність інтегральних мікросхем подвоюється кожні 18 місяців, за ті ж мінімальні гроші. В кінці 1990-х основним стримуючим фактором розвитку стало розсіюване мікропроцесором тепло.
Першим загальнодоступним мікропроцесором був 4-розрядний Intel 4004. Його змінили 8-розрядні Intel 8080 і 16-розрядний 8086, що заклали основи архітектури всіх сучасних настільних процесорів. Але внаслідок поширеності 8-розрядних модулів пам'яті був випущений 8088, клон 8086 з 8-розрядною шиною пам'яті. Потім пройшла його модифікація 80186. У процесорі 80286 з'явився захищений режим з 24-бітовою адресацією, що дозволяв використовувати до 16 МБ пам'яті. Процесор Intel 80386 з'явився в 1985 році і привніс покращений захищений режим, 32-бітову адресацію, що дозволила використовувати до 4 ГБ оперативної пам'яті і підтримку механізму віртуальної пам'яті.
Є два основні напрями розвитку індустрії виробництва мікросхем.
Перше - розробка архітектури, що включає вибір тих або інших функцій і особливостей майбутніх схем, мікросхемотехніку і компоновку на кристалі функціональних блоків і їхніх елементів, що втілюють вибрані функції. А також - оптимізація готових блоків для усунення вузьких місць, підвищення продуктивності і надійності роботи майбутніх схем, спрощення і здешевлення їхнього масового виробництва. Ці роботи можна умовно назвати «паперовими» - вони виконуються «на кінчику пера» і існують лише у вигляді комп'ютерних файлів і креслень проектів майбутніх мікросхем, що зовсім не виключає багатократного комп'ютерного моделювання фізичної роботи як окремих блоків, так і мікросхеми в цілому. Для цього використовуються спеціальні, ретельно узгоджені з реальними приладами фізичні моделі транзисторів і інших функціональних елементів. І чим ретельніше змодельована робота проекту, тим швидше і з меншими помилками буде виготовлена сама мікросхема (мається на увазі її фінальний, масовий варіант). Адже відладка, пошук і виправлення помилок проектування у вже готовому кристалі, як правило, значно складніше і дорожче, ніж моделювання на комп'ютері.
Другий основоположний напрям - це власне напівпровідникові технології виробництва мікросхем. Сюди входять наукова розробка і втілення в «кремній» все швидших і менших транзисторів, ланцюгів зв'язку між ними і іншим «обрамленням» мікроструктур на кристалі, створення технологій виготовлення малюнка ліній і транзисторів на поверхні кремнію, нових матеріалів і устаткування для цього, а також «manufacturability» - область знань про те, як проводити мікросхеми вищої якості, швидші, з великою кількістю придатних кристалів на пластині, меншим числом дефектів і розкидом робочих параметрів.
Літографія дозволяє переносити на низку шарів кремнієвої підкладки високоскладні мікросхеми з мільйонами транзисторів. Тоді як проектувальники мікросхем продовжують додавати нові функції і підвищувати продуктивність своєї продукції, скорочення розмірів транзисторів дозволяє уміщати всю більшу їх кількість в межах заданої області. Те, наскільки мініатюрними можуть бути транзистори і їхні з'єднання, безпосередньо залежить від довжини хвилі світла, що використовується для перенесення схеми на підкладку.
Виконання того чи іншого алгоритма можливо при наявності мікропроцесора та пристроїв, в яких зберігається програма. Відомо, що програма — це сукупність команд (правил), що виконуються в послідовності, заданій алгоритмом. Команди вибираються з пам'яті в послідовності, що задається процесором. Процесор визначає адреси елементів пам'яті, в яких зберігаються необхідні данні. Дані передаються в процесор, де перетворюються згідно з командами, і результати операції передаються знову в пам'ять.
Будь-яка мікропроцесорна система працює разом з рядом зовнішних пристроїв, одержуючи від них необхідну інформацію та передаючи іншу. Для зв'язку з зовнішними пристроями існує інтерфейс. Цим терміном позначається весь комплекс пристроїв, правил та технічних засобів, що регламентують та забезпечують обмін інформацією між мікропроцесором (включаючи пам'ять) та зовнішними пристроями. Головними в інтерфейсі є шини, або, як їх ще часто називають, магістралі. Магістраль - це сукупність провідників, для яких строго нормовані логічні рівні «0» та «1». Потужність сигналів на шинах має бути достатньою для живлення необхідної кількості приєднаних до них пристроїв. Для забезпечення цієї потужності використовуються спеціальні мікросхеми - шинні підсилювачі.
Найнижчим рівнем, який дозволяє описувати роботу цифрових пристроїв — це рівні логічних станів їх входів та виходів - таблиці станів.
Наступним рівнем є спосіб описання — це мова значень вхідних та вихідних сигналів, що складають мову мікрокоманд. Сукупність адрес та керуючих сигналів називаються мікрокомандою.
Третій рівень формалізації описання роботи мікропроцесора - це мова команд - тобто строга послідовність мікрокоманд, що записується в пам'яті мікропроцесорів. Тобто, команда, це слово, або набір слів, які дешифруються в послідовність мікрокоманд. Звідси витікає, що будь-який процесор має строго фіксований і обмежений набір команд, який є характерним для данного процесора. Будь-яка мікрокоманда характеризується своїм форматом. Під форматом мікрокоманди розуміється її протяжність та призначення кожного біта або їх групи. Команди, також мають свій фіксований формат. (Протяжність мікрокоманди - це стандартна для данного процесора кількість біт в слові). В залежності від протяжності команди, вона може складатися з одного, двох, та трьох слів.
Формат пам'яті мікропоцесорної системи також тісно пов'язаний з довжиною слова. Тому при зберіганні таких команд відповідно використовується адресний простір та пам'ять. Якщо, наприклад, команда складається з трьох слів, а використовується з послідовною адресацією, то для зберігання такої команди використовуються три послідовні адреси. Для того, щоб таку команду вибрати з пам'яті, необхідно мати спеціальні засоби, щоб забезпечити її представлення як єдине ціле.
Структура команд повністю залежить від структури мікропроцесора, але незалежно від типу процесора прийнято вважати, що однослівні команди повністю складаютья з коду операції. Двослівні команди складаються з коду операції та однослівного операнда. Трислівні команди також складаються з двох частин: перша частина - код операції, а друга - адреса, або двослівний операнд.
Типи команд, що використовуються, тісно пов'язані з внутрішньою організацією та алгоритмом функціювання мікропрограмного автомата процесора, та внутрішньою системою синхронізації. Мікропроцесорна система функціонує синхронно з частотою тактових сигналів зовнішнього генератора. В залежності від типу мікропроцесорів використовується одно- або двохфазна синхронізація. Незалежно від цього в мікропроцесорних системах використовуються триваліші інтервали часу, ніж тактовий інтервал зовнішнього генератора. Одним з таких інтервалів є машинний цикл - це інтервал, протягом якого мікропроцесор звертається до пам'яті або пристрою вводу-виводу. Машинний цикл (МЦ) складає тільки частину циклу команди. На початку кожного МЦ на одному з виходів мікропроцесора з'вляється сигнал синхронізації, він передається по лінії шини керування в пам'ять або пристрої вводу-виводу і «сповіщає» про початок нового МЦ, в результаті чого досягається узгодження в часі зовнішніх пристроїв з роботою мікропроцесора.
Цикл команди - це інтервал часу, необхідний для виборки з памєяті команди, та її виконання. Він складається з 1-5 машинних циклів. Їхнє конкретне число залежить від складності операції, яка виконується в данній команді і дорівнює числу звернень мікропроцесора до пам'яті. Тривалість виконання команди визначається кількістю тактів в циклі команди та тривалістю такту.
Протягом циклу команди, що ділиться на дві фази, робота мікропроцесора виконується в такій послідовності. Пристрій керування задає початок чергового циклу шляхом формування сигналу, по якому число, що знаходиться в лічильнику команд, відправляється в буферний регістр адреси і через нього направляється для дешифрації. Після приходу від мікропроцесору сигналу керування 'готовий' з елемента пам'яті, що знаходиться по вказаній адресі, зчитується слово команди, яке подається по шині даних в буферний регістр данних, а потім в пристрій керування, де дешифрується з допомогою кода операції. Ця послідовність операцій називається фазою виборки. За нею слідує виконавча фаза, в якій пристрій керування формує послідовність сигналів, необхідних для виконання команди. За цей час число, що знаходиться в лічильнику команд, збільшується на 1 (якщо довжина команди є 1) і формується адреса команди, що стоїть слідом за виконуємою. Вона зберігається в лічильнику до приходу сигналу, що задає початок чергового циклу команди.
Окрім адреси елемента в якому зберігається необхідний байт від мікропроцесора до пам'ті поступає сигнал по шині керування, який визначає характер операції - запис, або зчитування. Виконання вказаних операцій проходить протягом інтервалу часу, що називається часом доступу. По закінченні цього інтервалу від пам'яті в мікропроцесор подається сигнал готовності, який є сигналом початку прийому, або, відповідно, передачі сигналів в пам'ять. До одержання сигналу готовності мікропроцесор перебуває в стані очікування. Інтервал часу між імпульсами звернення до зовнішніх пристроїв та одержання від них відповіді називається циклом очікування.
Якщо, наприклад, цикл команди розглядати відповідно до команди вводу данних, то перші два машинних цикли будуть відноситись до фази виборки, а третій - до фази виконання команди. В усіх машинних циклах передається адреса, але в кожному циклі адреса належить своєму адресату, в першому - це адреса елемента, де здерігається код операції, в другому - адреса порта, що здерігає байт данних, в третьому - адреса акумулятора мікропроцесора, куди повинен поступити байт данних з порта.
Шифрування на мікропроцесорах нічим не відрізняється від звичайного шифрування, тому далі розбирати будемо найвідоміші та найрозповсюдженіші типи криптографічних систем. [14]