@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix :      <http://securitytoolbox.appspot.com/securityAlgorithms#> .
@prefix assurance: <http://securitytoolbox.appspot.com/securityAssurance.owl#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix security: <http://securitytoolbox.appspot.com/securityMain#> .
@prefix vs:    <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix algo:  <http://securitytoolbox.appspot.com/securityAlgorithms#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix cc:    <http://creativecommons.org/ns#> .

algo:MD4  a     algo:HashAlgorithm .

algo:MACAlgorithm  a     owl:Class ;
        rdfs:subClassOf  algo:SignatureAlgorithm .

algo:CAST  a    algo:SymmetricAlgorithm .

algo:DiffieHellman  a  algo:KeyExchangeAlgorithm .

algo:ECC  a           algo:AsymmetricAlgorithm ;
        rdfs:comment  "Elliptic Curve Crypto" .

algo:isNISTStandard  a  owl:DatatypeProperty ;
        rdfs:comment  "NIST FIPS Standard" ;
        rdfs:domain   algo:Algorithm ;
        rdfs:range    xsd:boolean .

algo:HashAlgorithm  a    owl:Class ;
        rdfs:comment     "\nKey dependent function; useful in providing user authentication without a\nsecret key\n" ;
        rdfs:subClassOf  algo:SignatureAlgorithm .

<mailto:gyrard@eurecom.fr>
        a          foaf:Person ;
        foaf:name  "Amelie Gyrard" .

algo:HMAC  a    algo:MACAlgorithm .

algo:modeOfOperation  a  owl:DatatypeProperty ;
        rdfs:comment  "Can be CBC, ECB, OFB, CFB, or Counter" ;
        rdfs:domain   algo:SymmetricAlgorithm ;
        rdfs:range    xsd:string .

algo:RC4  a     algo:SymmetricAlgorithm .

algo:KeyExchangeAlgorithm
        a                owl:Class ;
        rdfs:subClassOf  algo:Algorithm .

algo:Oakley  a  algo:KeyExchangeAlgorithm .

<mailto:mkang@itd.nrl.navy.mil>
        a          foaf:Person ;
        foaf:name  "Myong Kang" .

algo:TripleDES  a  algo:SymmetricAlgorithm .

algo:KEA  a     algo:KeyExchangeAlgorithm .

algo:   a                              <http://purl.org/vocommons/voaf#Vocabulary> , owl:Ontology ;
        rdfs:comment                   " An ontology to describe various cryptographic algorithms" ;
        cc:license                     <http://creativecommons.org/licenses/by/3.0/> ;
        dc:contributor                 <mailto:gyrard@eurecom.fr> ;
        dc:description                 "An ontology to describe various cryptographic algorithms"@en ;
        dc:title                       "Security Algorithms"@en ;
        dcterms:creator                <mailto:luo@itd.nrl.navy.mil> , <mailto:kim@itd.nrl.navy.mil> , <mailto:mkang@itd.nrl.navy.mil> ;
        dcterms:issued                 "2005-08-31"^^xsd:date ;
        dcterms:modified               "2014-01-24"^^xsd:date ;
        dcterms:source                 <http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA437938> ;
        vann:preferredNamespacePrefix  "algo" ;
        vann:preferredNamespaceUri     "http://securitytoolbox.appspot.com/securityAlgorithms#" ;
        owl:versionInfo                0.2 ;
        vs:term_status                 "Finished" ;
        skos:historyNote               "Ontology extracted from the paper Security Ontology for Annotating Resources. [Kim et al. 2005] (See APPENDIX D. OWL Representations of the NRL Security Ontology) Security ontology to faciliate web service description and discovery."@en .

algo:ChecksumAlgorithm
        a                owl:Class ;
        rdfs:subClassOf  algo:Algorithm .

algo:DES  a               algo:SymmetricAlgorithm ;
        rdfs:comment      "Refers only to single DES" ;
        algo:hasNSALevel  assurance:Type3 ;
        algo:keyLength    "64"^^xsd:int .

algo:CRC-32  a  algo:ChecksumAlgorithm .

algo:SymmetricAlgorithm
        a                owl:Class ;
        rdfs:subClassOf  algo:EncryptionAlgorithm ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      <http://securitytoolbox.appspot.com/hasNSALevel>
                         ] .

algo:CRAYON  a            algo:SymmetricAlgorithm ;
        algo:hasNSALevel  assurance:Typel .

algo:CBC-MAC  a  algo:MACAlgorithm .

algo:Algorithm  a        owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      algo:isNISTStandard
                         ] .

algo:SignatureAlgorithm
        a                owl:Class ;
        rdfs:subClassOf  algo:Algorithm .

algo:AES  a               algo:SymmetricAlgorithm ;
        algo:hasNSALevel  assurance:Type3 .

algo:SHA-256  a       algo:HashAlgorithm ;
        rdfs:comment  "usually used with AES" .

algo:CRC-8  a   algo:ChecksumAlgorithm .

<mailto:kim@itd.nrl.navy.mil>
        a          foaf:Person ;
        foaf:name  "Anya Kim" .

algo:CRC-16  a  algo:ChecksumAlgorithm .

algo:AsymmetricAlgorithm
        a                owl:Class ;
        rdfs:subClassOf  algo:EncryptionAlgorithm .

algo:Skipjack  a          algo:SymmetricAlgorithm ;
        algo:hasNSALevel  assurance:Type2 .

algo:RSA  a     algo:AsymmetricAlgorithm .

algo:SHA-1  a   algo:HashAlgorithm .

algo:Blowfish  a  algo:SymmetricAlgorithm .

algo:RIPE-MD  a  algo:HashAlgorithm .

algo:keyLength  a    owl:DatatypeProperty ;
        rdfs:domain  algo:SymmetricAlgorithm ;
        rdfs:range   xsd:nonNegativeInteger .

algo:MD5  a     algo:HashAlgorithm .

algo:hasNSALevel  a   owl:ObjectProperty ;
        rdfs:comment  "These can be Typel, Type 2, Type3, or Type4" ;
        rdfs:domain   algo:SynmmetricAlgorithm ;
        rdfs:range    assurance:NSA .

assurance:Type3  a  algo:hasNSALevel .

algo:EncryptionAlgorithm
        a                owl:Class ;
        rdfs:subClassOf  algo:Algorithm .

<mailto:luo@itd.nrl.navy.mil>
        a          foaf:Person ;
        foaf:name  "Jim Luo" .
