40
(
𝐿𝐿
,
𝑋𝑋
) = ochiq matn bloki (64 bit)
𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎
= 0
𝑥𝑥
9
𝑒𝑒
3779
𝑎𝑎
9
𝑠𝑠𝑠𝑠𝑆𝑆
= 0
𝑎𝑎𝑒𝑒𝑆𝑆
𝑆𝑆
= 1 dan 32 gacha
𝑠𝑠𝑠𝑠𝑆𝑆
=
𝑠𝑠𝑠𝑠𝑆𝑆
+
𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎
𝐿𝐿
=
𝐿𝐿
+ (((
𝑋𝑋 ≪
4) +
𝐾𝐾
[0])
⨁
(
𝑋𝑋
+
𝑠𝑠𝑠𝑠𝑆𝑆
)
⨁
((
𝑋𝑋 ≫
5) +
𝐾𝐾
[1]))
𝑋𝑋
=
𝑋𝑋
+ (((
𝐿𝐿 ≪
4) +
𝐾𝐾
[2])
⨁
(
𝐿𝐿
+
𝑠𝑠𝑠𝑠𝑆𝑆
)
⨁
((
𝐿𝐿 ≫
5) +
𝐾𝐾
[3]))
keyigi
𝑆𝑆
shifrmatn = (
𝐿𝐿
,
𝑋𝑋
)
Bu yerda “
≪
” amali sonni chapga surish amali va “
≫
” amali uni o’nga surish
amali hisoblanadi. Masalan, ikkilik ko’rinishdagi bir baytli son “10110101” ga teng
bo’lsa, u holda ushbu sonni chapga 4 birlik surish natijasi “01010000” ga teng
bo’ladi. Ushbu sonni 5 birlik o’nga surish natijasi esa “00000101” ga teng bo’ladi.
TEA algoritmi Feystel tarmog’iga asoslanmagan bo’lsada (Feystel tarmog’ida
shifrlash va deshifrlash funksiyalari bir xil bo’ladi), deshifrlashda XOR amali
o’rniga qo’shish yoki bo’lish amallaridan foydalanilmaydi. TEA algoritmining
deshifrlash funksiyasi quyida keltirilgan.
(
𝐾𝐾
[0],
𝐾𝐾
[1],
𝐾𝐾
[2],
𝐾𝐾
[3]) = 128 bitli kalit
(
𝐿𝐿
,
𝑋𝑋
) = shifr matn bloki (64 bit)
𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎
= 0
𝑥𝑥
9
𝑒𝑒
3779
𝑎𝑎
9
𝑠𝑠𝑠𝑠𝑆𝑆
=
𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎 ≪
5
𝑎𝑎𝑒𝑒𝑆𝑆
𝑆𝑆
= 1 dan 32 gacha
𝑋𝑋
=
𝑋𝑋 −
(((
𝐿𝐿 ≪
4) +
𝐾𝐾
[2])
⨁
(
𝐿𝐿
+
𝑠𝑠𝑠𝑠𝑆𝑆
)
⨁
((
𝐿𝐿 ≫
5) +
𝐾𝐾
[3]))
𝐿𝐿
=
𝐿𝐿 −
(((
𝑋𝑋 ≪
4) +
𝐾𝐾
[0])
⨁
(
𝑋𝑋
+
𝑠𝑠𝑠𝑠𝑆𝑆
)
⨁
((
𝑋𝑋 ≫
5) +
𝐾𝐾
[1]))
𝑠𝑠𝑠𝑠𝑆𝑆
=
𝑠𝑠𝑠𝑠𝑆𝑆 − 𝑑𝑑𝑒𝑒𝑒𝑒𝑆𝑆𝑎𝑎
keyigi
𝑆𝑆
ochiq matn = (
𝐿𝐿
,
𝑋𝑋
)
Dostları ilə paylaş: