\documentclass[11pt,twoside,a4paper]{article} \usepackage{listings} % Include the listings-package \begin{document} \title{Integrating CertainTrust into OpenCCE} \author{Nikolaos Alexopoulos, CROSSING S1} \date{August 2016} \maketitle \section{About CertainTrust} CertainTrust is a robust Bayesian Computational Trust model for users and agents. It offers a mathematically sound implementation of a Bayesian probability model in order to assess the trustworthiness of agents in multi-agent systems. The system can calculate the expected trustworthiness of agents based on prior experience and can also combine evidence provided by other sources in statistically sound ways. (Finally, it also offers a user interface to visualize trust when user involvement is needed.) By providing CertainTrust as a task to OpenCCE we want to enable users and devices to enhance their security in high-risk environments. \section{Implementation} We have implemented OpenCCE as a Java project. More specifically, the whole functionality is encompassed in a single class (CertainTrust.java). The remainder of our classes support a graphical user interface intended to visualize trust in a user-friendly way. \section{Usage examples and rules} \subsection{Usage examples} The proposed use of our task consists of a CertainTrust object constructed to handle a single trust relationship. The constructor is reached by calling one of the \textit{createfromRS} or \textit{createfromTC} functions. After the constructor, the main and presumably more regularly used functionalities are implemented by the functions \textit{addR}, \textit{addS} and \textit{addU} that respectively add positive, negative and neutral evidence to the statistical model. Furthermore, there are a number of ways to combine CertainTrust objects by choosing a CertainLogic operator implemented in the functions from the set \{\textit{OR, AND, wFusion, cFusion}\}. \medskip \\ A typical example of the use of the task could be the creation of a computational trust object and then the incorporation of evidence in the statistical model that leads to an extracted expectation value for the trustworthiness of the given agent. A small snippet is found below: \medskip \lstset{language=java} \begin{lstlisting}[frame=single] trustObject = CertainTrust.createDefault(N, name) trustObject.addR(posEvidence) trustObject.addS(negEvidence) expectation = trustObject.getExpectation() \end{lstlisting} \subsection{Rules} Rules regarding the use of CertainTrust address the correctness of the model and are provided as comments to each function implemented in the class. They are normally handled by exceptions, but a static analysis could have some benefit. Specifically, values t,c and f represent probabilities and so $\in[0,1]$. \section{Algorithms Model} CertainTrust in its current form does not offer any variability. The task, which could be named ``Initialize CertainTrust Object'' is self-contained in the Java class of the same name. Providing different tasks for each operation on the trust objects and grouping them together could be an option, but is not considered practical at this point. \section{Questions for initialization} The main user choices during the initialization of the task concern the arguments of the \textit{createfromRS} and \textit{createfromTC}. More specifically, the user should be able to choose the name of the object, an initial (prior) trust value as well as the number N of adequate evidence. A detailed list follows: \medskip \begin{enumerate} \item Give the \textbf{name} of the object (e.g. ``John'', ``Bank'', etc.) \item Give your perceived \textbf{initial trust value (t)} for the subject (default: t=0,5) - could be low/med/high or visualization. Its effect dissolves while experiences are collected. \item Give the \textbf{maximal expected number of evidence (N)}. That is the number of evidence that suffice to provide total certainty in the trust assessment. This parameter highly depends on the context and the security assurances needed. \end{enumerate} \end{document}