f
Entity A Entity B
Flow
FunctionData
Figure 1: Flow, Function, and Data.
3.1 Language of Security Protocol
Definition
The protocol definition is a high-level protocol spec-
ification written in XML language. The high-level
definition makes it easy to write flows and calcula-
tions in the protocol and it is assumed to be inde-
pendent from environments. Furthermore, the XML
description makes it easy to add specific information
to the high-level protocol definition. For example, if
they wish, protocol designers can describe detailed
parameters such as those for cryptographic algorithms
and the initial values of variables. The description is
highly flexible with regard to adding and removing in-
formation for a basic security protocol definition gen-
erated by the tool; thus, the protocol specification can
include not only a common, high-level specification
of the security protocol but also specific information
for environments. This flexibility allows compilers
to be customized for particular environments such as
smart card. The protocol definition file can be used
for a range of security protocol compilers.
We describe security protocols based on defini-
tions of data, functions, and flows as Figure 1. A flow
is described as all data sending by one transaction be-
tween entities and information of sender and receiver.
A function indicates a cryptographic operation and it
is described as input data and algorithm name. Data is
minimum blocks to construct a security protocol defi-
nition. Security protocols definition consist of several
flows, and these flows consist of data and functions.
Furthermore, we describe additional information
in the protocol definitions, such as purpose of the
protocol, information of entities on a header field.
The definition file includes information for all enti-
ties which execute the protocol. Our security protocol
definition is divided into five parts:
• Header Information Field
The header information field defines the purpose
of a protocol such as authentication and key ex-
change, and security parameters.
• Entity Information Field
The entity information field stores information on
each entity. Entity information includes which en-
tity should be authenticated, role of the entity (ini-
tiator of the protocol or responder to the protocol),
and the data list that the entity knows before the
protocol starts. The information also includes key
generation function info and validation function
info. The key generation function info refers to a
function for generating a session key in a key ex-
change protocol, and the validation function info
refers to a function for authentication whereby the
entity computes the function to verify the authen-
ticity of an entity.
• Data Information Field
The data information field is for definition of data.
Data information consists of data-id, data type,
length, creator, label, algorithm, value, usage,
source, store, and comment as shown Table 1.
• Function Information Field
The function information field consists of func-
tion definitions. Function information includes
function identifier, algorithm type, length of out-
put, and input data. Function information option-
ally includes detailed information for a crypto-
graphic algorithm such as OID and padding type.
• Flow Information Field
All protocol flows and computations between
flows are written in the flow information field.
Flow information includes information of sender,
receiver, and sending data and function.
The data type Identi f ier, Random, Password,
Counter, and Text indicates that the data is an iden-
tifier of an entity, random number, password, counter
value, and other type of data, respectively. Temporal
Public Key and Temporal Private Key indicates that
the data are respectively a public key and private key
generated in the protocol.
Functions for the security protocol are defined as
the function-id, input data, function type, and length
of the output. Flows of the security protocol are de-
fined as flow-id, sender, receiver, and sending data
and functions. Data and functions can be referred to
data-id and function-id. A flow has a special label
for defining action after receiving the flow. For ex-
ample, a label ”for authentication” indicates that the
flow is used when the receiver entity judges whether
the sender entity is valid or not. A label ”for key ex-
change” means that the receiver entity calculates a
session key after receiving the flow. A function for
each entity is defined as a special function calculating
a session key in the entity information field.
3.2 Requirements for Security Protocols
Our tool generates security protocol definitions from
requirements for security protocols. The following
parameters are inputted to the tool as security protocol
requirements:
ON-THE-FLY AUTOMATIC GENERATION OF SECURITY PROTOCOLS
99