Как заксоришь -- так и расксоришь. Ну как-то, примерно как по
ссылке. Суть не в том, что ты заксоришь, а как ты нагенеришь то, с
чем будешь ксорить. Оно ж и ни повторяться не должно, ни быть
вычислимым обратно. Потом ксорить можно по-разному -- см. ссылку в
википедию. A то можно "зашифровать" вот так: 
И это же всё о симметричных алгоритмах -- когда обе стороны знают одинаковый ключ. Что не всегда применимо. Потому, что изначально они этот самый ключ могут не знать и о нём как-то нужно договориться (причём так, чтоб третья сторона тут ключи не умылнула -- алгоритм Диффи-Хеллмана), либо принципиально общего ключа не может быть (потому, что одна из сторон ничего не может хранить надёжно, например). А это уже ассиметричная криптография. С ключами куда большей длины (по сравнению с АЕС, например) и огромной (относительно микроконтроллеров) вычислительной сложностью.
Рекомендую для чтения: Брюс Шнайер "Прикладная криптография":
Brus_Sh…ografiya_2016_.pdf
О криптостойкости:
https://www.keylength.com/en/4/
https://www.keylength.com/
О режимах шифрования:
https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
Ну и альтернативные методы никто не отменял:
