This was fun :-)
The magic words are:
I'll try to explain briefly...
The top part of this image is coloured slightly differently from the rest of the image. If you extract the blue channel from the file's RGB data and collect all the non-zero values, you end up with a series of 1630 bytes (100, 101, 102, 32, 112, 111, 115, ...etc...). When these are converted to ASCII characters, they correspond to a Python program that converts a line of text into a hash value and compares it with a precalculated result.
Using rather obfuscated code, this program accepts two words, swaps them around, concatenates them together, then calculates the MD5 hash of each letter in the resulting string. When these hashes are joined together, they should equal this long decimal number: 53860968794796194828850912663548273574565909315382218566780496065842419219289908754506217032050621610149536529412292660885510238487652964693572485330339349942747218138850926967814204619329585611322730560200765021495570268633090417978260869005139879392762230267619047776297802859921963641380013215139195873390084347386400369215393624187102530981915
To break the code, you have to convert the number back into hexadecimal and split it into 32-character chunks. These correspond to the MD5 hashes of each individual letter (MD5 ("e") = e1671797c52e15f763380b45e841ec32, MD5 ("s") = 03c7c0ace395d80182db07ae2c30f034, etc.). This yields the string 'estmagiam', which suggests that the magic words are 'magiam est'.
(Actually, there are other strings that would have worked, like 'agiam estm', but they don't seem quite as likely.)