To verify the above understanding we attach GDB and set a breakpoint at the end of check_key .
is a tiny 32‑bit function that expands R to 48 bits, XORs with the round sub‑key, passes it through the classic DES S‑boxes, and finally applies the P‑permutation. The implementation is a direct copy of the reference DES algorithm, except that the S‑boxes have been re‑ordered (the svdes-631 custom S‑boxes) – they are embedded as a static table in .rodata . dvdes-631
#!/usr/bin/env python3 import struct, subprocess, sys To verify the above understanding we attach GDB
All later sub‑keys are derived only from the previous cur . Because the transformation is , we can recover the original key by applying the inverse operation once , using the first sub‑key we just derived. #!/usr/bin/env python3 import struct