چگونه می‌توانیم تضمین کنیم که یک طرح رمزنگاری امن است؟ برای اینکه بتوان امنیت را فرمول‌بندی کرد ابتدا باید توانمندی‌های دشمن را مشخص کرد (اینکه دشمن چه کارهایی را می‌تواند انجام دهد). همچنین باید شرایطی را که در آن یک حمله می‌تواند به طور موفقیت‌آمیزی انجام شود، مشخص کرد. به عنوان نمونه در مثالی که ابتدا مطرح کردیم، دشمن می‌تواند متنِ رمز شده آلیس را بخواند و آن را تغییر دهد. در این مثال حمله زمانی به طور موفقیت‌آمیزی انجام شده که حمله کننده بتواند اطلاعاتی را در مورد پیام آلیس به‌دست آورد و یا بتواند تغییری در پیام ایجاد کند بدون اینکه باب متوجه شود این تغییر از سوی آلیس نبوده است و یا دشمن پیامی برای باب بفرستد که باب تصور کند این پیام از سمت آلیس است. بنابراین می‌توان گفت یک طرح رمزنگاری امن است اگر بتوانیم به ‌صورت ریاضی ثابت کنیم هیچ حمله‌ای نمی‌تواند به‌صورت موفقیت‌آمیزی انجام شود، مگر با یک احتمال بسیار ناچیز.