Natarajan Meghanathan et al. (Eds) : ICCSEA, SPPR, VLSI, WiMoA, SCAI, CNSA, WeST - 2014 pp. 229–250, 2014. © CS & IT-CSCP 2014 DOI : 10.5121/csit.2014.4728        Jaouhar Fattahi 1 and Mohamed Mejri 1 and Hanane Houmani 2 1 LSI Group, Laval University, Quebec, Canada 2 University Hassan II, Morocco ABSTRACT In this paper, we present new functions for secrecy in cryptographic protocols:the witness- functions. A witness-function is a protocol-dependent function that is able to prove the correctness of a protocol through its growth. It bases its calculation on the static part of a message only in a role-based specification by using derivation techniques. We show here how to build them. Then, we run an analysis on two real protocols. First, we run an analysis on NSL protocol and we prove that it is correct with respect to the property of secrecy. Then, we run an analysis on a variation of Needham-Schroeder protocol in which we show that a witness- function could even help to discover flaws. KEYWORDS Cryptographic Protocols, Role-based specification, Secrecy 1. INTRODUCTION In this paper, we present a new class of functions to analyze cryptographic protocols statically for the property of secrecy: the witness-functions. Intuitively, an increasing protocol keeps the secret. That means that if the security of all atomic messages exchanged in the protocol does not decay between receiving and sending steps in the protocol, the secret is preserved. For that, we need reliable metrics to estimate the security of atomic messages. This approach has been adopted in some prior works. In [1], Steve Schneider presented the notion of rank-functions as tools to analyze protocols in CSP [2, 3]. They were efficient in analyzing many protocols such Needham- Schroeder protocol. Nevertheless, a such analysis dictates the protocol implementation in CSP algebra. In addition, building rank-functions is not an easy task and their existence is not certain [4]. In [5] Abadi, by utilizing Spi-Calculus [6, 7], asserted that: "If a protocol typechecks, then it keeps the secret". For that, he restricted the exchanged messages to have strictly the following types: {secret, public, any, confounder} in order to easily know the security level of every component in. This approach cannot analyze prior protocols that had been designed with no respect to this condition. Similarly, Houmani et al. [8–11] presented universal functions that they named the interpretation functions to statically analyze a protocol. An interpretation function needs to meet some conditions to be "enough good" for the analysis. Naturally, less we have restrictions on functions,