Der Ansatz von Alleinherrscher mag zwar richtig klingen, funktioniert doch aber auch nur, wenn das Programm nach Hause telefoniert oder irre ich mich da? Weil wenn du nicht nach Hause telefonierst und die Prüfung intern ausführst, kann ja einer sich registrieren und die restlichen MA nehmen dann seinen Namen + Key, den du zugeschickt hast.
Soviel zum Thema problemorientiertes Denken
Jetzt noch ein lösungsorientierter Ansatz:
Wenn dein Programm eh kostenlos ist und deine Nutzer die Email freiwillig geben, wie du sagst, wieso willst du sie dann zur Registrierung zwingen? Mach das doch einfach optional.