GPG Essentials

2017-07-05 | #cryptography #tooling

Introduction GnuPG is a hybrid-encryption software program because it uses a combination of conventional symmetric-key cryptography for speed, and public-key cryptography for ease of secure key exchange, typically by using the recipient’s public key to encrypt a session key which is used only once.

Continue reading 

The Monty Hall Problem

2017-07-05 | #probability

The Monty Hall problem is a counter-intuitive statistics puzzle loosely based on the American television game show Let’s Make a Deal and named after its original host, Monty Hall. The Game There are three doors, behind which are two goats and a car; You randomly pick a door; Monty, examines the other two doors and always opens one of them with a goat.

Continue reading 

Classical Ciphers

2017-05-26 | #cryptography #history

All modern ciphers are based on some kind of substitution operation. A block of bits is substituted with another block of bits according to a given table or algorithm. Monoalphabetic cipher: the same element in the plaintext alphabet is always encrypted to the same element in the ciphertext alphabet.

Continue reading 

Euclidean Algorithm

2017-04-16 | #mathematics #number-theory

A fundamental and efficient algorithm to compute the greatest common divisor (gcd) of two integer numbers. Given two integers a and b, the algorithm comes in two flavors: basic: yields the gcd(a,b); extended: yields two integers x and y such that gcd(a,b) = a·x + b·y As a notational shortcut from now on we’ll write (a,b) instead of gcd(a, b).

Continue reading 

Abstract Syntax Notation 1

2017-03-02 | #encoding #standards

ASN.1 is a standard notation syntax defined in ITU-T X.680 to describe rules and structures for representing data in telecommunications and computer networking. ASN.1 itself does not mandate any encoding or parsing rules, but usually ASN.

Continue reading 

AT Commands Reference

2016-11-26 | #communications #standards

The Hayes command set, also called the AT command set, is a specific command language originally developed by Dennis Hayes[1] for the Hayes Smartmodem 300 baud modem in 1981. The command set consists of a series of short text strings which can be combined to produce commands for operations such as dialing, hanging up, and changing the parameters of the connection.

Continue reading 

Bash Shortcuts

2016-08-02 | #bash #tooling

The bash shell has a very rich set of convenient shortcuts. This ability to edit the command line is provided by the GNU Readline library. Readline keybindings are taken from the Emacs text editor.

Continue reading 

Buddy Memory Allocator

2016-05-09 | #os-dev #programming

Buddy memory allocator is a memory management technique that divides memory into fixed-size blocks and allocates them based on power-of-2 sizes, allowing efficient allocation and deallocation with minimal fragmentation. Introduction At any point in time, the memory consists of a collection of blocks of consecutive memory, each of which is a size of a power of two.

Continue reading 