This document proposes corrections to errors in the ASN.1 schema defined in ISO/IEC 29150 for signcryption mechanism and cryptographic algorithm identification. The schema contains syntax errors that prevent its use by ASN.1 tools. The document defines a corrected ASN.1 module with valid syntax, provides an example signcryption algorithm identifier value, and shows its encoding in binary DER and XML XER formats.
Writing more complex models (continued)Mohamed Samy
Modeling more complicated logic using sequential statements
Skills gained:
1- Model simple sequential logic using loops
2- Control the process execution using wait statements
This is part of VHDL 360 course
Writing more complex models (continued)Mohamed Samy
Modeling more complicated logic using sequential statements
Skills gained:
1- Model simple sequential logic using loops
2- Control the process execution using wait statements
This is part of VHDL 360 course
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
Implementation of message authentication code using DNA-LCG key and a novel h...IJECEIAES
With the introduction of electronic form of data, the need for an automatic system of security to protect the integrity of data while being transferred from one place to another is required. This is especially the case for a network in which the systems are accessed over a public network or internet. Security mechanisms involve the use of more than one algorithm. They further require that the participants should possess a secret key, which raises issues about creation, distribution and proper usage of these keys. The most effective technique used in provisioning security is Message Authentication Code (MAC) which helps in preserving integrity. MAC involves the use of secret key along with a hash algorithm. In this paper, we present an implementation of MAC using a secret key created by Deoxyribonucleic Acid (DNA) and random output sequence of Linear Congruential Generator (LCG). The hash algorithm used is made more robust by adding complexity to the traditional SHA-160. The presented scheme RMAC (Robust Message Authentication Code) is tested on National Institute of Science and Technology (NIST) test suite for random numbers, avalanche criteria and resistance towards network attacks. The results reveal that the scheme is efficient and is applicable for a variety of security demanding environments.
The Advanced Encryption Standard (AES) is a specification for the encryption of electronic data also called Rijndael. The algorithm described by AES is a symmetric-key algorithm, meaning the same key is used for both encrypting and decrypting the data. Hardware-based cryptography is used for authentication of users and of software updates and installations. Software implementations can generally not be used for this, as the cryptographic keys are stored in the PC memory during execution, and are vulnerable to malicious codes. Hardware-based encryption products can also vary in the level of protection they provide against brute force rewind attacks, Offline parallel attacks, or other cryptanalysis attacks. The algorithm was implemented in FPGA due to its flexibility and reconfiguration capability. A reconfigurable device is very convenient for a cryptography algorithm since it allows cheap and quick alterations. The implementation of pipelined cryptography hardware was used to improve performance in order to achieve higher throughput and greater parallelism. The AES hardware was implemented in three modules contains of the encryption, the decryption and the key expansion module.
Slide deck for talk at IETF#92 (Dallas, March 2015) at the IETF Light-Weight Implementation Guidance (lwig) working group about the performance of cryptographic algorithms on ARM processors.
Assignment 13/assg-13.cppAssignment 13/assg-13.cpp/**
* @author Jane Programmer
* @cwid 123 45 678
* @class COSC 2336, Spring 2019
* @ide Visual Studio Community 2017
* @date April 8, 2019
* @assg Assignment 13
*
* @description Assignment 13 Dictionaries and Hash table
* implementations.
*/
#include<cassert>
#include<iostream>
#include"KeyValuePair.hpp"
#include"Employee.hpp"
#include"HashDictionary.hpp"
usingnamespace std;
/** main
* The main entry point for this program. Execution of this program
* will begin with this main function.
*
* @param argc The command line argument count which is the number of
* command line arguments provided by user when they started
* the program.
* @param argv The command line arguments, an array of character
* arrays.
*
* @returns An int value indicating program exit status. Usually 0
* is returned to indicate normal exit and a non-zero value
* is returned to indicate an error condition.
*/
int main(int argc,char** argv)
{
// -----------------------------------------------------------------------
cout <<"----- testing Employee record and KeyValuePair class -----------"<< endl;
KeyValuePair<int, string> pair(42,"blue");
cout <<"test key: "<< pair.key()<< endl;
assert(pair.key()==42);
cout <<"test value: "<< pair.value()<< endl;
assert(pair.value()=="blue");
int id =3;
Employee e(id,"Derek Harter","1234 Main Street, Commerce TX",12345.67);
cout << e << endl;
assert(e.getId()==3);
assert(e.getName()=="Derek Harter");
cout << endl;
// -----------------------------------------------------------------------
cout <<"-------------- testing quadratic probing -----------------------"<< endl;
constint TABLE_SIZE =7;
HashDictionary<int,Employee> dict(TABLE_SIZE, EMPTY_EMPLOYEE_ID);
cout <<"Newly created hash dictionary should be empty, size: "<< dict.size()<< endl;
assert(dict.size()==0);
int probeIndex =0;
//cout << "probe index: " << probeIndex
// << " returned probe value: " << dict.probe(id, probeIndex)
// << endl;
//assert(dict.probe(id, probeIndex) == 2);
probeIndex =1;
//cout << "probe index: " << probeIndex
// << " returned probe value: " << dict.probe(id, probeIndex)
// << endl;
//assert(dict.probe(id, probeIndex) == 5);
probeIndex =5;
//cout << "probe index: " << probeIndex
// << " returned probe value: " << dict.probe(id, probeIndex)
// << endl;
//assert(dict.probe(id, probeIndex) == 37);
cout << endl;
// -----------------------------------------------------------------------
cout <<"-------------- testing mid-square hashing ----------------------"<< endl;
// the following asserts will only work for 32 bit ints, leave asserts
// commented out if you have 64 bit asserts
cout <<"Assuming 32 bit (4 byte) ints for these tests: "<<sizeof(int)<< endl;
assert(sizeof(int)==4);
//id = 3918;
//cout << "hash key: " << id
// << " returned hash value: " << dict.hash(id)
// << endl; ...
Implementation of Cryptography Architecture with High Secure CoreIJMER
International Journal of Modern Engineering Research (IJMER) is Peer reviewed, online Journal. It serves as an international archival forum of scholarly research related to engineering and science education.
International Journal of Modern Engineering Research (IJMER) covers all the fields of engineering and science: Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Computer Engineering, Agricultural Engineering, Aerospace Engineering, Thermodynamics, Structural Engineering, Control Engineering, Robotics, Mechatronics, Fluid Mechanics, Nanotechnology, Simulators, Web-based Learning, Remote Laboratories, Engineering Design Methods, Education Research, Students' Satisfaction and Motivation, Global Projects, and Assessment…. And many more.
The critical routines within signal processing algorithms are typically data intensive and iterate many times, carrying out the same functions on multi-dimensional arrays and input streams. These routines use the vast majority of an implementation’s resources, and for the longest time over the course of the algorithms execution. Such routines are classed as Nested-Loop Programs. Whether the implementation is software running on a processor or a higher performance customized hardware implementation, there is always a tradeoff between the throughput performance (execution-time) and the resources used such as the amount of processor memory and registers in a software implementation or the gate-count in a hardware implementation. This article shows the reader techniques and methods for manipulating a signal processing algorithm, in particular those conforming to a Nested-Loop Program, and the different generic implementation architectures along this tradeoff spectrum, as well as the different methods for describing and analyzing an algorithm implementation. Each of these methods for describing an algorithm is shown to correspond to a different abstraction-level view and as such exposes different features and properties for ease of analysis and manipulation. Manipulation techniques, mainly algorithmic-transformations are described and it is shown how these transformations take an implementation and form a new one at a different point in the trade-off spectrum of resources used versus throughput by performing calculations in a different order and a different way to arrive at the same result.
Mixed Scanning and DFT Techniques for Arithmetic CoreIJERA Editor
Elliptic curve Cryptosystem used in cryptography chips undergoes side channel threats, where the attackers deciphered the secret key from the scan path. The usage of extra electronic components in scan path architecture will protect the secret key from threats. This work presents a new scan based flip flop for secure cryptographic application. By adding more sensitive internal nets along with the scan enable the testing team can find out the bugs in chip after post-silicon and even after chip fabrication. Also present a new mixed technique by adding DFT(design for testing or Dfx unit) unit and scan unit in same chip unit without affecting the normal critical path ,i.e. without affecting speed of operation of chip, latency in normal mode. Both Scan unit and DFT unit are used for testing the sequential and combinational circuits present in 32 Bit Arithmetic core. Here a proposed PN code generation unit as scan in port to increase the code coverage and scan out port efficiency. The proposed system will written in verilog code and simulated using Xilinx Tool. The hardware module core is synthesized using Xilinx Vertex 5 Field Programmable Gated Array (FPGA) kit. The performance utilization is reported with the help of generated synthesis result
April 4, 2013 presentation given at the Raleigh ISSA Chapter meeting. This PDF of my slides reviews my paper that was accepted and nominated for an award and presented at the ITU Kaleidoscope 2013 conference.
More Related Content
Similar to Proposed ISO/IEC 29150 ASN.1 Schema Corrections
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
Implementation of message authentication code using DNA-LCG key and a novel h...IJECEIAES
With the introduction of electronic form of data, the need for an automatic system of security to protect the integrity of data while being transferred from one place to another is required. This is especially the case for a network in which the systems are accessed over a public network or internet. Security mechanisms involve the use of more than one algorithm. They further require that the participants should possess a secret key, which raises issues about creation, distribution and proper usage of these keys. The most effective technique used in provisioning security is Message Authentication Code (MAC) which helps in preserving integrity. MAC involves the use of secret key along with a hash algorithm. In this paper, we present an implementation of MAC using a secret key created by Deoxyribonucleic Acid (DNA) and random output sequence of Linear Congruential Generator (LCG). The hash algorithm used is made more robust by adding complexity to the traditional SHA-160. The presented scheme RMAC (Robust Message Authentication Code) is tested on National Institute of Science and Technology (NIST) test suite for random numbers, avalanche criteria and resistance towards network attacks. The results reveal that the scheme is efficient and is applicable for a variety of security demanding environments.
The Advanced Encryption Standard (AES) is a specification for the encryption of electronic data also called Rijndael. The algorithm described by AES is a symmetric-key algorithm, meaning the same key is used for both encrypting and decrypting the data. Hardware-based cryptography is used for authentication of users and of software updates and installations. Software implementations can generally not be used for this, as the cryptographic keys are stored in the PC memory during execution, and are vulnerable to malicious codes. Hardware-based encryption products can also vary in the level of protection they provide against brute force rewind attacks, Offline parallel attacks, or other cryptanalysis attacks. The algorithm was implemented in FPGA due to its flexibility and reconfiguration capability. A reconfigurable device is very convenient for a cryptography algorithm since it allows cheap and quick alterations. The implementation of pipelined cryptography hardware was used to improve performance in order to achieve higher throughput and greater parallelism. The AES hardware was implemented in three modules contains of the encryption, the decryption and the key expansion module.
Slide deck for talk at IETF#92 (Dallas, March 2015) at the IETF Light-Weight Implementation Guidance (lwig) working group about the performance of cryptographic algorithms on ARM processors.
Assignment 13/assg-13.cppAssignment 13/assg-13.cpp/**
* @author Jane Programmer
* @cwid 123 45 678
* @class COSC 2336, Spring 2019
* @ide Visual Studio Community 2017
* @date April 8, 2019
* @assg Assignment 13
*
* @description Assignment 13 Dictionaries and Hash table
* implementations.
*/
#include<cassert>
#include<iostream>
#include"KeyValuePair.hpp"
#include"Employee.hpp"
#include"HashDictionary.hpp"
usingnamespace std;
/** main
* The main entry point for this program. Execution of this program
* will begin with this main function.
*
* @param argc The command line argument count which is the number of
* command line arguments provided by user when they started
* the program.
* @param argv The command line arguments, an array of character
* arrays.
*
* @returns An int value indicating program exit status. Usually 0
* is returned to indicate normal exit and a non-zero value
* is returned to indicate an error condition.
*/
int main(int argc,char** argv)
{
// -----------------------------------------------------------------------
cout <<"----- testing Employee record and KeyValuePair class -----------"<< endl;
KeyValuePair<int, string> pair(42,"blue");
cout <<"test key: "<< pair.key()<< endl;
assert(pair.key()==42);
cout <<"test value: "<< pair.value()<< endl;
assert(pair.value()=="blue");
int id =3;
Employee e(id,"Derek Harter","1234 Main Street, Commerce TX",12345.67);
cout << e << endl;
assert(e.getId()==3);
assert(e.getName()=="Derek Harter");
cout << endl;
// -----------------------------------------------------------------------
cout <<"-------------- testing quadratic probing -----------------------"<< endl;
constint TABLE_SIZE =7;
HashDictionary<int,Employee> dict(TABLE_SIZE, EMPTY_EMPLOYEE_ID);
cout <<"Newly created hash dictionary should be empty, size: "<< dict.size()<< endl;
assert(dict.size()==0);
int probeIndex =0;
//cout << "probe index: " << probeIndex
// << " returned probe value: " << dict.probe(id, probeIndex)
// << endl;
//assert(dict.probe(id, probeIndex) == 2);
probeIndex =1;
//cout << "probe index: " << probeIndex
// << " returned probe value: " << dict.probe(id, probeIndex)
// << endl;
//assert(dict.probe(id, probeIndex) == 5);
probeIndex =5;
//cout << "probe index: " << probeIndex
// << " returned probe value: " << dict.probe(id, probeIndex)
// << endl;
//assert(dict.probe(id, probeIndex) == 37);
cout << endl;
// -----------------------------------------------------------------------
cout <<"-------------- testing mid-square hashing ----------------------"<< endl;
// the following asserts will only work for 32 bit ints, leave asserts
// commented out if you have 64 bit asserts
cout <<"Assuming 32 bit (4 byte) ints for these tests: "<<sizeof(int)<< endl;
assert(sizeof(int)==4);
//id = 3918;
//cout << "hash key: " << id
// << " returned hash value: " << dict.hash(id)
// << endl; ...
Implementation of Cryptography Architecture with High Secure CoreIJMER
International Journal of Modern Engineering Research (IJMER) is Peer reviewed, online Journal. It serves as an international archival forum of scholarly research related to engineering and science education.
International Journal of Modern Engineering Research (IJMER) covers all the fields of engineering and science: Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Computer Engineering, Agricultural Engineering, Aerospace Engineering, Thermodynamics, Structural Engineering, Control Engineering, Robotics, Mechatronics, Fluid Mechanics, Nanotechnology, Simulators, Web-based Learning, Remote Laboratories, Engineering Design Methods, Education Research, Students' Satisfaction and Motivation, Global Projects, and Assessment…. And many more.
The critical routines within signal processing algorithms are typically data intensive and iterate many times, carrying out the same functions on multi-dimensional arrays and input streams. These routines use the vast majority of an implementation’s resources, and for the longest time over the course of the algorithms execution. Such routines are classed as Nested-Loop Programs. Whether the implementation is software running on a processor or a higher performance customized hardware implementation, there is always a tradeoff between the throughput performance (execution-time) and the resources used such as the amount of processor memory and registers in a software implementation or the gate-count in a hardware implementation. This article shows the reader techniques and methods for manipulating a signal processing algorithm, in particular those conforming to a Nested-Loop Program, and the different generic implementation architectures along this tradeoff spectrum, as well as the different methods for describing and analyzing an algorithm implementation. Each of these methods for describing an algorithm is shown to correspond to a different abstraction-level view and as such exposes different features and properties for ease of analysis and manipulation. Manipulation techniques, mainly algorithmic-transformations are described and it is shown how these transformations take an implementation and form a new one at a different point in the trade-off spectrum of resources used versus throughput by performing calculations in a different order and a different way to arrive at the same result.
Mixed Scanning and DFT Techniques for Arithmetic CoreIJERA Editor
Elliptic curve Cryptosystem used in cryptography chips undergoes side channel threats, where the attackers deciphered the secret key from the scan path. The usage of extra electronic components in scan path architecture will protect the secret key from threats. This work presents a new scan based flip flop for secure cryptographic application. By adding more sensitive internal nets along with the scan enable the testing team can find out the bugs in chip after post-silicon and even after chip fabrication. Also present a new mixed technique by adding DFT(design for testing or Dfx unit) unit and scan unit in same chip unit without affecting the normal critical path ,i.e. without affecting speed of operation of chip, latency in normal mode. Both Scan unit and DFT unit are used for testing the sequential and combinational circuits present in 32 Bit Arithmetic core. Here a proposed PN code generation unit as scan in port to increase the code coverage and scan out port efficiency. The proposed system will written in verilog code and simulated using Xilinx Tool. The hardware module core is synthesized using Xilinx Vertex 5 Field Programmable Gated Array (FPGA) kit. The performance utilization is reported with the help of generated synthesis result
Similar to Proposed ISO/IEC 29150 ASN.1 Schema Corrections (20)
April 4, 2013 presentation given at the Raleigh ISSA Chapter meeting. This PDF of my slides reviews my paper that was accepted and nominated for an award and presented at the ITU Kaleidoscope 2013 conference.
Telebiometric information security and safety managementPhil Griffin
Paper accepted for presentation at “Building Sustainable Communities",
ITU Kaleidoscope Conference, Kyoto, Japan, 22-24 April 2013,
http://itu-kaleidoscope.org/2013
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Proposed ISO/IEC 29150 ASN.1 Schema Corrections
1. Corrections to the ISO/IEC 29150
Signcryption ASN.1 Schema
Phillip H. Griffin
phil@phillipgriffin.com
Abstract. In this note, defects in the schema of the first
edition of the ISO/IEC 29150 Signcryption standard are
described, and a corrected ASN.1 module is proposed. An
example signcryption algorithm identifier value is defined
and binary and markup representations of this value are
presented. Although the schema errors are small and do not
affect the textual content of the standard, programming
language code generation and other tools cannot process the
schema unless it is correct.
1 Introduction
The ISO/IEC 29150 Signcryption standard [1] provides a schema for signcryption
mechanism and cryptographic algorithm identification. The schema is defined as an
ASN.1 module [2]. Syntax errors in the published schema prohibit its use by ASN.1
tools. These minor defects may lead to misinterpretation by readers and to the
development of implementations that fail to interoperate.
Type SCparameters has two components that are meant to identify a key derivation
function (kdf) and a hash function (hash). The published version of the ISO/IEC 29150
schema contains the following definition of type SCparameters:
SCparameters ::= SEQUENCE {
kdf SCKDFfunction,
hash SCHashFunction
}
For this definition of type SCparameters to be valid, SCKDFfunction and
SCHashFunction must be valid ASN.1 types. However, SCKDFfunction and
SCHashFunction are ASN.1 information object sets of class ALGORITHM, defined as
follows:
SCHashFunction ALGORITHM ::= {
{OID id-sha1 PARMS NullParms} |
{OID id-sha256 PARMS NullParms } |
{OID id-sha384 PARMS NullParms } |
{OID id-sha512 PARMS NullParms },
... -- expect more hash functions here
}
SCKDFfunction ALGORITHM ::= {
{OID id-kdf-kdf1 PARMS SCHashFunction} |
{OID id-kdf-kdf2 PARMS SCHashFunction},
... -- expect additional KDF functions here
}
2. Other aspects of the published schema that are not errors can be improved. The schema
does not define a signcryption algorithm identifier type for reference by implementers
and other standards. The schema imports the HashFunctionAlgs information object set,
though this set of algorithms is never used and can be eliminated. The SCHashFunction
and SCKDFfunction information object sets described above duplicate the content of
encryption algorithm information object sets already defined in the ISO/IEC 18033
standard [3].
These object sets can be referenced and not redefined. Their redefinition in ISO/IEC
29150 requires additional information object identifiers (OIDs) to be imported into the
module, and for the creation of duplicate definitions for the id-kdf-kdf1 and the id-
kdf-kdf2 key derivation functions. These definitions can be eliminated.
3. 2 Schema
The following ASN.1 schema contains corrections to the schema published in ISO/IEC
29150:2011. This module contains valid syntax that can be used as input to ASN.1
syntax checking, schema validation, and programming language code generation tools.
The ISO/IEC 29150 module information object identifier is reused here for clarity.
Signcryption {
iso(1) standard(0) signcryption(29150)
asn1-module(0) signcryption-mechanisms(0) version(1)
}
DEFINITIONS EXPLICIT TAGS ::= BEGIN
IMPORTS
HashFunction, KeyDerivationFunction
FROM EncryptionAlgorithms-2 {
iso(1) standard(0) encryption-algorithms(18033) part(2)
asn1-module(0) algorithm-object-identifiers(0) };
SigncryptionAlgorithmIdentifier ::=
AlgorithmIdentifier {{ SigncryptionMechanism }}
SigncryptionMechanism ALGORITHM ::= {
{ OID signcryption-mechanism-dlsc PARMS SCparameters } |
{ OID signcryption-mechanism-ecdlsc PARMS SCparameters } |
{ OID signcryption-mechanism-ifsc PARMS SCparameters } |
{ OID signcryption-mechanism-ets PARMS SCparameters },
... -- Expect additional signcryption mechanisms --
}
SCparameters ::= SEQUENCE {
kdf KeyDerivationFunction,
hash HashFunction
}
-- Cryptographic algorithm identification --
OID ::= OBJECT IDENTIFIER -- Alias --
is29150 OID ::= { iso(1) standard(0) signcryption(29150) }
mechanism OID ::= { is29150 mechanisms(1) }
signcryption-mechanism-dlsc OID ::= { mechanism dlsc(1) }
signcryption-mechanism-ecdlsc OID ::= { mechanism ecdlsc(2) }
signcryption-mechanism-ifsc OID ::= { mechanism ifsc(3) }
signcryption-mechanism-ets OID ::= { mechanism ets(4) }
AlgorithmIdentifier { ALGORITHM:IOSet } ::= SEQUENCE {
algorithm ALGORITHM.&id({IOSet}),
parameters ALGORITHM.&Type({IOSet}{@algorithm}) OPTIONAL
}
ALGORITHM ::= CLASS {
&id OBJECT IDENTIFIER UNIQUE,
&Type OPTIONAL
}
WITH SYNTAX { OID &id [PARMS &Type] }
END -- Signcryption --
4. 3 Example
Type SigncryptionAlgorithmIdentifier is defined as the following parameterized
type:
SigncryptionAlgorithmIdentifier ::=
AlgorithmIdentifier {{ SigncryptionMechanism }}
When expanded using the provided parameter, the information object set
SigncryptionMechanism, this parameterized type becomes
SigncryptionAlgorithmIdentifier ::= ::= SEQUENCE {
algorithm ALGORITHM.&id({SigncryptionMechanism }),
parameters ALGORITHM.&Type({SigncryptionMechanism }
{@algorithm}) OPTIONAL
}
The information object set SigncryptionMechanism forms a table constraint on the
algorithm and parameters components of type SigncryptionAlgorithmIdentifier.
The types of these two components are based on the &id and &Type fields of information
object class ALGORITHM.
An example value 1 of type SigncryptionAlgorithmIdentifier expressed using the
ASN.1 XML Value Notation could be defined as follows:
1 <SigncryptionAlgorithmIdentifier>
2 <algorithm>1.0.29150.1.3</algorithm>
3 <parameters>
4 <SCparameters>
5 <kdf>
6 <algorithm>1.0.18033.2.5.1</algorithm>
7 <parameters>
8 <HashFunction>
9 <algorithm>
10 2.16.840.1.101.3.4.2.2
11 </algorithm>
12 </HashFunction>
13 </parameters>
14 </kdf>
15 <hash>
16 <algorithm>2.16.840.1.101.3.4.2.2</algorithm>
17 </hash>
18 </SCparameters>
19 </parameters>
20 </SigncryptionAlgorithmIdentifier>
On line 2, the integer factorization based signcryption (IFSC) mechanism is identified as
the signcryption algorithm. The parameters associated with the IFSC algorithm on lines
3-19 consist of two cryptographic functions, a key derivation function (sometimes
referred to as a mask generation function) and a hash or message digest function.
The first of these cryptographic functions, the key derivation function (KDF) is
identified on line 6. It is the KDF1 family of functions defined in the ISO/IEC 18033-2
standard, which rely on the hash functions defined in the ISO/IEC 10118-3 standard.
The parameters of the KDF1 algorithm are the SHA-384 hash function indicated on lines
1
All of the encoded values in this document were produced using the ASN-1Step tool, an interactive
application development and testing environment from OSS Nokalva (http://www.oss.com).
5. 9-11. The second cryptographic function is the SHA-384 hash function identified on line
16.
The same value can be defined using the ASN.1 Basic Value Notation as follows:
value SigncryptionAlgorithmIdentifier ::= {
algorithm { 1 0 29150 1 ifsc(3) },
parameters SCparameters : {
kdf {
algorithm { 1 0 18033 2 5 kdf(1) },
parameters HashFunction : {
algorithm { 2 16 840 1 101 3 4 2 sha384(2) }
}
},
hash {
algorithm { 2 16 840 1 101 3 4 2 sha384(2) }
}
}
}
In either value notation form, this example value can be represented using DER, the
ASN.1 Distinguished Encoding Rules [4] in 49 bytes, shown here using hexadecimal
notation where two characters represent one byte:
302F0606 2881E35E 01033025 30160607 28818C71 02050130 0B060960
86480165 03040202 300B0609 60864801 65030402 02
The same example value can be represented using a canonical variant of XER, the XML
Encoding Rules [5] of ASN.1 in 363 bytes of XML markup [6], shown here formatted
for reading ease as an XML Document:
<?xml version="1.0" encoding="UTF-8"?>
<SigncryptionAlgorithmIdentifier>
<algorithm>1.0.29150.1.3</algorithm>
<parameters>
<SCparameters>
<kdf>
<algorithm>1.0.18033.2.5.1</algorithm>
<parameters>
<HashFunction>
<algorithm>2.16.840.1.101.3.4.2.2</algorithm>
</HashFunction>
</parameters>
</kdf>
<hash>
<algorithm>2.16.840.1.101.3.4.2.2</algorithm>
</hash>
</SCparameters>
</parameters>
</SigncryptionAlgorithmIdentifier>
6. References
[1] ISO/IEC 29150:2011 Information technology – Security techniques - Signcryption.
[2] ITU-T Recommendation X.680-series | ISO/IEC 8824 (All parts), Information Technology -
Abstract Syntax Notation One (ASN.1). Retrieved June 20, 2012, from
http://www.itu.int/rec/T-REC-X/en
[3] ISO/IEC 18033-2:2006 Information technology – Security techniques – Encryption
algorithms – Part 2: Asymmetric ciphers.
[4] ITU-T Recommendation X.690 | ISO/IEC 8825-1, Information Technology - ASN.1
Encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules
CER), Distinguished Encoding Rules (DER). Retrieved June 20, 2012, from
http://www.itu.int/rec/T-REC-X.690-200811-I/en
[5] ITU-T Recommendation X.693 | ISO/IEC 8825-4, Information Technology - ASN.1
Encoding Rules: Specification of XML Encoding Rules (XER). Retrieved June 20, 2012,
from http://www.itu.int/rec/T-REC-X.693-200811-I/en
[6] W3C Recommendation (2000). Extensible Markup Language (XML) 1.0 (Second Edition).
n
Retrieved June 20, 2012, from http://www.w3.org/TR/2000/REC-xml-20001006