قوانين كيرشوف أو (مبدأ كيرشوف) هو مبدأ, أو أنموذج(paradigm), لتصميم أنظمة وخوارزميات التعمية أو ما يسمى أحيانا (خطأ) بأنظمة أو خوارزميات التشفير. ويقول هذا الأنموذج أن أمن نظام أو خوارزمية ما يجب أن يكون نابعا من سرية مفتاح الخوارزمية فقط وليس من سرية الخوارزمية نفسها. يعود هذا القانون إلى أوغست كيرشوف عالم التعمية العسكرية الهولندي سنة 1883 الذي قام بنشر بحث عن ذلك تحت عنوان التعمية العسكرية في مجلة العلوم العسكرية. وقام كلود شانون لاحقا بصياغة هذا القانون بشكل مختلف حيث عبر عن ذلك بجملته: العدو يعرف النظام. أي أنه يجب أن نفترض أن العدو يعلم كيفية عمل الخوارزمية لذلك يجب أن يكون أمنها ناتجا من سرية المفتاح. مقابل هذا الأنموذج نجد من يستقي أمن النظام من المحافظة على سرية الخوارزمية. وقد صاغ كيركهوف قانونه في ستة شروط.
- يجب أن يكون النظام غير قابل للكسر، إن لم يكن نظريا فعمليا.
- ينبغي أن لا يتطلب تصميم النظام سرية وسط النظام,خلافا لمبدأ الأمن من خلال الغموض و ينبغي أن لا يكون مزعجا للمرسل.
- يجب أن يكون المفتاح قابل للتذكر دون ملاحظات، وينبغي أن يكون قابل للتغيير بسهولة.
- ينبغي أن تكون القطع المشفرة cryptograms قابلة للنقل عن طريق التلغراف.
- يجب أن يكون الجهاز أو الوثائق محمولة وقابلة للتشغيل من قبل شخص واحد.
- يجب أن يكون النظام سهل، لا يتطلب معرفة قائمة طويلة من القواعد ولا ينطوي على الضغط النفسي.