If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

XOR побитови операции

Основният шифър с изместване

Ако гледа урока за шифър с еднократен код, знаеш, че това е най-добрият шифър с отместване. Той се осъществява чрез прилагането на последователност от случайни замествания с дължина равна на дължината на съобщението. Важно е да разбереш точно как и защо този шифър е непробиваем или съвършено таен.
За да разберем защо, първо трябва да въведем побитовите операции AND (и), OR (или) и XOR (изключващо или). И най-вече, трябва да разберем защо XOR трябва да се използва, когато се използва шифър с еднократен код на компютри. Побитово просто означава, че работим с отделни битове или двоични числа. Във всяка съвременна компютъризирана схема за критиране ние представяме символите с помощта на двоични цифри. Ако не си спомняш защо, може да видиш клипа за компютърната памет

Криптиране на цветове

Let’s begin with a visual example by encrypting the color of the Khan Academy green leaf avatar.
Как можем да превърнем цвят в число? Ами, в момента виждаш HTML цветове, дефинирани с помощта на RGB цветови модел. Това е адитивен модел, който се основава на смесването на определени количества червена (R), зелена (G) и синя (B) светлина.
Можем да определим точно колко е RED (ЧЕРВЕНОТО), GREEN (ЗЕЛЕНОТО) и BLUE (СИНЬОТО), като използваме числата 0 до 255. Черното означава, че всички цветове са изключени (0;0;0), докато бялото значи, че всички цветове са включени (255;255;255). Между тях има 16 милиона възможни цветове (256 * 256 * 256). Сега нека определим зеленото в логото на Кан Академия, с помощта на произволна онлайн програма за редактиране на изображения:
Screenshot of the Photoshop color picker, with green selected.
Notice it stores it as RED=156, GREEN=181, BLUE=58.
Ако изразим числата двоично, получаваме:
Червено=10011100, Зелено=10110101, Синьо=00111010.
Можем да ги представим заедно така: 100111001011010100111010
Двоичното представяне на зеленото на Кан Академия е:
Зелен фон с 100111001011010100111010 отгоре

Приложение на случайните измествания

Сега да предположим, че генерираш редица от измествания, като хвърляш монета, и представяш резултатите (Ези/Тура) в двоичен вид:
ЕTЕTTЕTЕЕЕЕTTЕTTTTЕTTЕЕЕ = 010110100001101111011000
Let’s think about how we could apply this shift sequence to our color in order to encrypt it using the one-time pad:
100111001011010100111010 + 010110100001101111011000 = ?
За да извършим кодирането с еднократен случаен ключ, е нужно да изберем правилната операция, така че получената последователност да може да е който и да е цвят с еднаква вероятност. Нека да разгледаме различните операции: AND, OR, XOR.

Логическо и (AND)

Операторът AND е познат още като логическа конюнкция и работи като умножение. 
Резултатът му е 1 тогава и само тогава, когато всички негови аргументи са 1. Ето неговата таблица на истинност:
0 AND 0 = 0
0 AND 10
1 AND 0 = 0
1 AND 1 = 1
Нека опитаме:
100111001011010100111010 AND 010110100001101111011000 = 000110000001000100011000
Полученият цвят е много тъмно лилаво. Забележи, че когато прилагаме операцията AND над някакво двоично число, резултът не може да е по-голям от него. В нашия пример за цвят тази операция премахва много възможни нюанси и затъмнява цвета към черно.

Логическо или (OR)

Операторът ОR е познат още като логическа дизюнкция. При нея се получава 1, когато един или повече от аргументите ѝ са 1. Ето нейната таблица на истинност:
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
Нека опитаме:
100111001011010100111010 OR 010110100001101111011000 = 110111101011111111111010
Резултатът е светло лилаво. Забележи, че когато прилагаме операцията ОR над двоична последователност, получената последователност не може да е по-малка. Това премахва много от възможностите, тъй като измества цвета към бялото.

Изключващо или (XOR)

Операцията XOR дава резултат 1, когато аргументите не си съответстват, което се получава, когато единият от двата е единствената истина. Това е същото като събиране по модул 2. Ето неговата таблица на истинност:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Нека опитаме:
100111001011010100111010 XOR 010110100001101111011000 = 110001101010111011100010
тъмнолилаво
Резултатът е малко по-тъмно лилаво в сравнение с използването на операцията OR. Забележи, че, когато използваме операцията XOR над двоична последователност, получената последователност може да бъде всяка възможна последователност. Ако вземем някакъв криптиран цвят, всичко което знаем е, че първоначалният цвят “е еднакво вероятно да бъде всеки цвят”. Нямаме никаква информация, която може да е по-добра от сляпо отгатване (1/16 милиона).
Накрая да направим нагледна демонстрация, така че да можеш да видиш шифъра с еднократен код в действие. След това може да спечелим още точки енергия!

Искаш ли да се присъединиш към разговора?

Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.