La "seguridad" es un tema peliagudo, todo depende de lo inteligente que sea la gente que podría vulnerar la seguridad de tu programa y como de dispuesta esté a ello. La prueba clara son los multiples sistemas de seguridad que se aplican a gran parte del software comercial, que tarde o temprano acaban siendo crackeados (y hablamos de compañias y programadores, que se dedican a esto profesionalmente).
Otro tema a tener en cuenta es que el c# se puede decompilar a código nativo teniendo acceso completo al código fuente con lo que cualquiera sin apenas conocimientos podría evaluar el algoritmo de protección que has introducido y evadirlo.
Resumiendo, vas a perder más tiempo elaborando un sistema de seguridad (teniendo en cuenta que preguntas por ello, asumo que no tienes ni idea de por donde empezar) que probablemente no valga para nada (sin animo de ofender), cuando podrías aprovechar todo ese tiempo en hacer que tu programa haga lo debido y no tenga otro tipo de fallos.