Криптичен полиморфизъм

Въведение в темата “Криптографски полиморфизъм” **Полиморфизмът** (от гръцки polý - "много" и morphe - "форма") в програмирането е свойство на функция, което й позволява да бъде използвана в различни контексти, без да променя поведението си . По този начин функция от един тип може да се използва за извикване в рамките на друг тип, като същевременно се запази първоначалното й семантично значение. Необходимо условие, за да може една функция да се използва като нереферентна (външна) функция е капсулирането. Ако кодът на функцията е достъпен директно, тогава се казва, че е в сферичен код. Функцията може да се използва и с модификаторите `__init__`, `__new__` и `__call__` - това са свойства на декоратора `@staticmethod` и `@classmethod`. В този случай можем да говорим за „статично полиморфен“ или „класово полиморфен“.

Например функцията за изчисляване на квадратния корен: ``` def sq_root(x): return x ** 0.5 ``` и функцията за изчисляване на параболичната функция:

```py def parabola(coefs): коефициенти на функция y = ax^2 + bx + c пас ``` и двете функции могат да се използват в програма, вътре във функция и/или клас, еднакво успешно. Те приемат аргументи, върната стойност и запазват поведението на изходния код в телата си по същия начин. В резултат на тяхното изпълнение те могат да се считат за функции, т.е.