HN user

yoha

1,152 karma

French CS student Tastes: C/Python/Debian/vim/git/crypto Website: sinon.org

[ my public key: https://keybase.io/qsantos; my proof: https://keybase.io/qsantos/sigs/AtLN-dncEjUwRsnMmgBht5GAHbFKBcn_c1xsnKpVFL0 ]

Posts20
Comments268
View on HN
www.snellman.net 8y ago

Optimizing a breadth-first search

yoha
114pts38
utcc.utoronto.ca 9y ago

How I've wound up being one of the people who don't update IoT firmware

yoha
2pts0
www.curiousgnu.com 9y ago

Chicago pays female employees only 80% of what it pays male employees

yoha
12pts15
www.codersnotes.com 9y ago

Under Construction

yoha
1pts0
gafferongames.com 9y ago

Reliable Ordered Messages

yoha
1pts0
blog.forrestthewoods.com 10y ago

Improving Open Source with Amalgamation

yoha
3pts0
www.adamsmith.org 10y ago

Why does the son rise? (2014)

yoha
2pts0
www.scottaaronson.com 10y ago

Can computers become conscious?: My reply to Roger Penrose

yoha
152pts157
www.techinsider.io 10y ago

We watched hackers 'fully compromise' a power company in less than 24 hours

yoha
1pts0
www.scottaaronson.com 10y ago

Who Can Name the Bigger Number?

yoha
4pts4
jvns.ca 10y ago

Women-only spaces are a hack

yoha
8pts3
forrestthewoods.com 11y ago

The Unbalanced Design of Super Smash Bros: Part 3

yoha
17pts1
forrestthewoods.com 11y ago

The Unbalanced Design of Super Smash Brothers: Part 2

yoha
1pts0
en.wikipedia.org 11y ago

Kanzi, the bonobo who understands English

yoha
3pts0
changelog.complete.org 11y ago

Debian: A plea to worry about what matters,

yoha
3pts0
xkcd1446.org 11y ago

Frame by frame xkcd's Rosetta landing

yoha
16pts3
news.ycombinator.com 11y ago

Huge increase of traffic on HN?

yoha
1pts1
www.hackerfactor.com 12y ago

Under the Influence (on photojournalism and media manipulation)

yoha
1pts0
www.hackerfactor.com 12y ago

Friends With Benefits (on how Google+ leaks private information)

yoha
1pts1
www.hackerfactor.com 12y ago

Putin on the Ritz

yoha
208pts85

As I said in another comment, individual verifiability and non-coercion are mutually exclusive online. However, there are indeed solutions for the other properties (including global integrity), and compromises between individual verifiability and non-coercion. For instance, you can have a look at Helios [1] or Belenios [2]. Current research is looking for stronger guarantees, a better compromise, or a more interesting voting system (such as Single Transferable Vote or Majority Judgment).

[1] https://vote.heliosvoting.org/

[2] http://www.belenios.org/

That's only possible if you sacrifice some of the stronger anonymity requirements

Untrue. You can use strong encryption to ensure confidentiality and zero-knowledge proofs to ensure integrity. Then, you can use methods from homomorphic encryption to tally the ballots. There is a whole area of research dedicated to this.

"Automated proof" means that the verification is automated. Actually automating the process of finding proofs is still mostly an open problem.

Formal proof software will help you on small stuff, but you will still do most of the work, and you have to go much more in details, so it takes much more time.

When you try to come up with random words to compose a password

That's why you don't. Give a 64ki word dictionary from your native tongue to your computer and let it choose four words uniformly at random out of it. This gives you a password from a distribution with 64 bits of entropy, and is reasonably easy to memorize with moderate effort.

This means an attacker is expected to proceed to 2\\63 hashes to crack such a password. It would take almost 4 year to crack its MD5 digest on the rig used in the demonstration. If you not using a password manager for external sites (which might not use proper KDFs), you can throw in a fifth word, and be safe for the foreseeable future.

Modern C [pdf] 10 years ago

Right, my bad. I tend to write loops in the former style, thinking of them as reversed(range(9)). This is another advantage of this style. I should have been more cautious when writing the second one.

Modern C [pdf] 10 years ago

The point is that a beginner does not need to care about signedness. When you get to that point, you can take the time to explain how to loop properly over it.

Modern C [pdf] 10 years ago

This is about weighing correction versus readability. In the "arrow operator" version, the readability is decreased; in the "proper" version, a type cast is required, and this can lead to bugs with values greater than 2^sizeof(ssize_t).

Obviously, I just follow the convention when contributing to an existing project.

Modern C [pdf] 10 years ago

Decrementing loops is the one place where I have indulged in some trickery. I do:

    for (size_t i = 9; i --> 0; )
This has the advantage to be very easy to pattern-match once known. Obviously, for a beginner, I would just do:
    for (int i = 9; i >= 0; i -= 1)

You are talking about making a combined hash function from MD5 and SHA-1. Keep in mind that it is not trivial. For instance, if you just output both SHA-1 and MD5, you are actually only as strong as the weakest hash function (trivially for preimage, but also true for collisions, see [1]).

If you are interested in hash function combiners, have a look at Robust Multi-Property Combiners for Hash Functions [2], a recent paper on the topic. It aims at getting several properties at the same time (preimage resistance, collision resistance). For simpler schemes with a single property, just explore the bibliography at the end of the paper.

[1] https://cryptopals.com/sets/7/challenges/52

[2] https://eprint.iacr.org/2016/723

There are just overloaded notations from two different contexts. sin² can mean either:

* x → sin(x)² (in multiplicative group)

* x → sin(sin(x))² (in composition group)

Similarly, sin⁻¹ can mean either:

* x → 1 / sin(x) (in multiplicative group)

* x → arcsin(x) (in composition group)

I am running both uBlock Origin and NoScript and the website still found a way to annoy me: it gets Firefox Reader stuck, so that I am supposed to read the article in their terrible layout.