A method for a plactic key agreement between a first party and a second party over a public communications channel, the method comprising: Selecting, by the first party, a secret first value "a", the first value "a" being a semistandard tableau; multiplying the secret first value "a" by a second value "b" using Knuth multiplication to create a third value "d", the third value "d" being a semistandard tableau; wherein the multiplying comprising concatenating the first value "a" with the second value "b" to obtain a concatenated value "ab" and converting the concatenated value "ab" into the third value by a Knuth transformation, the computed third value "d" being a plactic monoid; wherein the semistandard tableau is a tableau of rows and columns of symbols sorted by length from top down, with the top row being the shortest row and the bottom row being the longest row; wherein the symbols in each row are ordered in a set such that the symbols in the ordered set of each row are allowed to repeat; and wherein the symbols in each column are ordered such that they are not allowed to repeat;wherein converting the concatenated value "ab" into the third value by the Knuth transformation comprises inserting a symbol of "ab" to the bottom row if possible and if not possible inserting the symbol to the bottom row by replacing one symbol of the bottom row; the replaced symbol getting inserted into the rows above; sending the third value "d" to the second party; receiving, from the second party, a fourth value "e", the fourth value being a second semistandard tableau comprising the second value "b" multiplied by a secret fifth value "c" selected by the second party; the fourth value "e" being a plactic monoid; and creating a shared secret by multiplying the secret first value "a" with the fourth value "e" using Knuth multiplication, the creating comprising concatenating the secret first value "a" with the fourth value "e" and converting the concatenated value "ae" into the shared secret by the Knuth transformation, the computed shared secret being a plactic monoid; wherein the shared secret matches the third value "d" multiplied by the secret fifth value "c" using Knuth multiplication. Selecting, by the first party, a secret first value "a", the first value "a" being a semistandard tableau; multiplying the secret first value "a" by a second value "b" using Knuth multiplication to create a third value "d", the third value "d" being a semistandard tableau; wherein the multiplying comprising concatenating the first value "a" with the second value "b" to obtain a concatenated value "ab" and converting the concatenated value "ab" into the third value by a Knuth transformation, the computed third value "d" being a plactic monoid; wherein the semistandard tableau is a tableau of rows and columns of symbols sorted by length from top down, with the top row being the shortest row and the bottom row being the longest row; wherein the symbols in each row are ordered in a set such that the symbols in the ordered set of each row are allowed to repeat; and wherein the symbols in each column are ordered such that they are not allowed to repeat;wherein converting the concatenated value "ab" into the third value by the Knuth transformation comprises inserting a symbol of "ab" to the bottom row if possible and if not possible inserting the symbol to the bottom row by replacing one symbol of the bottom row; the replaced symbol getting inserted into the rows above; sending the third value "d" to the second party; receiving, from the second party, a fourth value "e", the fourth value being a second semistandard tableau comprising the second value "b" multiplied by a secret fifth value "c" selected by the second party; the fourth value "e" being a plactic monoid; and creating a shared secret by multiplying the secret first value "a" with the fourth value "e" using Knuth multiplication, the creating comprising concatenating the secret first value "a" with the fourth value "e" and converting the concatenated value "ae" into the shared secret by the Knuth transformation, the computed shared secret being a plactic monoid; wherein the shared secret matches the third value "d" multiplied by the secret fifth value "c" using Knuth multiplication.