# SoK: Delegated Security in the Internet of Things
## 3 Adversary Model
### Mathematical Model of an Adversary  
Based on the characteristics of a potential adversary introduced in Section 3.1, the generalised mathematical adversary model is formulated. \begin{table}
\begin{tabular}{p{113.8 pt} p{284.5 pt}} \hline \hline
**Characteristic** & \multicolumn{1}{c}{**Explanation**} \\ \hline  & \multicolumn{1}{c}{**Relation to the system (\(\mathcal{RS}\))**} \\ \hline
**External (\(Ex\))** & Adversary is located outside the system and has no accomplices who are immediate elements or participants in the system. They are therefore unable to observe processes inside the system. \\
**External+ (\(Ex^{+}\))** & Adversary is located outside the system but has resources or accomplices that allow them, within a limited area, to observe processes inside the system. \\
**Insider (\(In\))** & Adversary is a member of the system, so they may have access and knowledge of the protocols used and the processes taking place, as well as awareness of the communication between the objects. \\ \hline  & **Corruption capabilities (\(\mathcal{CC}\))** \\ \hline
**No (N)** & Adversary has no physical access to the system and no opportunity to corrupt system parties. \\
**Yes (Y)** & Adversary has physical access to parts of the system and is able to corrupt desired parties. \\ \hline  & **Time (\(\mathcal{T}\))** \\ \hline
**Concrete (\(C\))** & Adversary runs in time \(t\) and is capable of launching a successful attack with probability at least \(\epsilon\) against the system. \\
**Asymptotic (As)** & Adversary runs in polynomial-time \(t(n)\) and is capable of launching a successful attack against the system with probability at least \(c+\epsilon(n)\), where \(\epsilon\) is negligible in the security parameter \(n\in\mathbb{N}\) and \(c\) is some constant (typically, \(c\in\{0,\frac{1}{2}\}\)). \\
**Information-theoretic (\(It\))** & Adversary has unlimited computation time and is capable of succeeding in an attack against the system with non-negligible probability \(\epsilon(n)\) for security parameter \(n\in\mathbb{N}\). \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Adversary characteristics. **Definition 1**. : _The adversary characteristics described in Table 1 are denoted as:_  
\[\mathcal{RS} \in\{Ex,Ex^{+},In\}\,,\] \[\mathcal{CC} \in\{N,Y\}\,,\,\text{and}\] \[\mathcal{T} \in\{C,As,It\},\]  
_Then, the general prototype of an individual adversary \(\mathcal{A}\) is defined by a triple of features as_  
\[\mathcal{A}=(\mathcal{RS},\mathcal{CC},\mathcal{T}).\]  
While attacking a system, the adversary can obtain some information depending on their characteristics and the target of the attack. To formally describe this process, the following oracles are introduced, each representing a specific source of information that may be available to the adversary:  
_Oracle_Del: The delegation oracle allows the adversary to interact with the delegate \(\mathcal{D}\):  
\[\{t,\bot\}\leftarrow\texttt{Del}(AD).\]  
As input, Del receives the set of data \(AD\) that varies depending on the target of the adversary and application domain. It may include a party or resource id, etc. The oracle either returns an access token t or rejects the request by returning \(\bot\). _Oracle_Cor: The corruption oracle allows the adversary to corrupt parties and learn their secrets s:  
\[\{s,\bot\}\leftarrow\texttt{Cor}(\texttt{id}).\]  
As input, Cor receives an identifier of a party id that the adversary wants to corrupt. The oracle will then return the secrets s belonging to the party associated with this id or \(\bot\), e.g., if no such party exists. _Oracle_Obs: The observe oracle allows the adversary to observe the communication between system parties and the delegate \(\mathcal{D}\):  
\[\{ts,\bot\}\leftarrow\texttt{Obs}(\texttt{id}).\]  
As input, Obs receives id, indicating which party is communicating with \(\mathcal{D}\). The oracle will then return the transcript ts of the communication or \(\bot\), e.g., if no party associated with id exists.